структура BUS_INTERFACE_SWENUM (swenum.h)

Структура BUS_INTERFACE_SWENUM описывает интерфейс объекта перечислителя шины нагрузки по требованию.

Синтаксис

typedef struct _BUS_INTERFACE_SWENUM {
  INTERFACE                  Interface;
  PFNREFERENCEDEVICEOBJECT   ReferenceDeviceObject;
  PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
  PFNQUERYREFERENCESTRING    QueryReferenceString;
} BUS_INTERFACE_SWENUM, *PBUS_INTERFACE_SWENUM;

Члены

Interface

Указывает экспортируемый ИНТЕРФЕЙС.

ReferenceDeviceObject

Указатель на подпрограмму KsReferenceSoftwareBusObject , предоставляемую драйвером.

DereferenceDeviceObject

Указатель на подпрограмму KsDereferenceSoftwareBusObject , предоставляемую драйвером.

QueryReferenceString

Указатель на подпрограмму KsQuerySoftwareBusInterface , предоставляемую драйвером.

Комментарии

Драйвер получает интерфейс BUS_INTERFACE_SWENUM, создавая и отправляя запрос IRP_MJ_PNP, указывающий IRP_MN_QUERY_INTERFACE дополнительный код функции. Для этого драйвер должен:

  • Выделение и заполнение BUS_INTERFACE_SWENUM структуры из выстраивного пула памяти.
  • Создайте IRP для запроса интерфейса запроса и получите следующее расположение стека для нового IRP.
  • В новом расположении стека укажите указатель на новую структуру BUS_INTERFACE_SWENUM в элементе Parameters.QueryInterface.Interface .
  • Задайте подпрограмму завершения и отправьте запрос в стек драйверов.
  • Если запрос выполнен успешно, система заполняет структуру BUS_INTERFACE_SWENUM, на которую указывает Parameters.QueryInterface.Interface.

Требования

Требование Значение
Заголовок swenum.h (включая Swenum.h)