Организация ввода-вывода. Драйверы WDM. Рощин А.В. - 25 стр.

UptoLike

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

25
Таблица 2.1 – Продолжение
USHORT, UPSHORT 16-разрядное целое без знака и указатель на него
LONG, PLONG 32-разрядное целое со знаком и указатель на него
ULONG, PULONG 32-разрядное целое без знака и указатель на него
WCHAR, PWSTR, PWCHAR Символ или строка а Юникоде
PCWSTR Указатель на константную строку в Юникоде
NTSTATUS Код состояния (длинное целое без знака)
LARGE_INTEGER 64-разрядное целое со знаком
ULARGE_INTEGER 64-разрядное целое без знака
PSZ, PCSZ Указатель на строку ASCIIZ с однобайтовой
кодировкой или на константную строку
BOOLEAN, PBOOLEAN TRUE или FALSE (эквивалент UCHAR)
Здесь объявляется структура с именем типа DRIVER_OBJECT, для нее
объявляется тип указателя PDRIVER_OBJECT и назначается тэг _DRIVER_OBJECT.
Рассмотрим доступные поля структуры объекта драйвера.
Поле DeviceObject (PDEVICE_OBJECT) используется для создания
связного списка объектов устройств, обслуживаемых данным драйвером. Это
поле заполняет диспетчер ввода-вывода.
Закрытые поля
Type Size
DeviceObject
Закрытое поле
Flags
Закрытое поле
DriverStart
Закрытое поле
DriverSize
Закрытое поле
DriverSection
DriverExtension
Driver_Object
AddDevice
Count
ServiceKeyName
Закрытое поле
DriverName
HardwareDatabase
FastIoDispatch
DriverInit
DriverStartIo
DriverUnload
MajorFunction
Рисунок 2.1 – Структура данных Driver_Object
Поле DriverExtension (PDRIVER_EXTENSION) указывает на
вспомогательную структуру, в которой доступно только одно поле AddDevice
                           Таблица 2.1 – Продолжение
USHORT, UPSHORT              16-разрядное целое без знака и указатель на него
LONG, PLONG                  32-разрядное целое со знаком и указатель на него
ULONG, PULONG                32-разрядное целое без знака и указатель на него
WCHAR, PWSTR, PWCHAR         Символ или строка а Юникоде
PCWSTR                       Указатель на константную строку в Юникоде
NTSTATUS                     Код состояния (длинное целое без знака)
LARGE_INTEGER                64-разрядное целое со знаком
ULARGE_INTEGER               64-разрядное целое без знака
PSZ, PCSZ                    Указатель на строку ASCIIZ с однобайтовой
                             кодировкой или на константную строку
BOOLEAN, PBOOLEAN            TRUE или FALSE (эквивалент UCHAR)


     Здесь объявляется структура с именем типа DRIVER_OBJECT, для нее
объявляется тип указателя PDRIVER_OBJECT и назначается тэг _DRIVER_OBJECT.
     Рассмотрим доступные поля структуры объекта драйвера.
     Поле DeviceObject (PDEVICE_OBJECT) используется для создания
связного списка объектов устройств, обслуживаемых данным драйвером. Это
поле заполняет диспетчер ввода-вывода.
  Закрытые поля       Type       Size
                      DeviceObject
  Закрытое поле           Flags
  Закрытое поле        DriverStart
  Закрытое поле         DriverSize
  Закрытое поле       DriverSection
                                                     Driver_Object
                     DriverExtension                   AddDevice
                                                         Count
                                                    ServiceKeyName
  Закрытое поле       DriverName
                   HardwareDatabase
                    FastIoDispatch
                       DriverInit
                      DriverStartIo
                     DriverUnload
                     MajorFunction
                  Рисунок 2.1 – Структура данных Driver_Object
     Поле     DriverExtension     (PDRIVER_EXTENSION)            указывает      на
вспомогательную структуру, в которой доступно только одно поле AddDevice

                                        25