SCSI_PNP_REQUEST_BLOCK構造体 (minitape.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 ドライバーに通知する前に、この値を設定する必要があります。 ミニポート ドライバーは、通知の種類が RequestCompleteStorPortNotification ルーチンを呼び出すことによって要求が完了したことを 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 minitape.h (Storport.h、Minitape.h、Srb.h を含む)

こちらもご覧ください

HwStorBuildIo

SCSI_REQUEST_BLOCK

StorPortNotification