次の方法で共有


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を送信する前に、デバイスのミニポート ドライバーがデバイスが削除されたケースを処理できるかどうかを指定します。 SurpriseRemovalOKTRUE に設定されている場合、ドライバーの状態に関係なく、デバイスを直接の親から安全に削除できます。

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 を含む)

こちらもご覧ください

DEVICE_CAPABILITIES

HW_INITIALIZATION_DATA (SCSI)

SCSI_PNP_REQUEST_BLOCK

ScsiPortInitialize