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


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

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

Синтаксис

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

Члены

Size

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

Version

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

Context

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

InterfaceReference

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

InterfaceDereference

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

Комментарии

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

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

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

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

Требования

Требование Значение
Заголовок wdm.h (включает Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)

См. также раздел

IRP_MN_QUERY_INTERFACE

InterfaceDereference