BUS_INTERFACE_REFERENCE结构 (ks.h)

软件设备枚举器导出此接口,以允许驱动程序引用计数物理设备对象(PDO),以便设备在使用期间保持活动状态,并在不使用时卸载。

语法

typedef struct {
  INTERFACE                  Interface;
  PFNREFERENCEDEVICEOBJECT   ReferenceDeviceObject;
  PFNDEREFERENCEDEVICEOBJECT DereferenceDeviceObject;
  PFNQUERYREFERENCESTRING    QueryReferenceString;
} BUS_INTERFACE_REFERENCE, *PBUS_INTERFACE_REFERENCE;

成员

Interface

指定导出的 INTERFACE

ReferenceDeviceObject

指向驱动程序提供的 KStrReferenceDeviceObject 例程的指针。

DereferenceDeviceObject

指向驱动程序提供的 KStrDereferenceDeviceObject 例程的指针。

QueryReferenceString

指向驱动程序提供的 KStrQueryReferenceString 例程的指针。

言论

驱动程序通过创建和发送指定 IRP_MN_QUERY_INTERFACE 次要函数代码的IRP_MJ_PNP请求来获取BUS_INTERFACE_REFERENCE接口。 为此,驱动程序应:

  • 从分页内存池分配和零填充BUS_INTERFACE_REFERENCE结构。
  • 为查询接口请求创建 IRP,并获取新 IRP 的下一个堆栈位置。
  • 在新堆栈位置中,提供指向 Parameters.QueryInterface.Interface 成员中新BUS_INTERFACE_REFERENCE结构的指针。
  • 设置完成例程,并将请求发送到驱动程序堆栈。
  • 如果请求成功,系统会填充 Parameters.QueryInterface.Interface指向的BUS_INTERFACE_REFERENCE结构。

要求

要求 价值
标头 ks.h (包括 Ks.h)