次の方法で共有


ScsiPortWmiPostProcess 関数 (scsiwmi.h)

ScsiPortWmiPostProcess ルーチンは、WMI SRB の要求コンテキストを更新します。

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

構文

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

関連項目

SCSIWMI_REQUEST_CONTEXT

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus