STORAGE_PROTOCOL_NVME_DATA_TYPE列挙 (ntddstor.h)

IOCTL_STORAGE_QUERY_PROPERTY要求中にクエリを実行する NVMe プロトコル固有のデータの種類について説明します。

構文

typedef enum _STORAGE_PROTOCOL_NVME_DATA_TYPE {
  NVMeDataTypeUnknown,
  NVMeDataTypeIdentify,
  NVMeDataTypeLogPage,
  NVMeDataTypeFeature,
  NVMeDataTypeLogPageEx,
  NVMeDataTypeFeatureEx
} STORAGE_PROTOCOL_NVME_DATA_TYPE, *PSTORAGE_PROTOCOL_NVME_DATA_TYPE;

定数

 
NVMeDataTypeUnknown
不明なデータ型。
NVMeDataTypeIdentify
識別データを取得します。これは、コントローラー データの識別または名前空間データの識別のいずれかになります。

この種類のデータに対してクエリを実行する場合、 STORAGE_PROTOCOL_SPECIFIC_DATA 構造体のフィールドには次の値が必要です。

- ProtocolDataRequestValue は、アダプターまたは名前空間の NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACENVME_IDENTIFY_CNS_CONTROLLER されます。
- ProtocolDataRequestValueNVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE場合、 ProtocolDataRequestSubValue フィールドは名前空間 ID を指定します。 ( NVME_IDENTIFY_CNS_ACTIVE_NAMESPACES は現在サポートされていないことに注意してください)。
NVMeDataTypeLogPage
NVMe ログ ページを取得します。

この種類のデータに対してクエリを実行する場合、 STORAGE_PROTOCOL_SPECIFIC_DATA 構造体のフィールドには次の値が必要です。

- ProtocolDataRequestValue は、取得するログ ページの識別子です。
- ProtocolDataRequestSubValue は、データの返しを開始するログ ページ内のオフセットの下位 32 ビット値です。
- ProtocolDataRequestSubValue2 は、データの返しを開始するログ ページ内のオフセットの上位 32 ビット値です。
- ProtocolDataRequestSubValue3 は、特定のログ ページに必要なログ固有の識別子です。
- ProtocolDataRequestSubValue4 は、ログ ページを取得するときに追加情報を指定できる STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE 構造です。
NVMeDataTypeFeature
コマンドによって取得 - フィーチャーの取得またはフィーチャーの設定

STORAGE_PROTOCOL_SPECIFIC_DATA (get) または STORAGE_PROTOCOL_SPECIFIC_DATA_EXT (set) 内 対応する値:

- ProtocolDataRequestValue - NVME_CDW10_GET_FEATURES/NVME_CDW10_SET_FEATURES で定義されます
- ProtocolDataRequestSubValue - NVME_CDW11_FEATURES で定義されます
- ProtocolDataRequestSubValue2 - NVME_CDW12_FEATURESで定義
- ProtocolDataRequestSubValue3 - NVME_CDW13_FEATURESで定義
- ProtocolDataRequestSubValue4 - NVME_CDW14_FEATURESで定義
- ProtocolDataRequestSubValue5 - NVME_CDW15_FEATURESで定義
NVMeDataTypeLogPageEx
コマンドによって取得 - GET LOG PAGE

この種類のデータに対してクエリを実行する場合、 STORAGE_PROTOCOL_SPECIFIC_DATA_EXT 構造体のフィールドには次の値が必要です。

- ProtocolDataValue - NVME_CDW10_GET_LOG_PAGEで定義
- ProtocolDataSubValue - NVME_CDW11_GET_LOG_PAGEで定義
- ProtocolDataSubValue2 - NVME_CDW12_GET_LOG_PAGEで定義
- ProtocolDataSubValue3 - NVME_CDW13_GET_LOG_PAGEで定義されています
- ProtocolDataSubValue4 - NVME_CDW14_GET_LOG_PAGEで定義
- ProtocolDataSubValue5 - NVME_CDW15_GET_LOG_PAGEで定義されています (現在は使用されていません)
- ProtocolDataSubValue6 - 名前空間 ID
NVMeDataTypeFeatureEx
コマンドによって取得 - フィーチャーの取得またはフィーチャーの設定

この種類のデータに対してクエリを実行する場合、 STORAGE_PROTOCOL_SPECIFIC_DATA_EXT 構造体のフィールドには次の値が必要です。

- ProtocolDataValue - NVME_CDW10_GET_FEATURES/NVME_CDW10_SET_FEATURES で定義されます
- ProtocolDataSubValue - NVME_CDW11_FEATURESで定義
- ProtocolDataSubValue2 - NVME_CDW12_FEATURESで定義
- ProtocolDataSubValue3 - NVME_CDW13_FEATURESで定義
- ProtocolDataSubValue4 - NVME_CDW14_FEATURESで定義
- ProtocolDataSubValue5 - NVME_CDW15_FEATURESで定義
- ProtocolDataSubValue6 - 名前空間 ID

注釈

IOCTL_STORAGE_QUERY_PROPERTYを使用して STORAGE_PROTOCOL_DATA_DESCRIPTOR 内のプロトコル固有の 情報を取得する場合は、 STORAGE_PROPERTY_QUERY 構造を次のように構成します。

  • STORAGE_PROPERTY_QUERYSTORAGE_PROTOCOL_SPECIFIC_DATA 構造体の両方を含むことができるバッファーを割り当てます。

  • コントローラー要求の場合は PropertyID フィールドを StorageAdapterProtocolSpecificProperty に、デバイス/名前空間要求の場合は StorageDeviceProtocolSpecificProperty にそれぞれ設定します。

  • QueryType フィールドを PropertyStandardQuery に設定します。

  • STORAGE_PROTOCOL_SPECIFIC_DATA 構造体に必要な値を入力します。 STORAGE_PROTOCOL_SPECIFIC_DATA の先頭は STORAGE_PROPERTY_QUERYAdditionalParameters フィールドです。

NVMe プロトコル固有の情報の種類を指定するには、STORAGE_PROTOCOL_SPECIFIC_DATA 構造体を次のように構成します。

  • ProtocolType フィールドを ProtocolTypeNVMe に設定します。

  • DataType フィールドを STORAGE_PROTOCOL_NVME_DATA_TYPE で定義された列挙値に設定します。

    • NVMeDataTypeIdentify を使って、コントローラーの識別データまたは名前空間の識別データを取得します。
    • NVMeDataTypeLogPage を使って、ログ ページ (SMART/正常性データを含む) を取得します。
    • NVMeDataTypeFeature を使って、NVMe ドライブの機能を取得します。
    • NVMeDataTypeLogPageEx を使用して、拡張形式を使用してログ ページ (SMART/正常性データを含む) を取得します。
    • NVMeDataTypeFeatureEx を使用して、拡張形式を使用して NVMe ドライブの機能を取得します。

要件

要件
サポートされている最小のクライアント Windows 10
サポートされている最小のサーバー Windows Server 2016
Header ntddstor.h (Ntddstor.h を含む)

こちらもご覧ください