STORAGE_PROPERTY_ID enumeration (winioctl.h)

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.

Syntax

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
} STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;

Constants

 
StorageDeviceProperty
Value: 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
Value: 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
Value: 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.

Requirements

Requirement Value
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Header winioctl.h

See also