Поделиться через


Структура ИНТЕРФЕЙСА (wdm.h)

Структура ИНТЕРФЕЙСА описывает интерфейс, экспортируемый драйвером для использования другими драйверами.

Синтаксис

typedef struct _INTERFACE {
  USHORT                 Size;
  USHORT                 Version;
  PVOID                  Context;
  PINTERFACE_REFERENCE   InterfaceReference;
  PINTERFACE_DEREFERENCE InterfaceDereference;
} INTERFACE, *PINTERFACE;

Члены

Size

Размер в байтах структуры, определяющей интерфейс драйвера, включая эти структуры и члены интерфейса.

Version

Версия интерфейса, определяемая драйвером.

Context

Указатель на сведения о контексте для конкретного интерфейса.

InterfaceReference

Указатель на предоставленный драйвером interfaceReference подпрограмму, которая увеличивает число ссылок интерфейса.

InterfaceDereference

Указатель на предоставленный драйвером подпрограмме InterfaceDereference, которая уменьшает количество ссылок интерфейса.

Замечания

Структура интерфейса должна быть включена в качестве первого члена всех структур, описывающих интерфейсы, возвращаемые драйверами в ответ на запрос IRP_MN_QUERY_INTERFACE.

Подпрограмма InterfaceReference должна вызываться драйвером, экспортируемым интерфейсом, каждый раз, когда драйвер предоставляет этот интерфейс в ответ на IRP_MN_QUERY_INTERFACE. Аналогичным образом, если драйвер, запрашивающий интерфейс, затем передает его другому драйверу, драйвер, который передает интерфейс, должен вызывать InterfaceReference от имени драйвера, который получает его.

Каждый драйвер, импортируемый интерфейс (будь то отправка IRP_MN_QUERY_INTERFACE или получение интерфейса из другого драйвера), должен вызывать подпрограмму InterfaceDereference после завершения работы с интерфейсом. После вызова подпрограммы InterfaceDereference драйвер не может снова использовать интерфейс, не переобназовав его.

При вводе новой версии существующего интерфейса создайте новый GUID вместо изменения полей Размера или версии этой структуры. Дополнительные сведения см. в разделе Использование интерфейсов Driver-Defined.

Требования

Требование Ценность
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)

См. также

IRP_MN_QUERY_INTERFACE

interfaceDereference