mirror of https://github.com/tongzx/nt5src
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.
226 lines
4.7 KiB
226 lines
4.7 KiB
//
|
|
// Wmi internal classes
|
|
//
|
|
class WMIEvent : __ExtrinsicEvent
|
|
{
|
|
};
|
|
|
|
//
|
|
// Embedded class that describes a multi-path drive.
|
|
//
|
|
[WMI,
|
|
guid("{cb9d55b2-d833-4a4c-8caa-4aee3f240e9a}")]
|
|
class MPIO_DRIVE_INFO {
|
|
//
|
|
// Number of Paths to the real device.
|
|
//
|
|
[WmiDataId(1)] uint32 NumberPaths;
|
|
//
|
|
// The MPIODisk(N).
|
|
//
|
|
[WmiDataId(2), MaxLen(63)] string Name;
|
|
//
|
|
// The real device's serial number.
|
|
//
|
|
[WmiDataId(3), MaxLen(63)] string SerialNumber;
|
|
//
|
|
// Friendly name of the DSM controlling the device.
|
|
//
|
|
[WmiDataId(4), MaxLen(63)] string DsmName;
|
|
};
|
|
|
|
|
|
//
|
|
// Top-level view of disk topology.
|
|
//
|
|
[WMI,
|
|
Dynamic,
|
|
Provider("WmiProv"),
|
|
Description("Multi-Path Device List"),
|
|
Locale("MS\\0x409"),
|
|
guid("{9f9765ed-c3a0-451f-86c1-470a1ddd3217}")]
|
|
class MPIO_DISK_INFO
|
|
{
|
|
[key, read]
|
|
string InstanceName;
|
|
[read] boolean Active;
|
|
|
|
//
|
|
// The Number of mulit-path disk pdos that have been
|
|
// created.
|
|
//
|
|
[WmiDataId(1),
|
|
read,
|
|
Description("Number of Multi-Path Drives.")
|
|
] uint32 NumberDrives;
|
|
|
|
//
|
|
// Variable-length array of DRIVE_INFO structures.
|
|
// NOTE: Each entry will be ULONG aligned. App. writers
|
|
// take note when iterating through the array.
|
|
//
|
|
[WmiDataId(2),
|
|
read,
|
|
Description("Multi-Path Drive Info Array."),
|
|
WmiSizeIs("NumberDrives")
|
|
] MPIO_DRIVE_INFO DriveInfo[];
|
|
};
|
|
|
|
//
|
|
// Path Information.
|
|
//
|
|
[WMI,
|
|
guid("{b87c0fec-88b7-451d-a378-387ba61aeb89}")]
|
|
class MPIO_ADAPTER_INFORMATION {
|
|
|
|
//
|
|
// Path ID. The PDO_INFORMATION class includes
|
|
// it's pathId. These values can be used to find
|
|
// which devices are on which path.
|
|
//
|
|
[WmiDataId(1)] uint64 PathId;
|
|
|
|
//
|
|
// Adapter Location.
|
|
//
|
|
[WmiDataId(2)] uint8 BusNumber;
|
|
[WmiDataId(3)] uint8 DeviceNumber;
|
|
[WmiDataId(4)] uint8 FunctionNumber;
|
|
[WmiDataId(5)] uint8 Pad;
|
|
|
|
//
|
|
// Adapter Name.
|
|
//
|
|
[WmiDataId(6), MaxLen(63)] string AdapterName;
|
|
};
|
|
|
|
[Dynamic,
|
|
Provider("WmiProv"),
|
|
WMI,
|
|
Description("Multi-Path Path Information."),
|
|
Locale("MS\\0x409"),
|
|
guid("{b3a05997-2077-40a3-bf36-ebd91ff8b254}")]
|
|
class MPIO_PATH_INFORMATION {
|
|
|
|
[key, read]
|
|
string InstanceName;
|
|
[read] boolean Active;
|
|
|
|
[WmiDataId(1),
|
|
read,
|
|
Description("Number of Paths in use")
|
|
] uint32 NumberPaths;
|
|
|
|
//
|
|
// Note that each of these are ULONGLONG aligned.
|
|
//
|
|
[WmiDataId(2),
|
|
read,
|
|
Description("Array of Adapter/Path Information."),
|
|
WmiSizeIs("NumberPaths")
|
|
] MPIO_ADAPTER_INFORMATION PathList[];
|
|
|
|
};
|
|
|
|
[WMI,
|
|
guid("{e732405b-b15e-4872-afd0-0df69dc1bb01}")]
|
|
class MPIO_CONTROLLER_INFO {
|
|
|
|
//
|
|
// Devices behind this controller will have a matching
|
|
// ControllerId in the PDO_INFORMATION class.
|
|
//
|
|
[WmiDataId(1)] uint64 ControllerId;
|
|
[WmiDataId(2)] uint32 ControllerState;
|
|
[WmiDataId(3), MaxLen(63)] string AssociatedDsm;
|
|
};
|
|
|
|
[Dynamic,
|
|
Provider("WmiProv"),
|
|
WMI,
|
|
Description("Array Controller Information."),
|
|
Locale("MS\\0x409"),
|
|
guid("{cf07da2c-e598-45d2-9d78-75c38b8164e8}")]
|
|
class MPIO_CONTROLLER_CONFIGURATION {
|
|
|
|
[key, read]
|
|
string InstanceName;
|
|
[read] boolean Active;
|
|
|
|
[WmiDataId(1),
|
|
read,
|
|
Description("Number of Controllers.")
|
|
] uint32 NumberControllers;
|
|
|
|
//
|
|
// Note that these are ULONGLONG aligned.
|
|
//
|
|
[WmiDataId(2),
|
|
read,
|
|
Description("Array of Controller Information Structures."),
|
|
WmiSizeIs("NumberControllers")
|
|
] MPIO_CONTROLLER_INFO ControllerInfo[];
|
|
|
|
};
|
|
|
|
//
|
|
// Methods go here...TODO
|
|
// Move LUNS
|
|
// Set Path Verification period
|
|
// Set Fail-Back period
|
|
//
|
|
//
|
|
// Used to Log interesting events - F.O., F.B., Config change...
|
|
//
|
|
[Dynamic,
|
|
Provider("WMIProv"),
|
|
WMI,
|
|
Description("MultiPath Event Logger"),
|
|
guid("{2abb031a-71aa-46d4-a53f-eae34051e357}"),
|
|
locale("MS\\0x409")
|
|
]
|
|
|
|
class MPIO_EventEntry : WMIEvent
|
|
{
|
|
[key, read]
|
|
string InstanceName;
|
|
|
|
[key]
|
|
boolean Active;
|
|
|
|
[WmiDataId(1),
|
|
read,
|
|
Description("Time Stamp"),
|
|
WmiTimeStamp
|
|
] uint64 TimeStamp;
|
|
|
|
[WmiDataId(2),
|
|
read,
|
|
Values{"Fatal Error",
|
|
"Error",
|
|
"Warning",
|
|
"Information"},
|
|
|
|
DefineValues{"MPIO_FATAL_ERROR",
|
|
"MPIO_ERROR",
|
|
"MPIO_WARNING",
|
|
"MPIO_INFORMATION"},
|
|
|
|
ValueMap{"1", "2", "3", "4"}
|
|
] uint32 Severity;
|
|
|
|
[WmiDataId(3),
|
|
read,
|
|
MaxLen(63),
|
|
Description("Component")
|
|
] string Component;
|
|
|
|
[WmiDataId(4),
|
|
read,
|
|
MaxLen(63),
|
|
Description("Event Description")
|
|
] string EventDescription;
|
|
};
|
|
|
|
|
|
|