STORAGE_PROPERTY_ID - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ntddstor.h

typedef enum _STORAGE_PROPERTY_ID {
  StorageDeviceProperty,
  StorageAdapterProperty,
  StorageDeviceIdProperty,
  StorageDeviceUniqueIdProperty,
  StorageDeviceWriteCacheProperty,
  StorageMiniportProperty,
  StorageAccessAlignmentProperty,
  StorageDeviceSeekPenaltyProperty,
  StorageDeviceTrimProperty,
  StorageDeviceWriteAggregationProperty,
  StorageDeviceDeviceTelemetryProperty,
  StorageDeviceLBProvisioningProperty,
  StorageDevicePowerProperty,
  StorageDeviceCopyOffloadProperty,
  StorageDeviceResiliencyProperty,
  StorageDeviceMediumProductType,
  StorageAdapterRpmbProperty,
  StorageAdapterCryptoProperty,
  StorageDeviceTieringProperty,
  StorageDeviceFaultDomainProperty,
  StorageDeviceClusportProperty,
  StorageDeviceDependantDevicesProperty,
  StorageDeviceIoCapabilityProperty,
  StorageAdapterProtocolSpecificProperty,
  StorageDeviceProtocolSpecificProperty,
  StorageAdapterTemperatureProperty,
  StorageDeviceTemperatureProperty,
  StorageAdapterPhysicalTopologyProperty,
  StorageDevicePhysicalTopologyProperty,
  StorageDeviceAttributesProperty,
  StorageDeviceManagementStatus,
  StorageAdapterSerialNumberProperty,
  StorageDeviceLocationProperty,
  StorageDeviceNumaProperty,
  StorageDeviceZonedDeviceProperty,
  StorageDeviceUnsafeShutdownCount,
  StorageDeviceEnduranceProperty,
  StorageDeviceLedStateProperty,
  StorageDeviceSelfEncryptionProperty,
  StorageFruIdProperty,
  StorageStackProperty,
  StorageAdapterProtocolSpecificPropertyEx,
  StorageDeviceProtocolSpecificPropertyEx,
  StorageHwCryptoProperty
} STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;

View the official Windows Driver Kit DDI reference
// winioctl.h

typedef enum _STORAGE_PROPERTY_ID {
  StorageDeviceProperty = 0,
  StorageAdapterProperty,
  StorageDeviceIdProperty,
  StorageDeviceUniqueIdProperty,
  StorageDeviceWriteCacheProperty,
  StorageMiniportProperty,
  StorageAccessAlignmentProperty,
  StorageDeviceSeekPenaltyProperty,
  StorageDeviceTrimProperty,
  StorageDeviceWriteAggregationProperty,
  StorageDeviceDeviceTelemetryProperty,
  StorageDeviceLBProvisioningProperty,
  StorageDevicePowerProperty,
  StorageDeviceCopyOffloadProperty,
  StorageDeviceResiliencyProperty,
  StorageDeviceMediumProductType,
  StorageAdapterRpmbProperty,
  StorageAdapterCryptoProperty,
  StorageDeviceIoCapabilityProperty = 48,
  StorageAdapterProtocolSpecificProperty,
  StorageDeviceProtocolSpecificProperty,
  StorageAdapterTemperatureProperty,
  StorageDeviceTemperatureProperty,
  StorageAdapterPhysicalTopologyProperty,
  StorageDevicePhysicalTopologyProperty,
  StorageDeviceAttributesProperty,
  StorageDeviceManagementStatus,
  StorageAdapterSerialNumberProperty,
  StorageDeviceLocationProperty,
  StorageDeviceNumaProperty,
  StorageDeviceZonedDeviceProperty,
  StorageDeviceUnsafeShutdownCount,
  StorageDeviceEnduranceProperty,
  StorageDeviceLedStateProperty,
  StorageDeviceSelfEncryptionProperty = 64,
  StorageFruIdProperty,
  StorageStackProperty,
  StorageAdapterProtocolSpecificPropertyEx,
  StorageDeviceProtocolSpecificPropertyEx,
  StorageHwCryptoProperty
} STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;

View the official Win32 API reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ne-ntddstor-storage_property_id)

STORAGE_PROPERTY_ID enumeration

Description

STORAGE_PROPERTY_ID enumerates the possible values for the PropertyId member of the STORAGE_PROPERTY_QUERY structure.

