SpbControllerSetIoOtherCallback 関数 (spbcx.h)
SpbControllerSetIoOtherCallback メソッドは、SPB コントローラー ドライバーの EvtSpbControllerIoOther コールバック関数を登録します。
構文
void SpbControllerSetIoOtherCallback(
[in] WDFDEVICE FxDevice,
[in] PFN_SPB_CONTROLLER_OTHER EvtSpbControllerIoOther,
[in, optional] PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext
);
パラメーター
[in] FxDevice
SPB コントローラーを表すデバイス オブジェクトへの WDFDEVICE ハンドル。
[in] EvtSpbControllerIoOther
EvtSpbControllerIoOther コールバック関数へのポインター。 SPB コントローラー ドライバーは、この関数を実装します。 SPB フレームワーク拡張機能 (SpbCx) は、この関数を呼び出して、コントローラー ドライバーに I/O コントロール要求を渡します。 この関数に渡される I/O 要求の種類の詳細については、次の「解説」セクションを参照してください。
[in, optional] EvtIoInCallerContext
EvtIoInCallerContext コールバック関数へのポインター。これは、I/O 制御要求がコントローラーの I/O キューに最初に到着したときに呼び出され、要求に SPB フレームワーク拡張機能 (SpbCx) が認識しない IOCTL コードが含まれています。 このコールバックは要求元のプロセス コンテキストで実行され、後で EvtSpbControllerIoOther コールバックによって処理される要求を前処理できます。 このパラメーターは省略可能であり、そのような前処理が必要ない場合は NULL として指定できます。 詳細については、次の「解説」セクションを参照してください。
戻り値
何一つ
備考
このメソッドは、SPB コントローラー ドライバーが、バス固有またはドライバー固有のカスタム I/O コントロール コード (IOCTL) のサポートを宣言する方法を提供します。 SPB コントローラー ドライバーがこのメソッドを呼び出さない場合、SpbCx はこのようなすべての I/O コントロール要求を拒否し、SPB コント ローラー ドライバーはそれらを表示しません。
SpbCx は、SPB コントローラーの I/O キューを管理します。 既定では、SpbCx がサポートしていない IOCTL を持つ I/O 制御要求を受信した場合、SpbCx はエラー状態コードSTATUS_INVALID_DEVICE_REQUESTで要求を完了します。
ただし、spbControllerSetIoOtherCallback 呼び出すことによって、SPB コントローラー ドライバーは、SPB フレームワーク拡張機能 (SpbCx) がサポートしていない I/O コントロール要求のサポートを宣言します。 この場合、SpbCx がサポートしていない IOCTL コードを持つ I/O 制御要求を受け取ると、SpbCx は EvtSpbControllerIoOther 関数を呼び出して、処理のために SPB コントローラー ドライバーに要求を渡します。 SPB コントローラー ドライバーは、要求の完了を担当します。
SpbCx がサポートする IOCTL の一覧については、「SpbCx I/O コントロール コードのを参照してください。
EvtIoInCallerContext コールバック関数の省略可能な は、要求元のプロセス コンテキストで実行され、要求が EvtSpbControllerIoOther コールバック関数に渡される前に、バッファー ポインターなどのコンテキスト依存要求パラメーターを前処理できます。 EvtIoInCallerContext 関数が呼び出されると、spbControllerSetRequestAttributes の以前の呼び出しで SPB コントローラー ドライバーが要求した要求ごとのコンテキストが既に割り当てられ、要求に割り当てられます。
SPB コントローラー ドライバーは、デバイス オブジェクト コミット 前にこのメソッドを呼び出す必要があります。つまり、EvtDriverDeviceAdd コールバックから戻るか、コントローラーの子リストに PDO を追加する前です。 子リストは、バスに接続されているデバイスを表します。 詳細については、「バス上のデバイスの列挙」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | spbcx.h |
ライブラリ | Spbcxstubs.lib |
IRQL | PASSIVE_LEVEL |
関連項目
EvtIoInCallerContext の
EvtSpbControllerIoOther の
spbControllerSetRequestAttributes の