ВУЗ:
Составители:
36
DEVSTATE devstate; //7
DEVSTATE prevstate;
DEVICE_POWER_STATE devpower;
SYSTEM_POWER_STATE syspower;
DEVICE_CAPABILITIES devcaps; //8
…
} DEVICE_EXTENSION, *DEVICE_EXTENSION;
Здесь (1), как и ранее приведено такое объявление структуры, которое
используется в DDK. То есть, расширение устройства определено, как структура с
именем DEVICE_EXTENSION, типом указателя PDEVICE_EXTENSION и
тэгом _DEVICE_EXTENSION.
Как уже было сказано, на структуру расширения устройства указывает
содержимое поля DeviceExtension в объекте устройства (2). Однако часто бывает
необходимо найти объект устройства по
структуре расширения устройства,
которая подробно описывает конкретный его экземпляр. Именно для этого в
расширение устройства включается указатель DeviceObject.
Поле LowerDeviceObject (3) служит для сохранения адреса нижележащего
объекта устройства. Необходимость в этом возникает при вызове функции
IoAttachDeviceToDeviceStack.
Поле Pdo (4) содержит адрес объекта устройства, который бывает
необходим некоторым служебным функциям.
Поле ifname служит для
хранения имени интерфейса устройства (типа
UNICODE_STRING), необходимое для обращению к устройству.
В поле (6) определяется объект блокировки устройства
IO_REMOVE_LOCK, используемый для безопасного отключения устройства.
Инициализацией этого объекта занимается функция AddDevice.
В поле (7) включены переменные для отслеживания текущего состояния
Plug and Play и энергопотребления устройства. Предполагается, что тип
DEVSTATE уже где-то объявлен.
Поле (8) связано
с дополнительными возможностями управления питанием.
2.8. Вопросы для самопроверки
DEVSTATE devstate; //7 DEVSTATE prevstate; DEVICE_POWER_STATE devpower; SYSTEM_POWER_STATE syspower; DEVICE_CAPABILITIES devcaps; //8 … } DEVICE_EXTENSION, *DEVICE_EXTENSION; Здесь (1), как и ранее приведено такое объявление структуры, которое используется в DDK. То есть, расширение устройства определено, как структура с именем DEVICE_EXTENSION, типом указателя PDEVICE_EXTENSION и тэгом _DEVICE_EXTENSION. Как уже было сказано, на структуру расширения устройства указывает содержимое поля DeviceExtension в объекте устройства (2). Однако часто бывает необходимо найти объект устройства по структуре расширения устройства, которая подробно описывает конкретный его экземпляр. Именно для этого в расширение устройства включается указатель DeviceObject. Поле LowerDeviceObject (3) служит для сохранения адреса нижележащего объекта устройства. Необходимость в этом возникает при вызове функции IoAttachDeviceToDeviceStack. Поле Pdo (4) содержит адрес объекта устройства, который бывает необходим некоторым служебным функциям. Поле ifname служит для хранения имени интерфейса устройства (типа UNICODE_STRING), необходимое для обращению к устройству. В поле (6) определяется объект блокировки устройства IO_REMOVE_LOCK, используемый для безопасного отключения устройства. Инициализацией этого объекта занимается функция AddDevice. В поле (7) включены переменные для отслеживания текущего состояния Plug and Play и энергопотребления устройства. Предполагается, что тип DEVSTATE уже где-то объявлен. Поле (8) связано с дополнительными возможностями управления питанием. 2.8. Вопросы для самопроверки 36
Страницы
- « первая
- ‹ предыдущая
- …
- 34
- 35
- 36
- 37
- 38
- …
- следующая ›
- последняя »