ScsiPortWmiPostProcess 関数 (scsiwmi.h)
ScsiPortWmiPostProcess ルーチンは、WMI SRB の要求コンテキストを更新します。
構文
void ScsiPortWmiPostProcess(
[in] PSCSIWMI_REQUEST_CONTEXT RequestContext,
[in] UCHAR SrbStatus,
[in] ULONG BufferUsed
);
パラメーター
[in] RequestContext
この SRB の要求コンテキストへのポインター。
[in] SrbStatus
有効な SRB 状態を指定します。 ミニポート ドライバーに渡された出力バッファーが小さすぎて要求からのすべてのデータを格納できなかった場合、ミニポート ドライバーは SrbStatus SRB_STATUS_DATA_OVERRUNに設定します。
[in] BufferUsed
SrbStatus が成功を示す場合、ミニポート ドライバーは BufferUsed バッファーに書き込まれたデータのバイト数を設定します。 SrbStatus SRB_STATUS_DATA_OVERRUN場合、ミニポート ドライバーは、BufferUsed を SRB を正常に完了するために必要なバイト数に設定します。
戻り値
何一つ
備考
ミニポート ドライバーは、WMI SRB 要求が処理され、完了する準備ができた後 ScsiPortWmiPostProcess を呼び出す必要があります。
同期 SRB の場合、ScsiPortWmiPostProcess コールバック ルーチンで呼び出されます。
保留中の SRB の場合、ScsiPortWmiPostProcess は、SRB が処理された後、および完了する前に呼び出されます。
ミニポート ドライバー SrbStatus をSRB_STATUS_DATA_OVERRUNに設定し、BufferUsed 設定する場合、割り当てられたバッファーが BufferUsed バイト以上 同じ WMI SRB が連続して成功します。 これは、SrbStatus SRB_STATUS_DATA_OVERRUN と等しい ScsiPortWmiPostProcess 呼び出すときに要求を完了するために必要な、BufferUsed の正確な値をドライバーが設定する場合に実現する必要があります。 可変サイズの出力構造の場合、SRB の入力データ バッファーには、BufferUsed 値 正確に判断するのに十分な情報が必要です。 入力データ バッファーに十分な情報が含まれていない場合、ドライバーは、SRB_STATUS_DATA_OVERRUNで同じ SRB を 2 回失敗しないようにする必要があります。 代わりに、ドライバーは、SRB_STATUS_DATA_OVERRUNを設定し、最初に出力バッファーに必要な最小サイズを要求し、SRB_STATUS_SUCCESSを設定し、出力バッファーの内容でエラーを示す必要があります。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | scsiwmi.h (ミニポート h、Scsi.h を含む) |
関連項目
ScsiPortWmiDispatchFunction の
ScsiPortWmiGetReturnStatus の