STORAGE_PHYSICAL_DEVICE_DATA structure (winioctl.h)

Describes a physical storage device.

Syntax

typedef struct _STORAGE_PHYSICAL_DEVICE_DATA {
  DWORD                           DeviceId;
  DWORD                           Role;
  STORAGE_COMPONENT_HEALTH_STATUS HealthStatus;
  STORAGE_PROTOCOL_TYPE           CommandProtocol;
  STORAGE_SPEC_VERSION            SpecVersion;
  STORAGE_DEVICE_FORM_FACTOR      FormFactor;
  BYTE                            Vendor[8];
  BYTE                            Model[40];
  BYTE                            FirmwareRevision[16];
  DWORDLONG                       Capacity;
  BYTE                            PhysicalLocation[32];
  DWORD                           Reserved[2];
} STORAGE_PHYSICAL_DEVICE_DATA, *PSTORAGE_PHYSICAL_DEVICE_DATA;

Members

DeviceId

Specifies the device ID.

Role

Value(s) of bitmask from STORAGE_COMPONENT_ROLE_xxx

HealthStatus

A STORAGE_COMPONENT_HEALTH_STATUS enumeration.

CommandProtocol

A STORAGE_PROTOCOL_TYPE enumeration.

SpecVersion

A STORAGE_SPEC_VERSION structure that specifies the supported storage spec version. For example: SBC 3, SATA 3.2, NVMe 1.2

FormFactor

A STORAGE_DEVICE_FORM_FACTOR enumeration.

Vendor[8]

Specifies the device vendor.

Model[40]

Specifies the device model.

FirmwareRevision[16]

Specifies the firmware revision of the device.

Capacity

In units of kilobytes (1024 bytes).

PhysicalLocation[32]

Reserved for future use.

Reserved[2]

Requirements

Requirement Value
Minimum supported client Windows 10 [desktop apps only]
Minimum supported server Windows Server 2016 [desktop apps only]
Header winioctl.h (include Windows.h)