структура 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)