структура BUS_INTERFACE_REFERENCE (ks.h)
Перечислитель программных устройств экспортирует этот интерфейс, чтобы разрешить драйверам ссылаться на количество физических объектов устройств (PDO), чтобы устройство оставалось активным во время использования и выгружалось, когда оно не используется.
Синтаксис
typedef struct {
INTERFACE Interface;
PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject;
PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
PFNQUERYREFERENCESTRING QueryReferenceString;
} BUS_INTERFACE_REFERENCE, *PBUS_INTERFACE_REFERENCE;
Члены
Interface
Указывает экспортируемый ИНТЕРФЕЙС.
ReferenceDeviceObject
Указатель на подпрограмму KStrReferenceDeviceObject , предоставляемую драйвером.
DereferenceDeviceObject
Указатель на подпрограмму KStrDereferenceDeviceObject , предоставляемую драйвером.
QueryReferenceString
Указатель на подпрограмму KStrQueryReferenceString , предоставляемую драйвером.
Комментарии
Драйвер получает интерфейс BUS_INTERFACE_REFERENCE, создавая и отправляя запрос IRP_MJ_PNP, указывающий IRP_MN_QUERY_INTERFACE дополнительный код функции. Для этого драйвер должен:
- Выделение и нулевое заполнение структуры BUS_INTERFACE_REFERENCE из выстраивного пула памяти.
- Создайте IRP для запроса интерфейса запроса и получите следующее расположение стека для новой IRP.
- В новом расположении стека укажите указатель на новую структуру BUS_INTERFACE_REFERENCE в элементе Parameters.QueryInterface.Interface .
- Задайте подпрограмму завершения и отправьте запрос в стек драйверов.
- Если запрос выполнен успешно, система заполняет структуру BUS_INTERFACE_REFERENCE, на которую указывает Parameters.QueryInterface.Interface.
Требования
Требование | Значение |
---|---|
Заголовок | ks.h (включая Ks.h) |