Constants

StorageDeviceProperty

The caller is querying for the device descriptor, STORAGE_DEVICE_DESCRIPTOR.

StorageAdapterProperty

The caller is querying for the adapter descriptor, STORAGE_ADAPTER_DESCRIPTOR.

StorageDeviceIdProperty

The caller is querying for the device identifiers provided with the SCSI vital product data pages. Data is returned using the STORAGE_DEVICE_ID_DESCRIPTOR structure.

StorageDeviceUniqueIdProperty

The caller is querying for the unique device identifiers. Data is returned using the STORAGE_DEVICE_UNIQUE_IDENTIFIER structure.

StorageDeviceWriteCacheProperty

The caller is querying for the write cache property. Data is returned using the STORAGE_WRITE_CACHE_PROPERTY structure.

StorageMiniportProperty

Reserved for system use.

StorageAccessAlignmentProperty

The caller is querying for the access alignment descriptor, STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR.

StorageDeviceSeekPenaltyProperty

The caller is querying for the seek penalty descriptor, DEVICE_SEEK_PENALTY_DESCRIPTOR.

StorageDeviceTrimProperty

The caller is querying for the trim descriptor, DEVICE_TRIM_DESCRIPTOR.

StorageDeviceWriteAggregationProperty

Reserved for system use.

StorageDeviceDeviceTelemetryProperty

Reserved for system use.

StorageDeviceLBProvisioningProperty

The caller is querying for the logical block provisioning property. Data is returned using the DEVICE_LB_PROVISIONING_DESCRIPTOR structure.

StorageDevicePowerProperty

The caller is querying for the device power descriptor. Data is returned using the DEVICE_POWER_DESCRIPTOR structure.

StorageDeviceCopyOffloadProperty

The caller is querying for the copy offload parameters property. Data is returned using the DEVICE_COPY_OFFLOAD_DESCRIPTOR structure.

StorageDeviceResiliencyProperty

Reserved for system use.

StorageDeviceMediumProductType

The caller is querying for the medium product type. Data is returned using the STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR structure.

StorageAdapterRpmbProperty

The caller is querying for RPMB support and properties. Data is returned using the STORAGE_RPMB_DESCRIPTOR structure.

StorageAdapterCryptoProperty

Provides information on the storage adapter encryption capabilities. This is currently supported on UFS (Universal Flash Storage) adapters.

StorageDeviceTieringProperty

Reserved for system use.

StorageDeviceFaultDomainProperty

Reserved for system use.

StorageDeviceClusportProperty

Reserved for system use.

StorageDeviceDependantDevicesProperty

Reserved for system use.

StorageDeviceIoCapabilityProperty

The caller is querying for the device I/O capability property. Data is returned using the STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR structure.

StorageAdapterProtocolSpecificProperty

The caller is querying for protocol-specific data from the adapter. Data is returned using the STORAGE_PROTOCOL_DATA_DESCRIPTOR structure. See the Remarks for more info.

StorageDeviceProtocolSpecificProperty

The caller is querying for protocol-specific data from the device. Data is returned using the STORAGE_PROTOCOL_DATA_DESCRIPTOR structure. See the Remarks for more info.

StorageAdapterTemperatureProperty

The caller is querying temperature data from the adapter. Data is returned using the STORAGE_TEMPERATURE_DATA_DESCRIPTOR structure.

StorageDeviceTemperatureProperty

The caller is querying for temperature data from the device. Data is returned using the STORAGE_TEMPERATURE_DATA_DESCRIPTOR structure.

StorageAdapterPhysicalTopologyProperty

The caller is querying for topology information from the adapter. Data is returned using the STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR structure.

StorageDevicePhysicalTopologyProperty

The caller is querying for topology information from the device. Data is returned using the STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR structure.

StorageDeviceAttributesProperty

Reserved for future use.

StorageDeviceManagementStatus

The caller is querying for health information about the storage device (specifically for the persistent memory stack).

StorageAdapterSerialNumberProperty

The caller is querying for the adapter serial number. Data is returned using the STORAGE_ADAPTER_SERIAL_NUMBER structure.

StorageDeviceLocationProperty

Reserved for system use.

StorageDeviceNumaProperty

The caller is querying for the non-uniform memory access (NUMA) node of the storage device.

StorageDeviceZonedDeviceProperty

Reserved for system use.

