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

UptoLike

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

99
3.3 Сервисные системные вызовы
Для выполнения обращений к микроядру, работы с реестром,
памятью, объектами, синхронизацией и пр. существует набор функций,
называющихся функциями поддержки ядра. Рассмотрим только самые
необходимые.
IoCreateDevice
Создает новый объект устройства и инициализирует его для
использования драйвером. Объект устройства представляет собой
физическое, виртуальное или логическое устройство, которое необходимо
драйверу для поддержки динамического управления этим устройством.
NTSTATUS
IoCreateDevice(
IN PDRIVER_OBJECT DriverObject, указатель на объект драйвера
IN ULONG DeviceExtensionSize, размер блока пользовательской информации в
байтах
IN PUNICODE_STRING DeviceName, имя устройства (иногда опускается)
IN DEVICE_TYPE DeviceType, тип устройства (последовательное, диск, мышь и
т.д.)
IN ULONG DeviceCharacteristics, параметры устройства (вынимаемое и пр.)
IN BOOLEAN Exclusive, параллельность доступа к устройству
OUT PDEVICE_OBJECT *DeviceObject, указатель на объект создаваемого
устройства
);
IoCreateSymbolicLink
Создает символическую связь между устройством и видимым
пользователем именем.
NTSTATUS
IoCreateSymbolicLink(
IN PUNICODE_STRING SymbolicLinkName, символическое имя, видимое
пользователю
IN PUNICODE_STRING DeviceName, имя устройства в пространстве имен ядра
Windows
);
      3.3 Сервисные системные вызовы
      Для выполнения обращений к микроядру, работы с реестром,
памятью, объектами, синхронизацией и пр. существует набор функций,
называющихся функциями поддержки ядра. Рассмотрим только самые
необходимые.
      IoCreateDevice
      Создает новый объект устройства и инициализирует его для
использования    драйвером.    Объект     устройства   представляет    собой
физическое, виртуальное или логическое устройство, которое необходимо
драйверу для поддержки динамического управления этим устройством.
NTSTATUS
 IoCreateDevice(
   IN PDRIVER_OBJECT DriverObject, указатель на объект драйвера
   IN ULONG DeviceExtensionSize, размер блока пользовательской информации в
                                  байтах
   IN PUNICODE_STRING DeviceName, имя устройства (иногда опускается)
   IN DEVICE_TYPE DeviceType, тип устройства (последовательное, диск, мышь и
                                т.д.)
   IN ULONG DeviceCharacteristics, параметры устройства (вынимаемое и пр.)
   IN BOOLEAN Exclusive, параллельность доступа к устройству
   OUT PDEVICE_OBJECT *DeviceObject, указатель на объект создаваемого
                                          устройства
                 );


      IoCreateSymbolicLink
      Создает символическую связь между устройством и видимым
пользователем именем.
NTSTATUS
 IoCreateSymbolicLink(
   IN PUNICODE_STRING SymbolicLinkName, символическое имя, видимое
                                         пользователю
   IN PUNICODE_STRING DeviceName, имя устройства в пространстве имен ядра
                                   Windows
                       );




                                     99