(wdm.h) 的 INTERFACE 结构

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请求而返回的接口的所有结构的第一个成员包含在内。

每次驱动程序提供接口以响应IRP_MN_QUERY_INTERFACE时,导出接口的驱动程序都必须调用 InterfaceReference 例程。 同样,如果请求接口的驱动程序随后将其传递给另一个驱动程序,则传递接口的驱动程序必须代表接收接口的驱动程序调用 InterfaceReference

导入接口的每个驱动程序 (无论是通过发送 IRP_MN_QUERY_INTERFACE 还是从另一个驱动程序接收接口) 都必须在接口使用完接口后调用 InterfaceDereference 例程。 调用 InterfaceDereference 例程后,驱动程序不能在不首先重新获取接口的情况下再次使用该接口。

引入现有接口的新版本时,请创建新的 GUID,而不是修改此结构的“大小”或“版本”字段。 有关详细信息,请参阅 使用 Driver-Defined 接口

要求

要求
Header wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Miniport.h)

另请参阅

IRP_MN_QUERY_INTERFACE

InterfaceDereference