StorageDeviceUnsafeShutdownCount

Provides the unsafe shutdown count value used to determine if the device data might have been lost during a power loss event (specifically for the persistent memory stack).

StorageDeviceEnduranceProperty

The caller is querying for how many bytes have been read from or written to a solid-state drive (SSD). This property is currently supported only for Non-Volatile Memory Express (NVMe) devices that implement a certain NVMe feature.

StorageDeviceLedStateProperty

The caller is querying for the LED state of the device. Data is returned using the STORAGE_DEVICE_LED_STATE_DESCRIPTOR structure. This property is currently supported only for certain NVMe devices. Supported in Windows Server 2022 and later.

StorageDeviceSelfEncryptionProperty

The caller is querying to determine whether the device supports self encryption. Data is returned using the STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY structure. Supported in Windows Server 2022 and later.

StorageFruIdProperty

The caller is querying for the ID of a fault replacement unit (FRU). Data is returned using the STORAGE_FRU_ID_DESCRIPTOR structure. Supported in Windows Server 2022 and later.

StorageStackProperty

The caller is querying for the type of the storage stack, such as SCSI, NVMe, and so on. Data is returned using the STORAGE_STACK_DESCRIPTOR structure.

StorageAdapterProtocolSpecificPropertyEx

The caller is querying for protocol-specific data from the adapter. Data is returned using the STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT structure. See the Remarks for more info.

StorageDeviceProtocolSpecificPropertyEx

The caller is querying for protocol-specific data from the device. Data is returned using the STORAGE_PROTOCOL_DATA_DESCRIPTOR_EXT structure. See the Remarks for more info.

Remarks

The STORAGE_PROPERTY_QUERY structure is passed as input to an IOCTL_STORAGE_QUERY_PROPERTY request to retrieve the properties of a storage device or adapter.

The optional output buffer returned from an IOCTL_STORAGE_QUERY_PROPERTY control code request can be one of several structures, depending on the value of the PropertyId member of the STORAGE_PROPERTY_QUERY structure. If the QueryType member of the STORAGE_PROPERTY_QUERY is set to PropertyExistsQuery, then no structure is returned.

See also


Win32 API reference (ne-winioctl-storage_property_id)

STORAGE_PROPERTY_ID enumeration

Description

Enumerates the possible values of the PropertyId member of the STORAGE_PROPERTY_QUERY structure passed as input to the IOCTL_STORAGE_QUERY_PROPERTY request to retrieve the properties of a storage device or adapter.

Constants

StorageDeviceProperty:0

Indicates that the caller is querying for the device descriptor, STORAGE_DEVICE_DESCRIPTOR.

StorageAdapterProperty

Indicates that the caller is querying for the adapter descriptor, STORAGE_ADAPTER_DESCRIPTOR.

StorageDeviceIdProperty

Indicates that the caller is querying for the device identifiers provided with the SCSI vital product data pages. Data is returned using the STORAGE_DEVICE_ID_DESCRIPTOR structure.

StorageDeviceUniqueIdProperty

Intended for driver usage. Indicates that the caller is querying for the unique device identifiers. Data is returned using the STORAGE_DEVICE_UNIQUE_IDENTIFIER structure (see the storduid.h header in the DDK).

Windows Server 2003 and Windows XP: This value is not supported before Windows Vista and Windows Server 2008.

StorageDeviceWriteCacheProperty

Indicates that the caller is querying for the write cache property. Data is returned using the STORAGE_WRITE_CACHE_PROPERTY structure.

Windows Server 2003 and Windows XP: This value is not supported before Windows Vista and Windows Server 2008.

StorageMiniportProperty

Reserved for system use.

StorageAccessAlignmentProperty

Indicates that the caller is querying for the access alignment descriptor, STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR.

Windows Server 2003 and Windows XP: This value is not supported before Windows Vista and Windows Server 2008.

StorageDeviceSeekPenaltyProperty

Indicates that the caller is querying for the seek penalty descriptor, DEVICE_SEEK_PENALTY_DESCRIPTOR.

Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: This value is not supported before Windows 7 and Windows Server 2008 R2.

StorageDeviceTrimProperty

Indicates that the caller is querying for the trim descriptor, DEVICE_TRIM_DESCRIPTOR.

Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: This value is not supported before Windows 7 and Windows Server 2008 R2.

