(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) |