Организация ввода-вывода. Часть 2. Драйверы для WINDOWS NT. Рощин А.В. - 104 стр.

UptoLike

Составители: 

104
Инициализация и считывание параметров конфигурации из реестра
Создание устройства «виртуальный диск»
ntStatus = IoCreateDevice(
DriverObject, Наш драйвер устройства
sizeof( RAMDISK_EXTENSION ),Размер дополнительной информации
&ntUnicodeString, Имя устройства "\Device\RamDisk"
FILE_DEVICE_VIRTUAL_DISK, Тип устройства
0, Свойства устройства
FALSE, Особое устройство. Драйвер
обрабатывает
только одного клиента
&deviceObject ); Возвращает указатель на объект
устройства
Размещение и обнуление образа диска, установление данных boot сектора,
корневого каталога и пр.
Форматирование файловой системы FAT
RamDiskFormatFat(diskExtension, ParamPath);
Создание символической связи между именем устройства "\Device\RamDisk" и
именем Win32 "\DosDevices\Z:"
ntStatus = IoCreateSymbolicLink(
&diskExtension->Win32NameString,
&ntUnicodeString );
RamDiskInitializeDiskExit:
return ntStatus;
}
Функция RamDiskFormatFat не представляет интереса. Она
размечает выделенный образ диска в соответствии со стандартом файловой
системы FAT.
NTSTATUS
RamDiskCreateClose(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
)
Функция вызывается системой ввода-вывода каждый раз, когда
RamDisk открывается или закрывается. Реализация ничего не выполняет,
просто корректно закрывая запрос.
Аргументы:
    … Инициализация и считывание параметров конфигурации из реестра

   … Создание устройства «виртуальный диск»
     ntStatus = IoCreateDevice(
           DriverObject,                     Наш драйвер устройства
           sizeof( RAMDISK_EXTENSION ),Размер дополнительной информации
           &ntUnicodeString,                 Имя устройства "\Device\RamDisk"
           FILE_DEVICE_VIRTUAL_DISK,         Тип устройства
           0,                                Свойства устройства
           FALSE,                            Особое устройство. Драйвер
                                          обрабатывает
                                              только одного клиента
           &deviceObject );                  Возвращает указатель на объект
устройства


    … Размещение и обнуление образа диска, установление данных boot сектора,
    корневого каталога и пр.
      … Форматирование файловой системы FAT
      RamDiskFormatFat(diskExtension, ParamPath);

   … Создание символической связи между именем устройства "\Device\RamDisk" и
   именем Win32 "\DosDevices\Z:"
     ntStatus = IoCreateSymbolicLink(
                   &diskExtension->Win32NameString,
&ntUnicodeString );

RamDiskInitializeDiskExit:

     return ntStatus;
}

       Функция     RamDiskFormatFat       не    представляет     интереса.     Она
размечает выделенный образ диска в соответствии со стандартом файловой
системы FAT.

NTSTATUS
RamDiskCreateClose(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    )
    Функция вызывается системой ввода-вывода каждый раз, когда
RamDisk открывается или закрывается. Реализация ничего не выполняет,
просто корректно закрывая запрос.
       Аргументы:


                                        104