BUS_INTERFACE_REFERENCE 结构 (ks.h)

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

语法

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

成员

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结构。

要求

要求
Header ks.h (包括 Ks.h)