vdslun.idl 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. cpp_quote("#include <winapifamily.h>")
  7. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  8. import "oaidl.idl";
  9. import "ocidl.idl";
  10. typedef enum _VDS_STORAGE_IDENTIFIER_CODE_SET {
  11. VDSStorageIdCodeSetReserved = 0,
  12. VDSStorageIdCodeSetBinary = 1,
  13. VDSStorageIdCodeSetAscii = 2,
  14. VDSStorageIdCodeSetUtf8 = 3
  15. } VDS_STORAGE_IDENTIFIER_CODE_SET;
  16. typedef enum _VDS_STORAGE_IDENTIFIER_TYPE {
  17. VDSStorageIdTypeVendorSpecific = 0,
  18. VDSStorageIdTypeVendorId = 1,
  19. VDSStorageIdTypeEUI64 = 2,
  20. VDSStorageIdTypeFCPHName = 3,
  21. VDSStorageIdTypePortRelative = 4,
  22. VDSStorageIdTypeTargetPortGroup = 5,
  23. VDSStorageIdTypeLogicalUnitGroup = 6,
  24. VDSStorageIdTypeMD5LogicalUnitIdentifier = 7,
  25. VDSStorageIdTypeScsiNameString = 8
  26. } VDS_STORAGE_IDENTIFIER_TYPE;
  27. typedef enum _VDS_STORAGE_BUS_TYPE {
  28. VDSBusTypeUnknown = 0x00,
  29. VDSBusTypeScsi = 0x01,
  30. VDSBusTypeAtapi = 0x02,
  31. VDSBusTypeAta = 0x03,
  32. VDSBusType1394 = 0x04,
  33. VDSBusTypeSsa = 0x05,
  34. VDSBusTypeFibre = 0x06,
  35. VDSBusTypeUsb = 0x07,
  36. VDSBusTypeRAID = 0x08,
  37. VDSBusTypeiScsi = 0x09,
  38. VDSBusTypeSas = 0x0A,
  39. VDSBusTypeSata = 0x0B,
  40. VDSBusTypeSd = 0x0C,
  41. VDSBusTypeMmc = 0x0D,
  42. VDSBusTypeMax = 0x0E,
  43. VDSBusTypeVirtual = 0x0E,
  44. VDSBusTypeFileBackedVirtual = 0x0F,
  45. VDSBusTypeSpaces = 0x10,
  46. VDSBusTypeNVMe = 0x11,
  47. VDSBusTypeScm = 0x12,
  48. VDSBusTypeUfs = 0x13,
  49. VDSBusTypeMaxReserved = 0x7F
  50. } VDS_STORAGE_BUS_TYPE;
  51. typedef struct _VDS_STORAGE_IDENTIFIER {
  52. VDS_STORAGE_IDENTIFIER_CODE_SET m_CodeSet;
  53. VDS_STORAGE_IDENTIFIER_TYPE m_Type;
  54. ULONG m_cbIdentifier;
  55. [size_is(m_cbIdentifier)] BYTE *m_rgbIdentifier;
  56. } VDS_STORAGE_IDENTIFIER;
  57. typedef struct _VDS_STORAGE_DEVICE_ID_DESCRIPTOR {
  58. ULONG m_version;
  59. ULONG m_cIdentifiers;
  60. [size_is(m_cIdentifiers)] VDS_STORAGE_IDENTIFIER *m_rgIdentifiers;
  61. } VDS_STORAGE_DEVICE_ID_DESCRIPTOR;
  62. typedef enum _VDS_INTERCONNECT_ADDRESS_TYPE {
  63. VDS_IA_UNKNOWN = 0,
  64. VDS_IA_FCFS = 1,
  65. VDS_IA_FCPH = 2,
  66. VDS_IA_FCPH3 = 3,
  67. VDS_IA_MAC = 4,
  68. VDS_IA_SCSI = 5
  69. } VDS_INTERCONNECT_ADDRESS_TYPE;
  70. typedef struct _VDS_INTERCONNECT {
  71. VDS_INTERCONNECT_ADDRESS_TYPE m_addressType;
  72. ULONG m_cbPort;
  73. [size_is(m_cbPort)] BYTE *m_pbPort;
  74. ULONG m_cbAddress;
  75. [size_is(m_cbAddress)] BYTE *m_pbAddress;
  76. } VDS_INTERCONNECT;
  77. typedef struct _VDS_LUN_INFORMATION {
  78. ULONG m_version;
  79. BYTE m_DeviceType;
  80. BYTE m_DeviceTypeModifier;
  81. WINBOOL m_bCommandQueueing;
  82. VDS_STORAGE_BUS_TYPE m_BusType;
  83. [string] char *m_szVendorId;
  84. [string] char *m_szProductId;
  85. [string] char *m_szProductRevision;
  86. [string] char *m_szSerialNumber;
  87. GUID m_diskSignature;
  88. VDS_STORAGE_DEVICE_ID_DESCRIPTOR m_deviceIdDescriptor;
  89. ULONG m_cInterconnects;
  90. [size_is(m_cInterconnects)] VDS_INTERCONNECT *m_rgInterconnects;
  91. } VDS_LUN_INFORMATION;
  92. const ULONG VER_VDS_LUN_INFORMATION = 1;
  93. cpp_quote("#endif /* WINAPI_PARTITION_DESKTOP */")