次の方法で共有


SCSI_PNP_REQUEST_BLOCK構造体 (srb.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 ドライバーに通知する前に、この値を設定する必要があります。 ミニポート ドライバーは、StorPortNotification ルーチンを呼び出して要求が完了したことを Storport ドライバーに通知 RequestCompleteの通知の種類です。 使用可能な状態値の一覧については、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 拡張機能へのポインター。 ミニポート ドライバーは、SrbExtensionSize HW_INITIALIZATION_DATA 構造体 0 に設定する場合は、このメンバーを使用できません。 Storport ドライバーは、このメンバーが指すメモリを初期化しません。 HBA は、ミニポート ドライバーが SRB 拡張機能に書き込むデータに直接アクセスできます。 ミニポート ドライバーは、StorPortGetPhysicalAddress ルーチンを呼び出すことによって、SRB 拡張機能の物理アドレスを取得できます。

SrbPnPFlags

PNP フラグ。 現在、許可されるフラグはSRB_PNP_FLAGS_ADAPTER_REQUESTのみです。これは、PNP 要求がアダプター用であり、アダプター上のデバイスの 1 つを対象としないことを示します。 このフラグが設定されている場合、ミニポート ドライバーは、PathIdTargetId、および Lunの値を無視する必要があります。

Reserved

システム用に予約されています。

Reserved4[16]

システム用に予約されています。

備考

Storport ドライバーは、アダプターに接続されている記憶域デバイスに影響を与える Windows プラグ アンド プレイ イベントのミニポート ドライバーに通知するミニポート ドライバーに SCSI_PNP_REQUEST_BLOCK 要求を送信します。

Storport ドライバーは、ミニポート ドライバー SRB を渡すために HwStorBuildIo を呼び出します。 HwStorBuildIo は、SRB のメンバー 関数をチェックして、SRB の型を判断します。 Function メンバーが SRB_FUNCTION_PNP に設定されている場合、SRB は SCSI_PNP_REQUEST_BLOCK型の構造体です。

必要条件

要件 価値
ヘッダー srb.h (Storport.h、Minitape.h、Srb.h を含む)

関連項目

HwStorBuildIo

SCSI_REQUEST_BLOCK

StorPortNotification