| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| |
| cpp_quote("#include <winapifamily.h>") |
| cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") |
| |
| import "oaidl.idl"; |
| import "ocidl.idl"; |
| |
| typedef enum _VDS_STORAGE_IDENTIFIER_CODE_SET { |
| VDSStorageIdCodeSetReserved = 0, |
| VDSStorageIdCodeSetBinary = 1, |
| VDSStorageIdCodeSetAscii = 2, |
| VDSStorageIdCodeSetUtf8 = 3 |
| } VDS_STORAGE_IDENTIFIER_CODE_SET; |
| |
| typedef enum _VDS_STORAGE_IDENTIFIER_TYPE { |
| VDSStorageIdTypeVendorSpecific = 0, |
| VDSStorageIdTypeVendorId = 1, |
| VDSStorageIdTypeEUI64 = 2, |
| VDSStorageIdTypeFCPHName = 3, |
| VDSStorageIdTypePortRelative = 4, |
| VDSStorageIdTypeTargetPortGroup = 5, |
| VDSStorageIdTypeLogicalUnitGroup = 6, |
| VDSStorageIdTypeMD5LogicalUnitIdentifier = 7, |
| VDSStorageIdTypeScsiNameString = 8 |
| } VDS_STORAGE_IDENTIFIER_TYPE; |
| |
| typedef enum _VDS_STORAGE_BUS_TYPE { |
| VDSBusTypeUnknown = 0x00, |
| VDSBusTypeScsi = 0x01, |
| VDSBusTypeAtapi = 0x02, |
| VDSBusTypeAta = 0x03, |
| VDSBusType1394 = 0x04, |
| VDSBusTypeSsa = 0x05, |
| VDSBusTypeFibre = 0x06, |
| VDSBusTypeUsb = 0x07, |
| VDSBusTypeRAID = 0x08, |
| VDSBusTypeiScsi = 0x09, |
| VDSBusTypeSas = 0x0A, |
| VDSBusTypeSata = 0x0B, |
| VDSBusTypeSd = 0x0C, |
| VDSBusTypeMmc = 0x0D, |
| VDSBusTypeMax = 0x0E, |
| VDSBusTypeVirtual = 0x0E, |
| VDSBusTypeFileBackedVirtual = 0x0F, |
| VDSBusTypeSpaces = 0x10, |
| VDSBusTypeNVMe = 0x11, |
| VDSBusTypeScm = 0x12, |
| VDSBusTypeUfs = 0x13, |
| VDSBusTypeMaxReserved = 0x7F |
| } VDS_STORAGE_BUS_TYPE; |
| |
| typedef struct _VDS_STORAGE_IDENTIFIER { |
| VDS_STORAGE_IDENTIFIER_CODE_SET m_CodeSet; |
| VDS_STORAGE_IDENTIFIER_TYPE m_Type; |
| ULONG m_cbIdentifier; |
| [size_is(m_cbIdentifier)] BYTE *m_rgbIdentifier; |
| } VDS_STORAGE_IDENTIFIER; |
| |
| typedef struct _VDS_STORAGE_DEVICE_ID_DESCRIPTOR { |
| ULONG m_version; |
| ULONG m_cIdentifiers; |
| [size_is(m_cIdentifiers)] VDS_STORAGE_IDENTIFIER *m_rgIdentifiers; |
| } VDS_STORAGE_DEVICE_ID_DESCRIPTOR; |
| |
| typedef enum _VDS_INTERCONNECT_ADDRESS_TYPE { |
| VDS_IA_UNKNOWN = 0, |
| VDS_IA_FCFS = 1, |
| VDS_IA_FCPH = 2, |
| VDS_IA_FCPH3 = 3, |
| VDS_IA_MAC = 4, |
| VDS_IA_SCSI = 5 |
| } VDS_INTERCONNECT_ADDRESS_TYPE; |
| |
| typedef struct _VDS_INTERCONNECT { |
| VDS_INTERCONNECT_ADDRESS_TYPE m_addressType; |
| ULONG m_cbPort; |
| [size_is(m_cbPort)] BYTE *m_pbPort; |
| ULONG m_cbAddress; |
| [size_is(m_cbAddress)] BYTE *m_pbAddress; |
| } VDS_INTERCONNECT; |
| |
| typedef struct _VDS_LUN_INFORMATION { |
| ULONG m_version; |
| BYTE m_DeviceType; |
| BYTE m_DeviceTypeModifier; |
| WINBOOL m_bCommandQueueing; |
| VDS_STORAGE_BUS_TYPE m_BusType; |
| [string] char *m_szVendorId; |
| [string] char *m_szProductId; |
| [string] char *m_szProductRevision; |
| [string] char *m_szSerialNumber; |
| GUID m_diskSignature; |
| VDS_STORAGE_DEVICE_ID_DESCRIPTOR m_deviceIdDescriptor; |
| ULONG m_cInterconnects; |
| [size_is(m_cInterconnects)] VDS_INTERCONNECT *m_rgInterconnects; |
| } VDS_LUN_INFORMATION; |
| |
| const ULONG VER_VDS_LUN_INFORMATION = 1; |
| |
| cpp_quote("#endif /* WINAPI_PARTITION_DESKTOP */") |