403Webshell
Server IP : 209.209.40.120  /  Your IP : 216.73.217.112
Web Server : Microsoft-IIS/10.0
System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586
User : NEWWWW$ ( 0)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/vdslun.idl
//+---------------------------------------------------------------------------
//
//    Microsoft Windows
//    Copyright (C) Microsoft Corporation, 2000
//
//    File: vdslun.idl
//
//    Abstract:
//        Declaration of VDS_LUN_INFORMATION and related structures.
//
//----------------------------------------------------------------------------



///////////////////////////////////////////////////////////////////////////////
//  Imports
//

cpp_quote("#include <winapifamily.h>")

#pragma region Desktop Family
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")

import "oaidl.idl";
import "ocidl.idl";

cpp_quote("#if _MSC_VER >= 1200")
cpp_quote("#pragma warning(push)")
cpp_quote("#pragma warning(disable:4820) /* padding added after data member */")
cpp_quote("#endif")

// Mode page 83 data types corresponding to STORAGE_IDENTIFIER_CODE_SET in ntddstor.h
typedef enum _VDS_STORAGE_IDENTIFIER_CODE_SET
{
    VDSStorageIdCodeSetReserved = 0,
    VDSStorageIdCodeSetBinary   = 1,
    VDSStorageIdCodeSetAscii    = 2,
    VDSStorageIdCodeSetUtf8     = 3
} VDS_STORAGE_IDENTIFIER_CODE_SET;


// Mode page 83 identifier types corresponding to STORAGE_IDENTIFIER_TYPE in ntddstor.h
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;


// Bus types corresponding to STORAGE_BUS_TYPE in ntddstor.h
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,   // Keeping it for Legacy. Applications should migrate to assuming BusTypeVirtual is 0x0E
    VDSBusTypeVirtual		 = 0x0E,
    VDSBusTypeFileBackedVirtual  = 0x0F,
    VDSBusTypeSpaces        = 0x10,
    VDSBusTypeNVMe          = 0x11,
    VDSBusTypeScm           = 0x12,
    VDSBusTypeUfs           = 0x13,

    VDSBusTypeMaxReserved   = 0x7F
} VDS_STORAGE_BUS_TYPE;


// Storage identifier corresponding to STORAGE_IDENTIFIER in 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 is mandatory, returns a list of identifiers.
// Device ID descriptor corresponding to STORAGE_DEVICE_ID_DESCRIPTOR in 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     = 1,
    VDS_IA_FCPH     = 2,
    VDS_IA_FCPH3    = 3,
    VDS_IA_MAC      = 4,
    VDS_IA_SCSI     = 5
} VDS_INTERCONNECT_ADDRESS_TYPE;

// Physical interconnect
//
// This part of VDS was initially defined in the context of
// VSS hardware transportable snapshots. From the VSS hardware
// provider documentation:
// VDS_INTERCONNECT_ADDRESS_TYPE is an enumeration of
// recognized interconnect addressing schemes and includes, but
// is not limited to, FCFS, FCPH, FCP3, MAC (iSCSI), and SCSI.
// By default, it is empty, and it is recommended that this is
// left empty.
//
// The original thinking was that we might need a field to tell
// other (wave your hands here) software how to interpret and/or
// display in a nice way the other fields in VDS_INTERCONNECT.
//
// However, our current clients (Storage Manager for SANs and
// DiskRAID) don�t use it anyway.
// We recommend that you leave this field blank, as it is not
// likely to be used by clients.
//
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).
    // The bus type for mode page 0x83 is currently determined by looking at the
    // registry, which is set by the inf.
    // This results in the bus type being bogus if the driver writer did not set
    // this property correctly.
    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.
    // Mode page 0x80, optional
    [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;

cpp_quote("#if _MSC_VER >= 1200")
cpp_quote("#pragma warning(pop)")
cpp_quote("#endif")

cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")
#pragma endregion

Youez - 2016 - github.com/yon3zu
LinuXploit