SCSI_WMI_REQUEST_BLOCK 構造体 (storport.h)

この構造は、WMI コマンドで使用する特別なバージョンの SCSI_REQUEST_BLOCK です。

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

構文

typedef struct _SCSI_WMI_REQUEST_BLOCK {
  USHORT Length;
  UCHAR  Function;
  UCHAR  SrbStatus;
  UCHAR  WMISubFunction;
  UCHAR  PathId;
  UCHAR  TargetId;
  UCHAR  Lun;
  UCHAR  Reserved1;
  UCHAR  WMIFlags;
  UCHAR  Reserved2[2];
  ULONG  SrbFlags;
  ULONG  DataTransferLength;
  ULONG  TimeOutValue;
  PVOID  DataBuffer;
  PVOID  DataPath;
  PVOID  Reserved3;
  PVOID  OriginalRequest;
  PVOID  SrbExtension;
  ULONG  Reserved4;
  ULONG  Reserved6;
  UCHAR  Reserved5[16];
} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK;

メンバー

Length

この構造体のサイズをバイト単位で指定します。

Function

SRB_FUNCTION_WMI。要求が WMI 要求であることを指定します。 このメンバーが SRB_FUNCTION_WMI に設定されていない場合、ミニポート ドライバーは要求を失敗させる必要があります。

SrbStatus

完了した要求の状態を返します。 このメンバーは、要求が完了したことを OS 固有のドライバーに通知する前に、ミニポート ドライバーによって設定する必要があります ScsiPortNotificationRequestComplete します。 このメンバーの値には、SCSI_REQUEST_BLOCKの SrbStatus にリストされている任意の値を指定できます。

WMISubFunction

実行する WMI アクションを示します。 ミニポート ドライバーは、この値に MinorFunction を設定して ScsiPortWmiDispatchFunction を呼び出します。 サブ関数の値は、WMI 操作を識別する WMI マイナー IRP 番号に対応します。

PathId

要求の SCSI ポートまたはバスを示します。 この値は 0 から始まります。 SRB_WMI_FLAGS_ADAPTER_REQUESTが WMIFlags で設定されている場合、このメンバーは予約されています。

TargetId

バス上のターゲット コントローラーまたはデバイスを示します。 SRB_WMI_FLAGS_ADAPTER_REQUESTが WMIFlags で設定されている場合、このメンバーは予約されています。

Lun

デバイスの論理ユニット番号を示します。 SRB_WMI_FLAGS_ADAPTER_REQUESTが WMIFlags で設定されている場合、このメンバーは予約されています。

Reserved1

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

WMIFlags

SRB_WMI_FLAGS_ADAPTER_REQUESTが設定されていて、 PathIdTargetIdLun が予約されている場合、WMI 要求がアダプター用であることを示します。 それ以外の場合、 WMIFlagsNULL になり、 PathIdTargetId、Lun で指定されたデバイスに対する要求であることを示 します

Reserved2[2]

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

SrbFlags

要求に関するさまざまなパラメーターとオプションを示します。 SrbFlags は読み取り専用です。 このメンバーは、次のフラグの 1 つ以上の ORed に一緒に設定されます。

SRB_FLAGS_DATA_IN

デバイスからシステムにデータが転送されることを示します。

SRB_FLAGS_DATA_OUT

システムからデバイスにデータが転送されることを示します。

SRB_FLAGS_NO_DATA_TRANSFER

この要求でデータ転送がないことを示します。 この設定を行うと、フラグSRB_FLAGS_DATA_OUT、SRB_FLAGS_DATA_IN、SRB_FLAGS_UNSPECIFIED_DIRECTIONが明確になります。

SRB_FLAGS_DISABLE_SYNCH_TRANSFER

可能であれば、この転送要求に対して非同期 I/O を実行する HBA を示します。 同期 I/O が以前にネゴシエートされた場合、転送を実行する前に、HBA は非同期 I/O に対して再ネゴシエーションする必要があります。

SRB_FLAGS_DISABLE_DISCONNECT

HBA は、この要求の処理中にターゲットが SCSI バスから切断できないようにする必要があることを示します。

DataTransferLength

データ バッファーのサイズをバイト単位で示します。 ミニポート ドライバーは、BufferSize がこの値に設定された ScsiPortWmiDispatchFunction を呼び出します。 アンダーランが発生した場合、ミニポート ドライバーは、実際に転送されたバイト数にこのメンバーを更新する必要があります。

TimeOutValue

OS 固有のポート ドライバーがタイムアウトと見なす前に要求を実行できる間隔を秒単位で示します。ミニポート ドライバーは、ポート ドライバーが既に行うため、要求を時刻に必要ありません。

DataBuffer

データ バッファーをポイントします。 ミニポート ドライバーは、バッファーをこの値に設定して ScsiPortWmiDispatchFunction を呼び出します。 ミニポート ドライバーは、HBA のPORT_CONFIGURATION_INFORMATIONの MapBuffers の値に関係なく、データ ポインターとしてこの値を使用できます。 ミニポート ドライバーは、DMA を使用してバッファーに直接データを転送することはできません。

DataPath

この要求の WMI データ パスを指定します。 ミニポート ドライバーは、DataPath がこの値に設定された ScsiPortWmiDispatchFunction を呼び出します。

Reserved3

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

OriginalRequest

この要求の IRP を指します。 このメンバーは、ミニポート ドライバーには関係ありません。

SrbExtension

Srb 拡張機能をポイントします。 HW_INITIALIZATION_DATAで SrbExtensionSize を 0 に設定した場合、ミニポート ドライバーはこのメンバーを使用しないでください。 SrbExtension のメモリは OS 固有のポート ドライバーによって初期化されず、ミニポート ドライバーによって決定されたデータに HBA から直接アクセスできます。 対応する物理アドレスは、SrbExtension ポインターを使用して ScsiPortGetPhysicalAddress を呼び出すことによって取得できます。

Reserved4

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

Reserved6

システム使用用に予約されており、ミニポート ドライバーでは使用できません。 このメンバーは、Windows Server 2003 SP1 以降で有効です。

Reserved5[16]

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

注釈

Windows NTストレージ クラスとフィルター ドライバーは、WMI SRB をシステム ポート ドライバーに送信できます。 システム ポート ドライバーは、ミニポート ドライバーの代わりに特定の WMI 要求を処理します。 ポート ドライバーが WMI 要求を処理できない場合は、ミニポート ドライバーに要求を転送します。

ミニポート ドライバーは、ミニポート ドライバーがPORT_CONFIGURATION_INFORMATION構造で WmiDataProvider を設定する場合にのみ、ポート ドライバーから WMI 要求を受信します。 ミニポート ドライバーが要求をサポートしている場合は、それを処理し、最初に RequestComplete を使用して、次に NextRequest (または NextLuRequest) を使用して ScsiPortNotification を 2 回呼び出して要求を完了する必要があります。

ミニポート ドライバーでの WMI のサポートについては、「 Windows Management Instrumentation」を参照してください。

要件

要件
Header storport.h (Storport.h、Srb.h、Storport.h、Minitape.h を含む)

こちらもご覧ください

HW_INITIALIZATION_DATA (SCSI)

PORT_CONFIGURATION_INFORMATION (SCSI)

SCSI_REQUEST_BLOCK

ScsiPortNotification

ScsiPortWmiDispatchFunction