ScsiPortWmiDispatchFunction 関数 (scsiwmi.h)
ScsiPortWmiDispatchFunction ルーチンは、WMI をサポートするミニポート ドライバーのディスパッチ ルーチンです。
構文
BOOLEAN ScsiPortWmiDispatchFunction(
[in] PSCSI_WMILIB_CONTEXT WmiLibInfo,
[in] UCHAR MinorFunction,
[in] PVOID DeviceContext,
[in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
[in] PVOID DataPath,
[in] ULONG BufferSize,
[in] PVOID Buffer
);
パラメーター
[in] WmiLibInfo
ミニポート ドライバーのデータ ブロックとイベント ブロックの登録情報を含み、ミニポート ドライバーの WMI ライブラリ コールバック ルーチンのエントリ ポイントを定義する SCSI_WMILIB_CONTEXT 構造体へのポインター。
[in] MinorFunction
実行する WMI アクションを示します。 ミニポート ドライバーは、MinorFunction を、入力 SRB から Srb->WmiSubFunction を するように設定します。
[in] DeviceContext
ミニポート ドライバーで定義されたコンテキスト値へのポインター。 ポート ドライバーは、DeviceContext をミニポート ドライバーの HwScsiWmiXxx コールバック ルーチンに渡します。 通常、この値はHW_DEVICE_EXTENSION構造体を指します。
[in] RequestContext
WMI SRB のコンテキスト情報を含むSCSIWMI_REQUEST_CONTEXT構造体へのポインター。 SRB がペンドできる場合、ミニポート ドライバーは、要求コンテキストが有効なままにする必要があるため、SRB 拡張機能からこの構造体を割り当てる必要があります ScsiPortWmiPostProcess 最終的な SRB の戻り状態とバッファー サイズで返されます。 ScsiPortWmiDispatchFunction は、この要求を処理 ミニポート ドライバーのコールバック ルーチンに RequestContext を渡します。
[in] DataPath
要求に関連付けられているデータ ブロックを表す GUID へのポインター。 ミニポート ドライバーは、DataPath 入力 SRB から Srb->DataPath を するように設定します。
[in] BufferSize
データ バッファーのサイズをバイト単位で指定します。 ミニポート ドライバーは、BufferSize 入力 SRB から Srb->DataTransferLength を に設定します。
[in] Buffer
データ バッファーへのポインター。 ミニポート ドライバーは、バッファー 入力 SRB から Srb->DataBuffer を に設定します。
戻り値
ScsiPortWmiDispatchFunction 、要求 が保留中の場合は TRUE を返し、要求が完了した場合は FALSE を します。
備考
ミニポート ドライバーは、関数 メンバーがSRB_FUNCTION_WMIに設定されている SRB を受け取ると、初期化されたSCSI_WMILIB_CONTEXT構造体へのポインターを含む要求パラメーター ScsiPortWmiDispatchFunction を呼び出します。 この構造体には、ミニポート ドライバーのデータ ブロックとイベント ブロックに関する情報が含まれており、ミニポート ドライバーの HwScsiWmiXxx コールバック ルーチンのエントリ ポイントを定義します。
ScsiPortWmiDispatchFunction は、SRB が WMI 要求であることを確認し、要求で指定されたブロックがミニポート ドライバーに対して有効かどうかを判断します。 これらの条件が満た 場合、ScsiPortWmiDispatchFunction は、ミニポート ドライバーのSCSI_WMILIB_CONTEXT構造体の適切な HwScsiWmiXxx エントリ ポイントを呼び出すことによって、SRB を処理します。 ミニポート ドライバーが HwScsiWmiXxx ルーチン 省略可能なエントリ ポイントを定義していない場合、ポート ドライバーは要求を処理します。
どちらの場合も、ScsiPortWmiDispatchFunction が返 後、ミニポート ドライバーは、ペンドしない要求に対して次の操作を行う必要があります。
- Srb->DataTransferLength ScsiPortWmiGetReturnSize によって返される値 設定します
- Srb->SrbStatus ScsiPortWmiGetReturnStatus 返される値に設定します
- RequestComplete で ScsiPortNotification を呼び出し、NextRequest 再度呼び出します
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | scsiwmi.h (ミニポート h、Scsi.h を含む) |
関連項目
ScsiPortWmiGetReturnStatus の
ScsiPortWmiPostProcess の