SCSI_PNP_REQUEST_BLOCK構造体 (storport.h)
SCSI_PNP_REQUEST_BLOCK構造体は、プラグ アンド プレイ (PNP) 要求に使用されるSCSI_REQUEST_BLOCKの特別なバージョンです。
注意
SCSI ポート ドライバーと SCSI ミニポート ドライバー モデルは、今後変更または使用できない可能性があります。 代わりに、 Storport ドライバー と Storport ミニポート ドライバー モデルを使用することをお勧めします。
構文
typedef struct _SCSI_PNP_REQUEST_BLOCK {
USHORT Length;
UCHAR Function;
UCHAR SrbStatus;
UCHAR PnPSubFunction;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
STOR_PNP_ACTION PnPAction;
ULONG SrbFlags;
ULONG DataTransferLength;
ULONG TimeOutValue;
PVOID DataBuffer;
PVOID SenseInfoBuffer;
struct _SCSI_REQUEST_BLOCK *NextSrb;
PVOID OriginalRequest;
PVOID SrbExtension;
ULONG SrbPnPFlags;
ULONG Reserved;
UCHAR Reserved4[16];
} SCSI_PNP_REQUEST_BLOCK, *PSCSI_PNP_REQUEST_BLOCK;
メンバー
Length
SCSI_PNP_REQUEST_BLOCK構造体のサイズ (バイト単位)。
Function
実行する操作。 SCSI_PNP_REQUEST_BLOCK構造体の場合、このメンバーは常に SRB_FUNCTION_PNP に設定されます。
SrbStatus
完了した要求の状態。 ミニポート ドライバーは、要求が完了したことを Storport ドライバーに通知する前に、この値を設定する必要があります。 ミニポート ドライバーは、通知の種類が RequestComplete で StorPortNotification ルーチンを呼び出すことによって要求が完了したことを Storport ドライバーに通知します。 使用可能な状態値の一覧については、「 SCSI_REQUEST_BLOCK」を参照してください。
PnPSubFunction
このメンバーは現在使用されていません。 ミニポート ドライバーは、このメンバーを無視します。
PathId
要求の SCSI ポートまたはバス識別子。 この値は 0 から始まります。
TargetId
バス上のターゲット コントローラーまたはデバイス識別子。
Lun
デバイスの論理ユニット番号 (LUN)。
PnPAction
実行するプラグ アンド プレイ アクション。 このメンバーには、次のいずれかの値を指定できます。
値 | 意味 |
---|---|
StorStartDevice (0x00) | デバイスを起動します。 |
StorRemoveDevice (0x02) | デバイスを削除します。 |
StorStopDevice (0x04) | デバイスを停止します。 |
StorQueryCapabilities (0x09) | デバイスの機能に対してクエリを実行します。 |
StorQueryResourceRequirements (0x0B) | デバイスのリソース要件を照会します。 |
StorFilterResourceRequirements (0x0D) | デバイスのリソース要件をフィルター処理します。 |
StorSupriseRemoval (0x17) | デバイスの突然の削除。 この値は Windows 7 で追加されました。 |
SrbFlags
ミニポート ドライバーは、このメンバーを無視する必要があります。
DataTransferLength
ミニポート ドライバーは、このメンバーを無視する必要があります。
TimeOutValue
Storport ドライバーが要求がタイムアウトしたと判断するまでに要求を実行できる間隔 (秒単位)。
DataBuffer
ミニポート ドライバーは、このメンバーを無視する必要があります。
SenseInfoBuffer
ミニポート ドライバーは、このメンバーを無視する必要があります。
NextSrb
ミニポート ドライバーは、このメンバーを無視する必要があります。
OriginalRequest
ミニポート ドライバーは、このメンバーを無視する必要があります。
SrbExtension
SRB 拡張機能へのポインター。 ミニポート ドライバーは、HW_INITIALIZATION_DATA構造体で SrbExtensionSize を 0 に設定する場合、このメンバーを使用する必要があります。 Storport ドライバーは、このメンバーが指すメモリを初期化しません。 HBA は、ミニポート ドライバーが SRB 拡張機能に書き込むデータに直接アクセスできます。 ミニポート ドライバーは、 StorPortGetPhysicalAddress ルーチンを呼び出すことによって、SRB 拡張機能の物理アドレスを取得できます。
SrbPnPFlags
PNP フラグ。 現在、許可されているフラグは SRB_PNP_FLAGS_ADAPTER_REQUEST のみです。これは、PNP 要求がアダプター用であり、アダプター上のデバイスの 1 つではないことを示しています。 このフラグが設定されている場合、ミニポート ドライバーは PathId、TargetId、および Lun の値 を無視 する必要があります。
Reserved
システムで使用するために予約されています。
Reserved4[16]
システムで使用するために予約されています。
注釈
Storport ドライバーは、アダプターに接続 されている 記憶域デバイスに影響を与える Windows プラグ アンド プレイ イベントのミニポート ドライバーに通知するSCSI_PNP_REQUEST_BLOCK要求をミニポート ドライバーに送信します。
Storport ドライバーは HwStorBuildIo を呼び出して、ミニポート ドライバーに SRB を渡します。 HwStorBuildIo は 、SRB の Function メンバーを調べて、SRB の型を決定します。 Function メンバーが SRB_FUNCTION_PNP に設定されている場合、SRB は SCSI_PNP_REQUEST_BLOCK 型の構造体です。
要件
要件 | 値 |
---|---|
Header | storport.h (Storport.h、Minitape.h、Srb.h を含む) |