次の方法で共有


SCSIWMI_REQUEST_CONTEXT構造体 (scsiwmi.h)

SCSIWMI_REQUEST_CONTEXT構造体には、WMI SRB のコンテキスト情報が含まれています。

手記

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

構文

typedef struct {
  PVOID  UserContext;
  ULONG  BufferSize;
  PUCHAR Buffer;
  UCHAR  MinorFunction;
  UCHAR  ReturnStatus;
  ULONG  ReturnSize;
} SCSIWMI_REQUEST_CONTEXT, *PSCSIWMI_REQUEST_CONTEXT;

メンバーズ

UserContext

ミニポート ドライバーが SRB を処理するために必要なデータを含むミニポート ドライバー バッファーをポイントします。 ミニポート ドライバーのHW_DEVICE_EXTENSION構造体またはその他のバッファーへのポインターを指定できます。

BufferSize

システム用に予約されており、ミニポート ドライバーでは使用できません。

Buffer

システム用に予約されており、ミニポート ドライバーでは使用できません。

MinorFunction

システム用に予約されており、ミニポート ドライバーでは使用できません。

ReturnStatus

SRB の戻り値の状態を示します。 ミニポート ドライバーが要求コンテキストを更新する ScsiPortWmiPostProcess呼び出した後まで、このメンバーは無効です。

ReturnSize

SRB に転送されたデータのバイト数を示します。 ミニポート ドライバーが要求コンテキストを更新する ScsiPortWmiPostProcess呼び出した後まで、このメンバーは無効です。

備考

ミニポート ドライバーは、関数 メンバーがSRB_FUNCTION_WMIに設定されている SRB を受信すると、要求コンテキストへのポインターを含む、要求パラメーター ScsiPortWmiDispatchFunction を呼び出します。 ScsiPortWmiDispatchFunction は、要求コンテキストをミニポート ドライバーの適切な HwScsiWmiXxx ルーチンに渡します。

ミニポート ドライバーが SRB の処理を完了すると、SRB を完了する前に、ミニポート ドライバーは ScsiPortWmiPostProcess を呼び出して、要求コンテキストの ReturnStatus と ReturnSize メンバー 更新する必要があります。 ミニポート ドライバーは、ScsiPortWmiGetReturnSize を呼び出して、SRB のデータ転送の長さと状態をこれらの値に更新し、ScsiPortWmiGetReturnStatusします。 それぞれ。

要求コンテキストは、SRB の処理全体を通じて有効なままである必要があります。 SRB にペンを付けることができる場合、ミニポート ドライバーは SRB 拡張機能からSCSIWMI_REQUEST_CONTEXT構造体を割り当てる必要があります。SRB が完了するまで有効なままです。 保留中ではない SRB の場合、構造体はスコープ外に出ないスタック フレームから割り当てることができます。

必要条件

要件 価値
ヘッダー scsiwmi.h (Scsiwmi.h を含む)

関連項目

ScsiPortWmiDispatchFunction

ScsiPortWmiGetReturnSize

ScsiPortWmiGetReturnStatus

ScsiPortWmiPostProcess