STOR_DEVICE_CAPABILITIES_EX構造体 (minitape.h)
STOR_DEVICE_CAPABILITIES_EX 構造体は、SCSI 要求ブロック (SRB) の機能クエリに応答して、SRB_FUNCTION_PNPの機能を Storport ドライバーに報告します。 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 設定されている場合、デバイスは親と同じ物理オブジェクトに属していません。
リムーバブル TRUE に設定されている場合、デバイスは、SurpriseRemovalOK も TRUE 設定されていない限り、ハードウェアの取り外しまたは取り出しプログラムに表示されます。
DockDevice
デバイスがドッキング周辺機器かどうかを指定します。
UniqueID
デバイスのインスタンス ID がシステム全体で一意かどうかを指定します。 インスタンス ID がバスのスコープ内でのみ一意である場合、このビットは明確です。
SilentInstall
デバイス マネージャー すべてのインストール ダイアログ ボックスを非表示にするかどうかを指定します。必要なダイアログ ボックス ("互換性のあるドライバーが見つかりません" など) を除きます。
RawDeviceOK
ファンクション ドライバーがない場合に、基になるバスのドライバーがデバイスを駆動できるかどうかを指定します (たとえば、パススルー モードの SCSI デバイス)。 この操作モードは生モードと呼ばれます。
SurpriseRemovalOK
デバイスのミニポート ドライバーが、Storport が SCSI_PNP_REQUEST_BLOCK 構造体の PnPAction として StorRemoveDevice を使用してSRB_FUNCTION_PNPを送信する前に、デバイスが削除された場合を処理できるかどうかを指定します。 SurpriseRemovalOK が TRUE 設定されている場合、ドライバーの状態に関係なく、デバイスを直接の親から安全に削除できます。
NoDisplayInUI
ユーザー インターフェイスにデバイスを表示しないでください。 このビットが設定されている場合、デバイスが存在するが起動に失敗した場合でも、デバイスはユーザー インターフェイスに表示されません。 ミニポート ドライバーは、このビットを設定しません。
DefaultWriteCacheEnabled
ストレージ デバイスの書き込みキャッシュは、初期化時に既定で有効になっています。
Reserved0
予約済みビット。
Address
ストレージ ユニット デバイスの LUN アドレス。
UINumber
ユーザー インターフェイスに表示できるデバイスに関連付けられている番号を指定します。
この数値は、ユーザーが物理デバイスを簡単に見つけられるように選択された ID 値である可能性があります。 UINumber が不明な場合、ミニポート ドライバーは、このメンバーを既定値の0xFFFFFFFFに設定できます。
Reserved1[2]
予約済みビット。
備考
ミニポート ドライバーは、SRB 関数がSRB_FUNCTION_PNPされている HwStorStartIo ルーチンで SRB を受信すると、SRB は SCSI_PNP_REQUEST_BLOCK 構造体として書式設定されます。 SRB の PnPAction メンバーが StorQueryCapabilities 場合、ミニポートは SRB の DataBuffer メンバーの STOR_DEVICE_CAPABILITIES_EX 構造体を返すことができます。
デバイスの取り出し、取り外し、および取り付けの特性は、STOR_DEVICE_CAPABILITIES_EX 構造で設定されます。 この構造体の使用をサポートするには、ミニポートが StorPortInitialize STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIESを呼び出す前に、HW_INITIALIZATION_DATA の FeatureSupport フラグ メンバーでフラグを設定する必要があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 |
ヘッダー | minitape.h (Storport.h、Minitape.h、Srb.h を含む) |
関連項目
HW_INITIALIZATION_DATASCSI_PNP_REQUEST_BLOCK
StorPortInitializeの