StorageDeviceWriteAggregationProperty

Reserved for system use.

StorageDeviceDeviceTelemetryProperty

Reserved for system use.

StorageDeviceLBProvisioningProperty

Indicates that the caller is querying for the logical block provisioning property. Data is returned using the DEVICE_LB_PROVISIONING_DESCRIPTOR structure.

Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: This value is not supported before Windows 8 and Windows Server 2012.

StorageDevicePowerProperty

Indicates that the caller is querying for the device power descriptor. Data is returned using the DEVICE_POWER_DESCRIPTOR structure.

Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: This value is not supported before Windows 8 and Windows Server 2012.

StorageDeviceCopyOffloadProperty

Indicates that the caller is querying for the copy offload parameters property. Data is returned using the DEVICE_COPY_OFFLOAD_DESCRIPTOR structure.

Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP: This value is not supported before Windows 8 and Windows Server 2012.

StorageDeviceResiliencyProperty

Reserved for system use.

StorageDeviceMediumProductType

Indicates that the caller is querying for the medium product type. Data is returned using the STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR structure.

StorageAdapterRpmbProperty

Indicates that the caller is querying for RPMB support and properties. Data is returned using the STORAGE_RPMB_DESCRIPTOR structure.

StorageAdapterCryptoProperty

Provides info on the storage adapter encryption capabilities. This is currently supported on UFS (Universal Flash Storage) adapters.

StorageDeviceIoCapabilityProperty:48

Indicates that the caller is querying for the device I/O capability property. Data is returned using the DEVICE_IO_CAPABILITY_DESCRIPTOR structure.

StorageAdapterProtocolSpecificProperty

Indicates that the caller is querying for protocol-specific data from the adapter. Data is returned using the STORAGE_PROTOCOL_DATA_DESCRIPTOR structure. See the remarks for more info.

StorageDeviceProtocolSpecificProperty

Indicates that the caller is querying for protocol-specific data from the device. Data is returned using the STORAGE_PROTOCOL_DATA_DESCRIPTOR structure. See the remarks for more info.

StorageAdapterTemperatureProperty

Indicates that the caller is querying temperature data from the adapter. Data is returned using the STORAGE_TEMPERATURE_DATA_DESCRIPTOR structure.

StorageDeviceTemperatureProperty

Indicates that the caller is querying for temperature data from the device. Data is returned using the STORAGE_TEMPERATURE_DATA_DESCRIPTOR structure.

StorageAdapterPhysicalTopologyProperty

Indicates that the caller is querying for topology information from the adapter. Data is returned using the STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR structure.

StorageDevicePhysicalTopologyProperty

Indicates that the caller is querying for topology information from the device. Data is returned using the STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR structure.

StorageDeviceAttributesProperty

Reserved for future use.

StorageDeviceManagementStatus

Provides health information about the storage device (specifically for the persistent memory stack).

StorageAdapterSerialNumberProperty

Indicates that the caller is querying for the adapter serial number. Data is returned using the STORAGE_ADAPTER_SERIAL_NUMBER structure.

StorageDeviceLocationProperty

Reserved for system use.

StorageDeviceNumaProperty

Provides the non-uniform memory access (NUMA) node of the storage device.

StorageDeviceZonedDeviceProperty

Reserved for system use.

StorageDeviceUnsafeShutdownCount

Provides the unsafe shutdown count value used to determine if the device data might have been lost during a power loss event (specifically for the persistent memory stack).

StorageDeviceEnduranceProperty

Provides info on how many bytes have been read/write from a solid-state drive (SSD). This property is supported only for Non-Volatile Memory Express (NVMe) devices that implement a certain NVMe feature.

StorageDeviceLedStateProperty

Provides info on the state of the LED associated with a storage device. This is a server-oriented feature.

StorageDeviceSelfEncryptionProperty:64

Reserved for system use.

StorageFruIdProperty

Provides identification info for a storage device that can be physically replaced with a Field Replacement Unit (FRU).

Remarks

The optional output buffer returned through the lpOutBuffer parameter of the IOCTL_STORAGE_QUERY_PROPERTY control code request can be one of several structures depending on the value of the PropertyId member of the STORAGE_PROPERTY_QUERY structure pointed to by the lpInBuffer parameter. If the QueryType member of the STORAGE_PROPERTY_QUERY is set to PropertyExistsQuery, then no structure is returned.

See also