次の方法で共有


ScsiPortWmiDispatchFunction 関数 (scsiwmi.h)

ScsiPortWmiDispatchFunction ルーチンは、WMI をサポートするミニポート ドライバーのディスパッチ ルーチンです。

SCSI ポート ドライバーと SCSI ミニポート ドライバー モデルは、今後変更されたり使用できなくなったりする可能性があります。 代わりに、Storport ドライバー を使用し、Storport ミニポート ドライバー モデル することをお勧めします。
 

構文

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 を含む)

関連項目

SCSIWMI_REQUEST_CONTEXT

SCSI_WMILIB_CONTEXT

ScsiPortNotification

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus

ScsiPortWmiPostProcess