spbTargetGetFileObject 函数 (spbcx.h)

SpbTargetGetFileObject 方法接受打开的目标设备的 SPBTARGET 句柄作为输入参数,并将 WDFFILEOBJECT 句柄返回到此目标。

语法

WDFFILEOBJECT SpbTargetGetFileObject(
  [in] SPBTARGET Target
);

参数

[in] Target

总线上目标设备的 SPBTARGET 句柄。

返回值

SpbTargetGetFileObject 将 WDFFILEOBJECT 句柄返回到总线上打开的目标设备。 如果与目标的连接已被 EvtSpbTargetDisconnect 事件回调关闭,则方法返回 NULL。

注解

控制器驱动程序可以调用此方法来获取总线上打开的目标设备的 WDFFILEOBJECT 句柄。 然后,SPB 控制器驱动程序可以将此句柄用作需要此类句柄的 WDF 方法的输入参数。

仅当关闭目标的 WDFFILEOBJECT 句柄时,SpbTargetGetFileObject 才返回 NULL,但在关闭之前,SPB 控制器驱动程序对 SBPTARGET 对象进行了附加引用以延长其生存期。

如果连接已关闭,并且 SPB 控制器驱动程序不保留对 SPBTARGET 对象的引用,则 SBPTARGET 句柄不再有效。 将无效句柄传递给 SpbTargetGetFileObject 会导致 bug 检查。

SpbTargetGetFileObject 返回 WDFFILEOBJECT 句柄后,无法保证目标连接将保持打开状态,除非另一个对象 (例如,活动 I/O 请求) 保存对 WDFFILEOBJECT 对象的引用以防止其意外关闭。 此方法最有用,因此,在保证目标连接处于打开状态时,最可能调用此方法。 通常,此类调用发生在 EvtSpbTargetConnectEvtSpbTargetDisconnect 回调期间,以及处理 I/O 请求期间。

要求

要求
最低受支持的客户端 从Windows 8开始可用。
目标平台 通用
标头 spbcx.h
Library Spbcxstubs.lib
IRQL <= DISPATCH_LEVEL

另请参阅

EvtSpbTargetConnect

EvtSpbTargetDisconnect

SPBTARGET