次の方法で共有


SpbTargetGetFileObject 関数 (spbcx.h)

SpbTargetGetFileObject メソッドは、開いているターゲット デバイスへの SPBTARGET ハンドルを入力パラメーターとして受け取り、このターゲットに WDFFILEOBJECT ハンドルを返します。

構文

WDFFILEOBJECT SpbTargetGetFileObject(
  [in] SPBTARGET Target
);

パラメーター

[in] Target

バス上のターゲット デバイスへの SPBTARGET ハンドル。

戻り値

SpbTargetGetFileObject は、バス上の開いているターゲット デバイスに WDFFILEOBJECT ハンドルを返します。 ターゲットへの接続が EvtSpbTargetDisconnect イベント コールバックによって閉じられた場合、メソッドは NULL を返します。

注釈

コントローラー ドライバーは、このメソッドを呼び出して、バス上の開いているターゲット デバイスへの WDFFILEOBJECT ハンドルを取得できます。 SPB コントローラー ドライバーは、このようなハンドルを必要とする WDF メソッドへの入力パラメーターとして、このハンドルを使用できます。

SpbTargetGetFileObject は、ターゲットへの WDFFILEOBJECT ハンドルが閉じられた場合にのみ NULL を返しますが、閉じる前に、SPB コントローラー ドライバーが SBPTARGET オブジェクトの有効期間を延長するために追加の参照を取得しました。

接続が閉じられ、SPB コントローラー ドライバーが SPBTARGET オブジェクトへの参照を保持していない場合、SBPTARGET ハンドルは無効になります。 SpbTargetGetFileObject に無効なハンドルを渡すと、バグ チェックが発生します。

SpbTargetGetFileObject が WDFFILEOBJECT ハンドルを返した後、別のオブジェクト (アクティブな I/O 要求など) が WDFFILEOBJECT オブジェクトへの参照を保持して予期せず閉じないようにしない限り、ターゲット接続が開いたままになる保証はありません。 このメソッドは最も便利であり、したがって、ターゲット接続が開かれていることが保証されている場合に呼び出される可能性が最も高くなります。 通常、このような呼び出しは 、EvtSpbTargetConnect コールバックと EvtSpbTargetDisconnect コールバック中、および I/O 要求の処理中に発生します。

要件

要件
サポートされている最小のクライアント Windows 8 以降で使用できます。
対象プラットフォーム ユニバーサル
Header spbcx.h
Library Spbcxstubs.lib
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

EvtSpbTargetConnect

EvtSpbTargetDisconnect

SPBTARGET