STORAGE_PROTOCOL_NVME_DATA_TYPE enumeration (ntddstor.h)
Describes the type of NVMe protocol-specific data that is to be queried during an IOCTL_STORAGE_QUERY_PROPERTY request.
Syntax
typedef enum _STORAGE_PROTOCOL_NVME_DATA_TYPE {
NVMeDataTypeUnknown,
NVMeDataTypeIdentify,
NVMeDataTypeLogPage,
NVMeDataTypeFeature
} STORAGE_PROTOCOL_NVME_DATA_TYPE, *PSTORAGE_PROTOCOL_NVME_DATA_TYPE;
Constants
NVMeDataTypeUnknown Unknown data type. |
NVMeDataTypeIdentify Get Identify data, which can be either Identify Controller data or Identify Namespace data. When this type of data is being queried, fields in the STORAGE_PROTOCOL_SPECIFIC_DATA structure should have the following values: * ProtocolDataRequestValue will be NVME_IDENTIFY_CNS_CONTROLLER for adapter or NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE for namespace. * If the ProtocolDataRequestValue is NVME_IDENTIFY_CNS_SPECIFIC_NAMESPACE, the ProtocolDataRequestSubValue field specifies the namespace ID. (Note that NVME_IDENTIFY_CNS_ACTIVE_NAMESPACES is currently not supported.) |
NVMeDataTypeLogPage Get an NVMe log page. When this type of data is being queried, fields in the STORAGE_PROTOCOL_SPECIFIC_DATA structure should have the following values: * ProtocolDataRequestValue is the identifier of the log page to retrieve. * ProtocolDataRequestSubValue is the lower 32-bit value of the offset within a log page from which to start returning data. * ProtocolDataRequestSubValue2 is the upper 32-bit value of the offset within a log page from which to start returning data. * ProtocolDataRequestSubValue3 is the log-specific identifier that is required for a particular log page. * ProtocolDataRequestSubValue4 is a STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE structure that allows additional information to be specified when getting the log page. |
NVMeDataTypeFeature Feature data type. |
Remarks
When using IOCTL_STORAGE_QUERY_PROPERTY to retrieve protocol-specific information in the STORAGE_PROTOCOL_DATA_DESCRIPTOR, configure the STORAGE_PROPERTY_QUERY structure as follows:
Allocate a buffer that can contains both a STORAGE_PROPERTY_QUERY and a STORAGE_PROTOCOL_SPECIFIC_DATA structure.
Set the PropertyID field to StorageAdapterProtocolSpecificProperty or StorageDeviceProtocolSpecificProperty for a controller or device/namespace request, respectively.
Set the QueryType field to PropertyStandardQuery.
Fill the STORAGE_PROTOCOL_SPECIFIC_DATA structure with the desired values. The start of the STORAGE_PROTOCOL_SPECIFIC_DATA is the AdditionalParameters field of STORAGE_PROPERTY_QUERY.
To specify a type of NVMe protocol-specific information, configure the STORAGE_PROTOCOL_SPECIFIC_DATA structure as follows:
Set the ProtocolType field to ProtocolTypeNVMe.
Set the DataType field to an enumeration value defined by STORAGE_PROTOCOL_NVME_DATA_TYPE:
- Use NVMeDataTypeIdentify to get Identify Controller data or Identify Namespace data.
- Use NVMeDataTypeLogPage to get log pages (including SMART/health data).
- Use NVMeDataTypeFeature to get features of the NVMe drive.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10 |
Minimum supported server | Windows Server 2016 |
Header | ntddstor.h (include Ntddstor.h) |
See also
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for