/** * 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 ") 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 */")