SpbTargetGetFileObject 函数 (spbcx.h)

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

语法

WDFFILEOBJECT SpbTargetGetFileObject(
  [in] SPBTARGET Target
);

参数

[in] Target

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

返回值

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

言论

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

SpbTargetGetFileObject 仅当目标的 WDFFILEOBJECT 句柄已关闭但关闭之前,SPB 控制器驱动程序才对 SBPTARGET 对象返回 NULL,以延长其生存期。

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

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

要求

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

另请参阅

EvtSpbTargetConnect

EvtSpbTargetDisconnect

SPBTARGET