Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2000-2001 Microsoft Corporation //
/////////////////////////////////////////////////////////////////////////////// // Imports //
import "oaidl.idl"; import "ocidl.idl";
// mode page 83 data types from ntddstor.h typedef enum _VDS_STORAGE_IDENTIFIER_CODE_SET { VDSStorageIdCodeSetReserved = 0, VDSStorageIdCodeSetBinary = 1, VDSStorageIdCodeSetAscii = 2 } VDS_STORAGE_IDENTIFIER_CODE_SET;
// mode page 83 identifier types from ntddstor.h typedef enum _VDS_STORAGE_IDENTIFIER_TYPE { VDSStorageIdTypeVendorSpecific = 0, VDSStorageIdTypeVendorId = 1, VDSStorageIdTypeEUI64 = 2, VDSStorageIdTypeFCPHName = 3 } VDS_STORAGE_IDENTIFIER_TYPE;
// bus types from ntddstor.h typedef enum _VDS_STORAGE_BUS_TYPE { VDSBusTypeUnknown = 0x00, VDSBusTypeScsi, VDSBusTypeAtapi, VDSBusTypeAta, VDSBusType1394, VDSBusTypeSsa, VDSBusTypeFibre, VDSBusTypeUsb, VDSBusTypeRAID, VDSBusTypeMaxReserved = 0x7F } VDS_STORAGE_BUS_TYPE;
// midlized STORAGE_IDENTIFIER from ntddstor.h typedef struct _VDS_STORAGE_IDENTIFIER { // whether ascii or binary data VDS_STORAGE_IDENTIFIER_CODE_SET m_CodeSet;
// type of identifier VDS_STORAGE_IDENTIFIER_TYPE m_Type;
// length of identifier in bytes ULONG m_cbIdentifier;
// actual identintifier [size_is(m_cbIdentifier)] BYTE *m_rgbIdentifier; } VDS_STORAGE_IDENTIFIER;
// mode page 83 (STORAGE_DEVICE_ID_DESCRIPTOR from ntddstor.h) typedef struct _VDS_STORAGE_DEVICE_ID_DESCRIPTOR { // version of structure ULONG m_version;
// number of identifiers ULONG m_cIdentifiers;
[size_is(m_cIdentifiers)] VDS_STORAGE_IDENTIFIER *m_rgIdentifiers; } VDS_STORAGE_DEVICE_ID_DESCRIPTOR;
// interconnect address types typedef enum _VDS_INTERCONNECT_ADDRESS_TYPE { VDS_IA_UNKNOWN = 0, VDS_IA_FCFS, VDS_IA_FCPH, VDS_IA_FCPH3, VDS_IA_MAC, VDS_IA_SCSI } VDS_INTERCONNECT_ADDRESS_TYPE;
typedef struct _VDS_INTERCONNECT { // address type VDS_INTERCONNECT_ADDRESS_TYPE m_addressType;
// port that address refers to ULONG m_cbPort;
// actual address of port [size_is(m_cbPort)] BYTE *m_pbPort;
// size of address ULONG m_cbAddress;
// address relative to the port [size_is(m_cbAddress)] BYTE *m_pbAddress; } VDS_INTERCONNECT;
// information about a lun. Includes STORAGE_DEVICE_DESCRIPTOR // (from ntddstor.h) STORAGE_DEVICE_ID_DESCRIPTOR, interconnect address type, // and interconnect address. typedef struct _VDS_LUN_INFORMATION { // version of structure ULONG m_version;
// The SCSI-2 device type BYTE m_DeviceType;
// The SCSI-2 device type modifier (if any) - this may be zero BYTE m_DeviceTypeModifier;
// Flag indicating whether the device can support mulitple outstanding // commands. The actual synchronization in this case is the responsibility // of the port driver. BOOL m_bCommandQueueing;
// Contains the bus type (as defined above) of the device. It should be // used to interpret the raw device properties at the end of this structure // (if any) VDS_STORAGE_BUS_TYPE m_BusType;
// vendor id string. For devices with no such ID this will be zero [string] char *m_szVendorId;
// device's product id string. For devices with no such ID this will be zero [string] char *m_szProductId;
// zero-terminated ascii string containing the device's // product revision string. For devices with no such string this will be // zero [string] char *m_szProductRevision;
// zero-terminated ascii string containing the device's // serial number. For devices with no serial number this will be zero [string] char *m_szSerialNumber;
// disk signature GUID m_diskSignature;
// device id descriptor VDS_STORAGE_DEVICE_ID_DESCRIPTOR m_deviceIdDescriptor;
// number of interconnects ULONG m_cInterconnects;
// array of interconnects [size_is(m_cInterconnects)] VDS_INTERCONNECT *m_rgInterconnects; } VDS_LUN_INFORMATION;
const ULONG VER_VDS_LUN_INFORMATION = 1;
|