blob: 81e5d69d71ada86442456d814e20ac72938d5e96 [file] [log] [blame]
/**
* 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 */")