/*++ Copyright (c) 1997-2003 Microsoft Corporation, All Rights Reserved Module Name: nlbwmi.mof Abstract: Managed Object Format file that contains descriptions of the WMI events generated by the NLB driver Author: Karthic N. Sivathanupillai (karthicn) 02-Nov-2001 Revision History: */ /* By default, kernel mode wmi objects are published under the root\wmi namespace. Here are the steps involved : 1. Add this mof file to the list of files to compile in the sources file. This will generate a binary mof file (.bmf). Fyi, a binary mof file can also be generated by running "mofcomp -WMI -b:nlbwmi.bmf nlbwmi.mof". 2. From the binary mof file generated in step #1, Generate a C header file containing structure definitions that correspond to the below event classes. This is done in the makefile.inc file by running "wmimofck -h$(O)\nlbwmimof.h $(O)\nlbwmi.bmf". 3. Include the header file generated in step #2 in the .c files of the driver to create event objects. 4. Also, include the binary mof file generated in step #1 as a resource in version.rc and give it a name. This name is registered with WMI in nlbwmi.c. This is how the event classes show up automagically under the root\wmi namespace. The following additional steps are involved in publishing the events under the root\microsoftnlb namespace : 1. Add the #pragma namespace("\\\\.\\Root\\MicrosoftNLB") line to this mof file 2. Include a subset of definitions from wmi.mof in wlbsprov.mof 3. Mofcomp this file so that the event classes are added to the repository. This is done by including this mof file from wlbsprov.mof - the mof file of NLB wmi provider. */ #pragma namespace("\\\\.\\Root\\MicrosoftNLB") [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("NLB Node Control Event"):Amended, guid("{BB066205-531F-4e55-9E70-F47DFDF5235F}")] class MicrosoftNLB_NodeControlEvent : WmiEvent { [key, read] string InstanceName; [read] boolean Active; /* Start of properties common to all NLB events */ [WmiDataId( 1 ), MaxLen(38), /* 32 bytes for GUID + 2 bytes for enclosing "{" & "}" + 4 bytes for "-" separators */ Description( "Guid of the Network adapter that has NLB bound to it" ):Amended ] string AdapterGuid; [WmiDataId( 2 ), MaxLen(15), Description( "Cluster IP Address of the NLB cluster" ):Amended ] string ClusterIPAddress; [WmiDataId( 3 ), Description( "Host Priority of the host in the NLB cluster" ):Amended ] uint32 HostPriority; /* End of properties common to all NLB events */ [WmiDataId( 4 ), Description( "Event Id" ):Amended, Values { "NLB_EVENT_NODE_STARTED", "NLB_EVENT_NODE_STOPPED", "NLB_EVENT_NODE_DRAINING", "NLB_EVENT_NODE_SUSPENDED", "NLB_EVENT_NODE_RESUMED", "NLB_EVENT_NODE_RELOADED", "NLB_EVENT_NODE_BOUND_AND_STARTED", "NLB_EVENT_NODE_BOUND_AND_STOPPED", "NLB_EVENT_NODE_BOUND_AND_SUSPENDED", "NLB_EVENT_NODE_UNBOUND" } : ToInstance, ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" } : ToInstance ] uint32 Id; }; [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("NLB Port Control Event"):Amended, guid("{490BB97C-7D3B-4777-8216-DC11FCC02705}")] class MicrosoftNLB_PortControlEvent : WmiEvent { [key, read] string InstanceName; [read] boolean Active; /* Start of properties common to all NLB events */ [WmiDataId( 1 ), MaxLen(38), /* 32 bytes for GUID + 2 bytes for enclosing "{" & "}" + 4 bytes for "-" separators */ Description( "Guid of the Network adapter that has NLB bound to it" ):Amended ] string AdapterGuid; [WmiDataId( 2 ), MaxLen(15), Description( "Cluster IP Address of the NLB cluster" ):Amended ] string ClusterIPAddress; [WmiDataId( 3 ), Description( "Host Priority of the host in the NLB cluster" ):Amended ] uint32 HostPriority; /* End of properties common to all NLB events */ [WmiDataId( 4 ), MaxLen(15), Description( "Virtual IP Address of the affected port rule(s)" ):Amended ] string VirtualIPAddress; [WmiDataId( 5 ), Description( "Port number of the affected port rule(s)" ):Amended ] uint32 Port; [WmiDataId( 6 ), Description( "Event Id" ):Amended, Values { "NLB_EVENT_PORT_ENABLED", "NLB_EVENT_PORT_DISABLED", "NLB_EVENT_PORT_DRAINING" } : ToInstance, ValueMap { "1" , "2" , "3" } : ToInstance ] uint32 Id; }; [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("NLB Converging Event"):Amended, guid("{812C7978-7D1B-40dc-89D7-D3C9D36A77B4}")] class MicrosoftNLB_ConvergingEvent : WmiEvent { [key, read] string InstanceName; [read] boolean Active; /* Start of properties common to all NLB events */ [WmiDataId( 1 ), MaxLen(38), /* 32 bytes for GUID + 2 bytes for enclosing "{" & "}" + 4 bytes for "-" separators */ Description( "Guid of the Network adapter that has NLB bound to it" ):Amended ] string AdapterGuid; [WmiDataId( 2 ), MaxLen(15), Description( "Cluster IP Address of the NLB cluster" ):Amended ] string ClusterIPAddress; [WmiDataId( 3 ), Description( "Host Priority of the host in the NLB cluster" ):Amended ] uint32 HostPriority; /* End of properties common to all NLB events */ [WmiDataId( 4 ), Description( "Cause for Convergence" ):Amended, Values { "NLB_EVENT_CONVERGING_BAD_CONFIG", "NLB_EVENT_CONVERGING_NEW_MEMBER", "NLB_EVENT_CONVERGING_UNKNOWN", "NLB_EVENT_CONVERGING_DUPLICATE_HOST_ID", "NLB_EVENT_CONVERGING_NUM_RULES", "NLB_EVENT_CONVERGING_MODIFIED_RULES", "NLB_EVENT_CONVERGING_MEMBER_LOST", "NLB_EVENT_CONVERGING_MODIFIED_PARAMS" } : ToInstance, ValueMap { "1", "2", "3", "4", "5", "6", "7", "8" } : ToInstance ] uint32 Cause; [WmiDataId( 5 ), MaxLen(15), Description( "Dedicated IP Address of the host in the NLB cluster that is the cause of convergence" ):Amended ] string InitiatorDedicatedIP; [WmiDataId( 6 ), Description( "Host Priority of the host in the NLB cluster that is the cause of convergence" ):Amended ] uint32 InitiatorHostPriority; }; [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("NLB Converged Event"):Amended, guid("{7131AA4D-F5D0-4d5d-A232-49785088F74E}")] class MicrosoftNLB_ConvergedEvent : WmiEvent { [key, read] string InstanceName; [read] boolean Active; /* Start of properties common to all NLB events */ [WmiDataId( 1 ), MaxLen(38), /* 32 bytes for GUID + 2 bytes for enclosing "{" & "}" + 4 bytes for "-" separators */ Description( "Guid of the Network adapter that has NLB bound to it" ):Amended ] string AdapterGuid; [WmiDataId( 2 ), MaxLen(15), Description( "Cluster IP Address of the NLB cluster" ):Amended ] string ClusterIPAddress; [WmiDataId( 3 ), Description( "Host Priority of the host in the NLB cluster" ):Amended ] uint32 HostPriority; /* End of properties common to all NLB events */ [WmiDataId( 4 ), Description( "Bit map of the hosts in the NLB cluster" ):Amended ] uint32 HostMap; }; [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("NLB Startup Event"):Amended, guid("{98E0E934-4952-434e-A7BA-F4E891E96A02}")] class MicrosoftNLB_StartupEvent : WmiEvent { [key, read] string InstanceName; [read] boolean Active; }; [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("NLB Shutdown Event"):Amended, guid("{FD868ED2-8613-480d-B33B-8FE0A8796605}")] class MicrosoftNLB_ShutdownEvent : WmiEvent { [key, read] string InstanceName; [read] boolean Active; };