структура BUS_INTERFACE_REFERENCE (ks.h)
Перечислитель программного устройства экспортирует этот интерфейс, чтобы позволить драйверам ссылаться на объекты физических устройств (PDOS), чтобы устройство оставалось активным во время использования и выгружается, если он не используется.
Синтаксис
typedef struct {
INTERFACE Interface;
PFNREFERENCEDEVICEOBJECT ReferenceDeviceObject;
PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
PFNQUERYREFERENCESTRING QueryReferenceString;
} BUS_INTERFACE_REFERENCE, *PBUS_INTERFACE_REFERENCE;
Члены
Interface
Указывает экспортируемый интерфейс 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 (include Ks.h) |