windows-nt/Source/XPSP1/NT/drivers/storage/mpath/control/mpio.mof

227 lines
4.7 KiB
Plaintext
Raw Normal View History

2020-09-26 03:20:57 -05:00
//
// 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;
};