STOR_DEVICE_CAPABILITIES_EX 構造体 (srb.h)
STOR_DEVICE_CAPABILITIES_EX構造体は、SCSI 要求ブロック (SRB) の機能クエリに応答して、デバイスの機能を SCSI ポート ドライバーに報告し、SRB_FUNCTION_PNPの関数を使用します。 STOR_DEVICE_CAPABILITIES は、ストレージ デバイスに関連するメンバーを含む DEVICE_CAPABILITIES 構造体のサブセットです。
構文
typedef struct _STOR_DEVICE_CAPABILITIES_EX {
USHORT Version;
USHORT Size;
ULONG DeviceD1 : 1;
ULONG DeviceD2 : 1;
ULONG LockSupported : 1;
ULONG EjectSupported : 1;
ULONG Removable : 1;
ULONG DockDevice : 1;
ULONG UniqueID : 1;
ULONG SilentInstall : 1;
ULONG RawDeviceOK : 1;
ULONG SurpriseRemovalOK : 1;
ULONG NoDisplayInUI : 1;
ULONG DefaultWriteCacheEnabled : 1;
ULONG Reserved0 : 20;
ULONG Address;
ULONG UINumber;
ULONG Reserved1[2];
} STOR_DEVICE_CAPABILITIES_EX, *PSTOR_DEVICE_CAPABILITIES_EX;
メンバー
Version
構造体のバージョンを指定します。 Storport でSTOR_DEVICE_CAPABILITIES_EX_VERSION_1に設定します。
Size
構造体のサイズを指定します。 Storport で sizeof(STOR_DEVICE_CAPABILITIES_EX) に設定します。
DeviceD1
デバイス ハードウェアが D1 電源状態をサポートするかどうかを指定します。 ミニポート ドライバーは、このビットを 0 に設定します。
DeviceD2
デバイス ハードウェアが D2 電源状態をサポートするかどうかを指定します。 ミニポート ドライバーは、このビットを 0 に設定します。
LockSupported
デバイスがデバイスの取り出しを禁止する物理デバイスのロックをサポートするかどうかを指定します。 このメンバーは、LUN またはユニット デバイスの取り出しに関連します。
EjectSupported
システムが PowerSystemWorking 状態の間に、デバイスがソフトウェア制御デバイスの排出をサポートするかどうかを指定します。 このメンバーは、LUN またはユニット デバイスの取り出しに関連します。
Removable
デバイスを直接の親から動的に削除できるかどうかを指定します。 [リムーバブル] が TRUE に設定されている場合:
- デバイスは、その親と同じ物理オブジェクトに属していません。
- SurpriseRemovalOK も TRUE に設定されていない限り、デバイスは [ハードウェアの取り外しまたは取り出し] プログラムに表示されます。
DockDevice
デバイスがドッキング周辺機器であるかどうかを指定します。
UniqueID
デバイスのインスタンス ID がシステム全体で一意であるかどうかを指定します。 インスタンス ID がバスのスコープ内でのみ一意である場合、このビットは明確です。
SilentInstall
"互換性のあるドライバーが見つかりません" などの必要なダイアログ ボックスを除き、デバイス マネージャーすべてのインストール ダイアログ ボックスを非表示にするかどうかを指定します。
RawDeviceOK
関数ドライバーがない場合に、基になるバスのドライバーがデバイスを駆動できるかどうかを指定します (たとえば、パススルー モードの SCSI デバイス)。 この動作モードは生モードと呼ばれます。
SurpriseRemovalOK
SCSI ポートがSCSI_PNP_REQUEST_BLOCK構造体のPnPAction として StorRemoveDevice を使用してSRB_FUNCTION_PNPを送信する前に、デバイスのミニポート ドライバーがデバイスが削除されたケースを処理できるかどうかを指定します。 SurpriseRemovalOK が TRUE に設定されている場合、ドライバーの状態に関係なく、デバイスを直接の親から安全に削除できます。
NoDisplayInUI
ユーザー インターフェイスにデバイスを表示しないでください。 このビットが設定されている場合、デバイスが存在するが起動に失敗した場合でも、デバイスはユーザー インターフェイスに表示されません。 ミニポート ドライバーは、このビットを設定しません。
DefaultWriteCacheEnabled
ストレージ デバイスの書き込みキャッシュは、初期化時に既定で有効になっています。
Reserved0
予約済みビット。
Address
記憶装置デバイスの LUN アドレス。
UINumber
ユーザー インターフェイスに表示できるデバイスに関連付けられている番号を指定します。
この数値は、ユーザーが物理デバイスを簡単に見つけられるように選択された ID 値である場合があります。 UINumber が不明な場合、ミニポート ドライバーは、このメンバーを既定値の 0xFFFFFFFF に設定できます。
Reserved1[2]
予約済みビット。
注釈
ミニポート ドライバーは、 その HwStorStartIo ルーチンで SRB を受け取る場合、SRB 関数がSRB_FUNCTION_PNP、SRB は 、SCSI_PNP_REQUEST_BLOCK 構造体として書式設定されます。 SRB の PnPAction メンバーが StorQueryCapabilities の場合、ミニポートは SRB の DataBuffer メンバーでSTOR_DEVICE_CAPABILITIES_EX構造体を返すことができます。
デバイスの取り出し、取り外し、および取り付けの特性は 、STOR_DEVICE_CAPABILITIES_EX 構造で設定されます。 この構造体の使用をサポートするには、ミニポートが ScsiPortInitialize を呼び出す前に、HW_INITIALIZATION_DATA (SCSI) の FeatureSupport フラグ メンバーのSTOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES フラグを設定する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 以降で使用できます。 |
Header | srb.h (Storport.h、Minitape.h、Srb.h を含む) |