ВУЗ:
Составители:
24
2 Основные структуры данных
С WDM-драйверами связаны две основные структуры данных – объект
драйвера и объект устройства.
Объект драйвера представляет драйвер. Он содержит указатели на функции
драйвера, которые могут вызываться системой. (Здесь следует напомнить, что
WDM-драйвер является контейнером функций, которые он по собственной
инициативе не выполняет. Все вызовы функций драйвера выполняются
операционной системой.)
Объект устройства представляет конкретный экземпляр устройства. Он
содержит данные, позволяющие управлять этим устройством.
2.1 Объекты драйверов
Диспетчер ввода-вывода использует для представления каждого драйвера
устройства объект драйвера.
Объект драйвера определяется в DDK в файле WDM.H следующим образом:
typedef struct _DRIVER_OBJECT
{ // Объявление структуры с именем
CSHORT Type; // DRIVER_OBJECT, для которой
CSHORT Size; // объявляется тип указателя
… // PDRIVER_OBJECT и тэг
} DRIVER_OBJECT, *PDRIVER_OBJECT; // DRIVEROBJECT
(CSHORT – короткое целое со знаком)
Таблица 2.1 – Стандартные имена типов для драйверов
Имя типа Описание
PVOID, PVOID64 Обобщенные указатели (стандартные и 64-
разрядные)
NTAPI Используется в объявления системных функций
для использования соглашений вызова __stdcall
на платформе i86
VOID эквивалент void
CHAR, PCHAR 8-разрядный символ и указатель на него
UCHAR, PUCHAR 8-разрядный символ без знака и указатель на него
SCHAR, PSCHAR 8-разрядный символ со знаком и указатель на него
SHORT, PSHORT 16-разрядное целое со знаком и указатель на него
CSHORT Короткое целое со знаком
2 Основные структуры данных С WDM-драйверами связаны две основные структуры данных – объект драйвера и объект устройства. Объект драйвера представляет драйвер. Он содержит указатели на функции драйвера, которые могут вызываться системой. (Здесь следует напомнить, что WDM-драйвер является контейнером функций, которые он по собственной инициативе не выполняет. Все вызовы функций драйвера выполняются операционной системой.) Объект устройства представляет конкретный экземпляр устройства. Он содержит данные, позволяющие управлять этим устройством. 2.1 Объекты драйверов Диспетчер ввода-вывода использует для представления каждого драйвера устройства объект драйвера. Объект драйвера определяется в DDK в файле WDM.H следующим образом: typedef struct _DRIVER_OBJECT { // Объявление структуры с именем CSHORT Type; // DRIVER_OBJECT, для которой CSHORT Size; // объявляется тип указателя … // PDRIVER_OBJECT и тэг } DRIVER_OBJECT, *PDRIVER_OBJECT; // DRIVEROBJECT (CSHORT – короткое целое со знаком) Таблица 2.1 – Стандартные имена типов для драйверов Имя типа Описание PVOID, PVOID64 Обобщенные указатели (стандартные и 64- разрядные) NTAPI Используется в объявления системных функций для использования соглашений вызова __stdcall на платформе i86 VOID эквивалент void CHAR, PCHAR 8-разрядный символ и указатель на него UCHAR, PUCHAR 8-разрядный символ без знака и указатель на него SCHAR, PSCHAR 8-разрядный символ со знаком и указатель на него SHORT, PSHORT 16-разрядное целое со знаком и указатель на него CSHORT Короткое целое со знаком 24
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »