Qualifier Description : ToSubClass Amended; Qualifier Values : ToSubClass Amended; Qualifier DisplayName : ToSubClass Amended; Qualifier BitValues:ToSubClass Amended ; Qualifier Aggregate : ToSubClass ; Qualifier ValueMap : ToSubClass ; Qualifier Aggregation : ToSubClass ; Qualifier ArrayType : ToSubClass ; Qualifier Association : ToInstance ToSubClass DisableOverride ; Qualifier BitMap : ToSubClass ; Qualifier CIM_Key : ToSubClass ; Qualifier CIMTYPE : ToSubClass ; Qualifier Deprecated : ToSubClass ; Qualifier Enumeration : ToSubClass ; Qualifier EnumPrivileges : ToSubClass ; Qualifier ImplementationSource : ToSubClass ; Qualifier Key : ToInstance ToSubClass DisableOverride ; Qualifier Locale : ToInstance ; Qualifier MappingStrings : ToSubClass ; Qualifier Max : ToSubClass ; Qualifier MaxLen : ToSubClass ; Qualifier MethodSource : ToSubClass ; Qualifier Min : ToSubClass ; Qualifier ModelCorrespondence : ToSubClass ; Qualifier Not_Null : ToSubClass ; Qualifier Optional : ToSubClass ; Qualifier Override : Restricted ; Qualifier Privileges : ToSubClass ; Qualifier Propagated : ToSubClass ; Qualifier PropertySources : ToSubClass ; Qualifier Provider : ToInstance ; Qualifier Range : ToSubClass ; Qualifier Read : ToSubClass ; Qualifier Schema : ToInstance ; Qualifier Singleton : ToSubClass ToInstance ; Qualifier SUBTYPE : ToSubClass ; Qualifier Units : ToSubClass ; Qualifier UUID : ToInstance ; Qualifier Volatile : ToSubClass ; Qualifier Weak : ToSubClass ; Qualifier Write : ToSubClass ; Qualifier WritePrivileges : ToSubClass ; #pragma autorecover #pragma classflags(64) #pragma namespace("\\\\.\\root") Instance of __Namespace { Name = "MicrosoftIISv2"; }; #pragma namespace("\\\\.\\ROOT\\MicrosoftIISv2") /* View provider setup */ instance of __Win32Provider as $DataProv { Name = "MS_VIEW_INSTANCE_PROVIDER"; ClsId = "{AA70DDF4-E11C-11D1-ABB0-00C04FD9159E}"; ImpersonationLevel = 1; PerUserInitialization = "True"; HostingModel = "NetworkServiceHost"; }; instance of __InstanceProviderRegistration { Provider = $DataProv; SupportsPut = True; SupportsGet = True; SupportsDelete = True; SupportsEnumeration = True; QuerySupportLevels = {"WQL:UnarySelect"}; }; instance of __MethodProviderRegistration { Provider = $DataProv; }; /**/ /* IIS provider setup */ Instance of __Win32Provider as $IISProv { Name = "IIS__PROVIDER"; ClsId = "{D78F1796-E03B-4a81-AFE0-B3B6B0EEE091}"; Pure = "TRUE"; ImpersonationLevel = 1; PerUserInitialization = "TRUE"; HostingModel = "NetworkServiceHost"; }; Instance of __InstanceProviderRegistration { Provider = $IISProv; SupportsPut = "TRUE"; SupportsGet = "TRUE"; SupportsDelete = "TRUE"; SupportsEnumeration = "TRUE"; QuerySupportLevels = {"WQL:UnarySelect"}; }; Instance of __MethodProviderRegistration { Provider = $IISProv; }; /**/ [Abstract, Description("The CIM_ManagedSystemElement class is the base class for the system element " "hierarchy. Membership criteria: Any distinguishable component of a system is a candidate " "for inclusion in this class.\nExamples: software components, such as files; and devices, " "such as disk drives and controllers, and physical components such as chips and cards."), Locale(1033), UUID("{8502C517-5FBB-11D2-AAC1-006008C78BC7}")] class CIM_ManagedSystemElement { [PropertySources("Caption"), MaxLen(64), Description("The Caption property is a short textual description (one-line string) of the " "object."), read] string Caption; [PropertySources("Description"), Description("The Description property provides a textual description of the object."), read] string Description; [PropertySources("InstallDate"), Description("The InstallDate property is datetime value indicating when the object was " "installed. A lack of a value does not indicate that the object is not installed."), MappingStrings{"MIF.DMTF|ComponentID|001.5"}, read] datetime InstallDate; [PropertySources("Name"), Description("The Name property defines the label by which the object is known. When " "subclassed, the Name property can be overridden to be a Key property."), read] string Name; [PropertySources("Status"), read, MaxLen(10), Description("The Status property is a string indicating the current status of the object. " "Various operational and non-operational statuses can be defined. Operational statuses are " "\"OK\", \"Degraded\" and \"Pred Fail\". \"Pred Fail\" indicates that an element may be " "functioning properly but predicting a failure in the near future. An example is a " "SMART-enabled hard drive. Non-operational statuses can also be specified. These are " "\"Error\", \"Starting\", \"Stopping\" and \"Service\". The latter, \"Service\", could " "apply during mirror-resilvering of a disk, reload of a user permissions list, or other " "administrative work. Not all such work is on-line, yet the managed element is neither " "\"OK\" nor in one of the other states."), ValueMap{"OK", "Error", "Degraded", "Unknown", "Pred Fail", "Starting", "Stopping", "Service"}, Values{"OK", "Error", "Degraded", "Unknown", "Pred Fail", "Starting", "Stopping", "Service"}] string Status; }; [Description("The CIM_LogicalElement class is the base class for all the components of " "the system that represent abstract system components.\nExample: profiles, processes, or " "system capabilities in the form of logical devices."), Abstract, Locale(1033), UUID("{8502C518-5FBB-11D2-AAC1-006008C78BC7}")] class CIM_LogicalElement : CIM_ManagedSystemElement { }; [Abstract, Description ( "A logical element that aggregates an enumerable set of managed system " "elements. The aggregation operates as an functional whole. Within any " "particular subclass of CIM_System, there is a well-defined list of " "CIM_ManagedSystemElement classes whose instances must be aggregated."), Locale (0x409), UUID ("{8502C524-5FBB-11D2-AAC1-006008C78BC7}") ] class CIM_System: CIM_LogicalElement { [CIM_Key, Read, Description ("The CreationClassName property indicates the name " "of the class or the subclass used in the creation of an instance. " "When used with the other key properties of this class, this " "property allows all instances of this class and its subclasses to " "be uniquely identified.")] string CreationClassName ; [Override ("Name") , Description ( "The inherited Name property serves as key of a CIM_System instance in an enterprise " "environment.") , CIM_Key, Read ] string Name ; [Description ( "The CIM_System object and its derivatives are top level objects of CIM. " "They provide the scope for numerous components. Having unique system " "keys is required. A heuristic can be defined in individual system " "subclasses to attempt to always generate the same system name key. The " "NameFormat property identifies how the system name was generated, using " "the subclass' heuristic.") , Read ] string NameFormat ; [Description ( "A string that provides information on how the primary system owner can " "be reached (e.g. phone number, email address, ...).") , Read ] string PrimaryOwnerContact ; [Description ("The name of the primary system owner.") , Read ] string PrimaryOwnerName ; [Description ( "A collection of strings that specify the roles this system plays in " "the IT-environment.") , Read, Write ] string Roles[] ; }; [Description ( "The Setting class represents configuration-related and " "operational parameters for one or more ManagedSystem" "Element(s). A ManagedSystemElement may have multiple Setting " "objects associated with it. The current operational values " "for an Element's parameters are reflected by properties in " "the Element itself or by properties in its associations. " "These properties do not have to be the same values present " "in the Setting object. For example, a modem may have a " "Setting baud rate of 56Kb/sec but be operating " "at 19.2Kb/sec."), Abstract, Locale(1033), UUID("{8502C572-5FBB-11D2-AAC1-006008C78BC7}")] class CIM_Setting { [read, MaxLen(256), Description("The identifier by which the CIM_Setting object is known.")] string SettingID; [read, MaxLen(64), Description("A short textual description (one-line string) of the CIM_Setting object.")] string Caption; [read, Description("A textual description of the CIM_Setting object.")] string Description; }; [Association, Abstract, Aggregation, Description("A generic association to establish 'part of' relationships between managed " "system elements."), Locale(1033), UUID("{8502C573-5FBB-11D2-AAC1-006008C78BC7}")] class CIM_Component { [read, Aggregate, Description("The parent element in the association"), Min(1), Max(1)] CIM_ManagedSystemElement ref GroupComponent; [Description("The child element in the association"), read] CIM_ManagedSystemElement ref PartComponent; }; [Description("A logical element that contains the information necessary to represent and " "manage the functionality provided by a device and/or software feature. A service is a " "general-purpose object to configure and manage the implementation of functionality. It is " "not the functionality itself."), union, ViewSources{"Select * from CIM_Service"}, ViewSpaces{"\\\\.\\root\\cimv2"}, provider("MS_VIEW_INSTANCE_PROVIDER"), Abstract, Locale(1033), UUID("{8502C527-5FBB-11D2-AAC1-006008C78BC7}")] class CIM_Service : CIM_LogicalElement { [PropertySources("Name"), Description("The Name property uniquely identifies the service and provides an indication " "of the functionality that is managed. This functionality is described in more detail in " "the object's Description property."), read, Override("Name"), cim_key] string Name; [PropertySources("CreationClassName"), CIM_Key, read, Description("CreationClassName indicates the name of the class or the subclass used in " "the creation of an instance. When used with the other key properties of this class, this " "property allows all instances of this class and its subclasses to be uniquely " "identified.")] string CreationClassName; [PropertySources("StartMode"), Description("StartMode is a string value indicating whether the service is automatically " "started by a operating system, or only started upon request."), ValueMap{"Automatic", "Manual"}, Values{"Automatic", "Manual"}, read] string StartMode; [PropertySources("Started"), Description("Started is a boolean indicating whether the service has been started (TRUE), " "or stopped (FALSE)."), read] boolean Started; [PropertySources("SystemCreationClassName"), Propagated("CIM_System.CreationClassName"), CIM_Key, Description("The type name of the system that hosts this service"), read] string SystemCreationClassName; [PropertySources("SystemName"), Propagated("CIM_System.Name"), CIM_Key, Description("The name of the system that hosts this service"), read] string SystemName; [Description("The StartService method places the service in the started state. It returns " "an integer value of 0 if the service was successfully started, 1 if the request is not " "supported and any other number to indicate an error.")] uint32 StartService(); [Description("The StopService method places the service in the stopped state. It returns " "an integer value of 0 if the service was successfully stopped, 1 if the request is not " "supported and any other number to indicate an error.")] uint32 StopService(); }; [Description("The Win32_BaseService class represents executable objects that are " "installed in a registry database maintained by the Service Control Manager. The " "executable file associated with a service can be started at boot time by a boot program " "or by the system. It can also be started on-demand by the Service Control Manager. Any " "service or process that is not owned by a specific user, and that provides an interface " "to some functionality supported by the computer system, is a descendent (or member) of " "this class.\nExample: The dynamic host configuration protocol (DHCP) client service on a " "Windows NT/Windows 2000 computer system."), provider("MS_VIEW_INSTANCE_PROVIDER"), Union, ViewSources{"Select * from Win32_BaseService"}, ViewSpaces{"\\\\.\\root\\cimv2"}, Abstract, Locale(1033), UUID("{8502C4C4-5FBB-11D2-AAC1-006008C78BC7}")] class Win32_BaseService : CIM_Service { [PropertySources("Name"), Description("The Name property uniquely identifies the service and provides an indication " "of the functionality that is managed. This functionality is described in more detail in " "the object's Description property."), read, Override("Name"), key] string Name; [PropertySources("StartMode"), Description("The StartMode property indicates the start mode of the Win32 base service. " "\"Boot\" specifies a device driver started by the operating system loader. This value is " "valid only for driver services. \"System\" specifies a device driver started by the " "IoInitSystem function. This value is valid only for driver services. \"Automatic\" " "specifies a service to be started automatically by the service control manager during " "system startup. \"Manual\" specifies a service to be started by the service control " "manager when a process calls the StartService function. \"Disabled\" specifies a service " "that can no longer be started."), ValueMap{"Boot", "System", "Auto", "Manual", "Disabled"}, Values{"Boot", "System", "Auto", "Manual", "Disabled"}, read, Override("StartMode")] string StartMode; [read, PropertySources("AcceptPause"), Description("The AcceptPause property indicates whether the service can be " "paused.\nValues: TRUE or FALSE. A value of TRUE indicates the service can be paused."), MappingStrings{"Win32API|Service " "Structures|SERVICE_STATUS|dwControlsAccepted|SERVICE_ACCEPT_PAUSE_CONTINUE"}] boolean AcceptPause; [read, PropertySources("AcceptStop"), Description("The AcceptStop property indicates whether the service can be " "stopped.\nValues: TRUE or FALSE. A value of TRUE indicates the service can be stopped."), MappingStrings{"Win32API|Service " "Structures|SERVICE_STATUS|dwControlsAccepted|SERVICE_ACCEPT_STOP"}] boolean AcceptStop; [read, PropertySources("DesktopInteract"), Description("The DesktopInteract property indicates whether the service can create or " "communicate with windows on the desktop.\nValues: TRUE or FALSE. A value of TRUE " "indicates the service can create or communicate with windows on the desktop."), MappingStrings{"Win32API|Service " "Structures|QUERY_SERVICE_CONFIG|dwServiceType|SERVICE_INTERACTIVE_PROCESS"}] boolean DesktopInteract; [read, PropertySources("DisplayName"), Description("The DisplayName property indicates the display name of the service. This " "string has a maximum length of 256 characters. The name is case-preserved in the Service " "Control Manager. DisplayName comparisons are always case-insensitive. \nConstraints: " "Accepts the same value as the Name property.\nExample: Atdisk."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpDisplayName"}] string DisplayName; [read, PropertySources("ErrorControl"), Description("If this service fails to start during startup, the ErrorControl property " "specifies the severity of the error. The value indicates the action taken by the startup " "program if failure occurs. All errors are logged by the computer system. The computer " "system does not notify the user of \"Ignore\" errors. With \"Normal\" errorsthe user is " "notified. With \"Severe\" errors, the system is restarted with the last-known-good " "configuration. Finally, on\"Critical\" errors the system attempts to restart with a good " "configuration."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwErrorControl"}, Values{"Ignore", "Normal", "Severe", "Critical", "Unknown"}, ValueMap{"Ignore", "Normal", "Severe", "Critical", "Unknown"}] string ErrorControl; [read, PropertySources("PathName"), Description("The PathName property contains the fully qualified path to the service " "binary file that implements the service.\nExample: " "\\SystemRoot\\System32\\drivers\\afd.sys"), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpBinaryPathName"}] string PathName; [read, PropertySources("ServiceType"), Description("The ServiceType property supplies the type of service provided to calling " "processes."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwServiceType"}, Values{"Kernel Driver", "File System Driver", "Adapter", "Recognizer Driver", "Own " "Process", "Share Process", "Interactive Process"}, ValueMap{"Kernel Driver", "File System Driver", "Adapter", "Recognizer Driver", "Own " "Process", "Share Process", "Interactive Process"}] string ServiceType; [read, PropertySources("StartName"), Description("The StartName property indicates the account name under which the service " "runs. Depending on the service type, the account name may be in the form of " "\"DomainName\\Username\".The service process will be logged using one of these two forms " "when it runs. If the account belongs to the built-in domain, \".\\Username\" can be " "specified. If NULL is specified, the service will be logged on as the LocalSystem " "account. For kernel or system level drivers, StartName contains the driver object name " "(that is, \\FileSystem\\Rdr or \\Driver\\Xns) which the input and output (I/O) system " "uses to load the device driver. Additionally, if NULL is specified, the driver runs with " "a default object name created by the I/O system based on the service name.\nExample: " "DWDOM\\Admin."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpServiceStartName"}] string StartName; [read, PropertySources("State"), Description("The State property indicates the current state of the base service."), MappingStrings{"Win32API|Service Structures|SERVICE_STATUS|dwCurrentState "}, Values{"Stopped", "Start Pending", "Stop Pending", "Running", "Continue Pending", "Pause " "Pending", "Paused", "Unknown"}, ValueMap{"Stopped", "Start Pending", "Stop Pending", "Running", "Continue Pending", "Pause Pending", "Paused", "Unknown"}] string State; [read, PropertySources("TagId"), Description("The TagId property specifies a unique tag value for this service in the " "group. A value of 0 indicates that the service has not been assigned a tag. A tag can be " "used for ordering service startup within a load order group by specifying a tag order " "vector in the registry located at: " "HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\GroupOrderList. Tags are only " "evaluated for Kernel Driver and File System Driver start type services that have \"Boot\" " "or \"System\" start modes."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwTagId"}] uint32 TagId; [read, PropertySources("ExitCode"), Description("The ExitCode property specifies a Win32 error code defining any problems " "encountered in starting or stopping the service. This property is set to " "ERROR_SERVICE_SPECIFIC_ERROR (1066) when the error is unique to the service represented " "by this class, and information about the error is available in the " "ServiceSpecificExitCode member. The service sets this value to NO_ERROR when running, and " "again upon normal termination."), MappingStrings{"Win32API|Service Structures|SERVICE_STATUS|dwWin32ExitCode"}] uint32 ExitCode; [read, PropertySources("ServiceSpecificExitCode"), Description("The ServiceSpecificExitCode property specifies a service-specific error code " "for errors that occur while the service is either starting or stopping. The exit codes " "are defined by the service represented by this class. This value is only set when the " "ExitCodeproperty value is ERROR_SERVICE_SPECIFIC_ERROR, 1066."), MappingStrings{"Win32API|Service Structures|SERVICE_STATUS|dwServiceSpecificExitCode"}] uint32 ServiceSpecificExitCode; [Description("The StartService method attempts to place the service into its startup " "state. It returns one of the following integer values:\n0 - The request was accepted.\n1 " "- The request is not supported.\n2 - The user did not have the necessary access.\n3 - The " "service cannot be stopped because other services that are running are dependent on it.\n4 " "- The requested control code is not valid, or it is unacceptable to the service.\n5 - The " "requested control code cannot be sent to the service because the state of the service " "(Win32_BaseService:State) is equal to 0, 1, or 2.\n6 - The service has not been " "started.\n7 - The service did not respond to the start request in a timely fashion.\n8 - " "Unknown failure when starting the service.\n9 - The directory path to the service " "executable was not found.\n10 - The service is already running.\n11 - The database to add " "a new service is locked.\n12 - A dependency for which this service relies on has been " "removed from the system.\n13 - The service failed to find the service needed from a " "dependent service.\n14 - The service has been disabled from the system.\n15 - The service " "does not have the correct authentication to run on the system.\n16 - This service is " "being removed from the system.\n17 - There is no execution thread for the service.\n18 - " "There are circular dependencies when starting the service.\n19 - There is a service " "running under the same name.\n20 - There are invalid characters in the name of the " "service.\n21 - Invalid parameters have been passed to the service.\n22 - The account " "which this service is to run under is either invalid or lacks the permissions to run the " "service.\n23 - The service exists in the database of services available from the " "system.\n24 - The service is currently paused in the system.\n"), MethodSource("StartService"), Override("StartService"), Implemented, Values{"Success", "Not Supported", "Access Denied", "Dependent Services Running", "Invalid Service Control", "Service Cannot Accept Control", "Service Not Active", "Service Request Timeout", "Unknown Failure", "Path Not Found", "Service Already " "Running", "Service Database Locked", "Service Dependency Deleted", "Service Dependency " "Failure", "Service Disabled", "Service Logon Failed", "Service Marked For Deletion", "Service No Thread", "Status Circular Dependency", "Status Duplicate Name", "Status " "Invalid Name", "Status Invalid Parameter", "Status Invalid Service Account", "Status " "Service Exists", "Service Already Paused"}, MappingStrings{"Win32API|Service Functions|StartService"}] uint32 StartService(); [Description("The StopService method places the service in the stopped state. It returns " "an integer value of 0 if the service was successfully stopped, 1 if the request is not " "supported, and any other number to indicate an error."), MethodSource("StopService"), Override("StopService"), Implemented, MappingStrings{"Win32API|Service " "Functions|ControlService|dwControl|SERVICE_CONTROL_STOP"}] uint32 StopService(); [MethodSource("PauseService"), Implemented, Description("The PauseService method attempts to place the service in the paused state. " "It returns an integer value of 0 if the PauseService request was accepted, 1 if the " "request is not supported, and any other number to indicate an error."), MappingStrings{"Win32API|Service " "Functions|ControlService|dwControl|SERVICE_CONTROL_PAUSE"}] uint32 PauseService(); [MethodSource("ResumeService"), Implemented, Description("The ResumeService method attempts to place the service in the resumed state. " "It returns an integer value of 0 if the ResumeService request was accepted, 1 if the " "request is not supported, and any other number to indicate an error."), MappingStrings{"Win32API|Service " "Functions|ControlService|dwControl|SERVICE_CONTROL_CONTINUE"}] uint32 ResumeService(); [MethodSource("InterrogateService"), Implemented, Description("The InterrogateService method requests that the service update its state to " "the service manager. It returns an integer value of 0 if the InterrogateService request " "was accepted, 1 if the request is not supported, and any other number to indicate an " "error."), MappingStrings{"Win32API|Service " "Functions|ControlService|dwControl|SERVICE_CONTROL_INTERROGATE"}] uint32 InterrogateService(); [MethodSource("UserControlService"), Implemented, Description("The UserControlService method attempts to send a user-defined control code " "to a service. It returns an integer value of 0 if the UserControlService request was " "accepted, 1 if the request is not supported, and any other number to indicate an " "error."), MappingStrings{"Win32API|Service " "Functions|CreateService|dwDesiredAccess|SERVICE_USER_DEFINED_CONTROL"}] uint32 UserControlService( [In, Description("The ControlCode parameter specifies defined values(from 128 to 255) that " "provide control commands specific to a user."), MappingStrings{"Win32API|Service Functions|ControlService|dwControl"}] uint8 ControlCode ); [MethodSource("Create"), Constructor, Implemented, Static, Description("The Create method creates a new service. It returns an integer value of 0 if " "the service was successfully created, 1 if the request is not supported, and any other " "number to indicate an error. The Win32_LoadOrderGroup parameter represents a grouping of " "system services defining execution dependencies. The services must be initiated in the " "order specified by the Load Order Group, as the services are dependent on each other. " "These dependent services require the presence of the antecedent services in order to " "function correctly."), MappingStrings{"Win32API|Service Functions|CreateService"}] uint32 Create( [In, Description("The Name parameter passes the name of the service to install to the Create " "method. The maximum string length is 256 characters. The service control manager database " "preserves the case of the characters, but service name comparisons are always case " "insensitive. Forward-slashes (/) and double back-slashes (\\) are invalid service name " "characters."), MappingStrings{"Win32API|Service Functions|CreateServicelpServiceName"}] string Name, [In, Description("The DisplayName parameter passes the display name of the service. This " "string has a maximum length of 256 characters. The name is case-preserved in the service " "control manager. DisplayName comparisons are always case-insensitive. \nConstraints: " "Accepts the same value as the Name parameter.\nExample: Atdisk."), MappingStrings{"Win32API|Service Functions|CreateServicelpDisplayName"}] string DisplayName, [In, Description("The PathName parameter passes the fully qualified path to the executable " "file that implements the service.\nExample: \\SystemRoot\\System32\\drivers\\afd.sys"), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpBinaryPathName "}] string PathName, [In, Description("The ServiceType parameter passes the type of services provided to processes " "that call them."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwServiceType"}, BitValues{"Kernel Driver", "File System Driver", "Adapter", "Recognizer Driver", "Own " "Process", "Share Process"}, BitMap{"0", "1", "2", "3", "4", "5", "8"}] uint8 ServiceType, [In, Description("If the Create method fails to start, the ErrorControl parameter passes the " "severity of the error. The value indicates the action taken by the startup program if " "failure occurs. All errors are logged by the system. The system does not notify the user " "of \"Ignore\" errors. With \"Normal\" errors the user is notified. With \"Severe\" " "errors, the system is restarted with the last-known-good configuration. Finally, on " "\"Critical\" errors, the system attempts to restart with a good configuration."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwErrorControl"}, Values{"Ignore", "Normal", "Severe", "Critical"}] uint8 ErrorControl, [In, Description("The StartMode parameter passes the start mode of the Win32 base service. " "\"Boot\" specifies a device driver started by the operating system loader. This value is " "valid only for driver services. \"System\" specifies a device driver started by the " "IoInitSystem function. This value is valid only for driver services. \"Automatic\" " "specifies a service to be started automatically by the service control manager during " "system startup. \"Manual\" specifies a service to be started by the service control " "manager when a process calls the StartService function. \"Disabled\" specifies a service " "that can no longer be started."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwStartType"}, Values{"Boot Start", "System Start", "Auto Start", "Demand Start", "Disabled"}, ValueMap{"Boot", "System", "Automatic", "Manual", "Disabled"}] string StartMode, [In, Description("The DesktopInteract parameter passes the value that indicates whether the " "service can create or communicate with windows on the desktop.\nValues: TRUE or FALSE. A " "value of TRUE indicates the service can create or communicate with windows on the " "desktop."), MappingStrings{"Win32API|Service " "Structures|QUERY_SERVICE_CONFIG|dwServiceType|SERVICE_INTERACTIVE_PROCESS"}] boolean DesktopInteract, [In, Description("The StartName parameter passes the account name the service runs under. " "Depending on the service type, the account name may be in the form of " "\"DomainName\\Username\".The service process will be logged using one of these two forms " "when it runs. If the account belongs to the built-in domain, \".\\Username\" can be " "specified. If NULL is specified, the service will be logged on as the LocalSystem " "account. For a kernel or system-level drivers, StartName contains the driver object name " "(that is, \\FileSystem\\Rdr or \\Driver\\Xns) which the input and output (I/O) system " "uses to load the device driver. If NULL is specified, the driver runs with a default " "object name created by the I/O system based on the service name.\nExample: " "DWDOM\\Admin."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpServiceStartName"}] string StartName, [In, Description("The StartPassword parameter passes the password to the account name " "specified by the StartName parameter. Specify NULL if you are not changing the password. " "Specify an empty string if the service has no password."), MappingStrings{"Win32API|Service Functions|CreateService|lpPassword"}] string StartPassword, [In, Description("The LoadOrderGroup parameter passes the group name associated with the new " "service. Load order groups are contained in the registry, and determine the sequence in " "which services are loaded into the operating system. If the pointer is NULL or if it " "points to an empty string, the service does not belong to a group. Dependencies between " "groups should be listed in the LoadOrderGroupDependencies parameter. Services in the " "load-ordering group list are started first, followed by services in groups not in the " "load-ordering group list, followed by services that do not belong to a group. The " "registry has a list of load ordering groups located " "at:\nHKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\ServiceGroupOrder."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpLoadOrderGroup"}] string LoadOrderGroup, [In, Description("The LoadOrderGroupDependencies parameter passes a list of load ordering " "groups that must start before this service. The array is doubly null-terminated. If the " "pointer is NULL or if it points to an empty string, the service has no dependencies. " "Group names must be prefixed by the SC_GROUP_IDENTIFIER (defined in the WINSVC.H file) " "character to differentiate it from a service name, because services and service groups " "share the same name space. Dependency on a group means that this service can run if at " "least one member of the group is running after an attempt to start all members of the " "group."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpDependencies"}] string LoadOrderGroupDependencies[], [In, Description("The ServiceDependencies parameter passes a list containing names of services " "that must start before this service starts. The array is doubly null-terminated. If the " "pointer is NULL, or if it points to an empty string, the service has no dependencies. " "Dependency on a service means that this service can only run if the service it depends on " "is running."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpDependencies"}] string ServiceDependencies[] ); [MethodSource("Change"), Implemented, Description("The Change method modifies a service. It returns an integer value of 0 if " "the service was successfully modified, 1 if the request is not supported and any other " "number to indicate an error. The Win32_LoadOrderGroup parameter represents a grouping of " "system services defining execution dependencies. The services must be initiated in the " "order specified by the Load Order Group as the services are dependent on each other. " "These dependent services require the presence of the antecedent services in order to " "function correctly."), MappingStrings{"Win32API|Service Functions|ChangeServiceConfig"}] uint32 Change( [In, Description("The DisplayName parameter passes the display name of the service. This " "string has a maximum length of 256 characters. The name is case-preserved in the service " "control manager. DisplayName comparisons are always case-insensitive. \nConstraints: " "Accepts the same value as the Name parameter.\nExample: Atdisk"), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpDisplayName"}] string DisplayName, [In, Description("The PathName parameter passes the fully qualified path of the service binary " "file that implements the service.\nExample: \\SystemRoot\\System32\\drivers\\afd.sys"), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpBinaryPathName"}] string PathName, [In, Description("The ServiceType parameter passes the type of service provided to processes " "calling the service."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwServiceType"}, BitValues{"Kernel Driver", "File System Driver", "Adapter", "Recognizer Driver", "Own " "Process", "Share Process"}, BitMap{"0", "1", "2", "3", "4", "5", "8"}] uint8 ServiceType, [In, Description("If this service fails to start during startup, the ErrorControl parameter " "passes the severity of the error. The value indicates the action taken by the startup " "program if failure occurs. All errors are logged by the system. The system does not " "notify the user of \"Ignore\" errors. With \"Normal\" errors the user is notified. With " "\"Severe\" errors, the system is restarted with the last-known-good configuration. " "Finally, on \"Critical\" errors, the system attempts to restart with a good " "configuration."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwErrorControl"}, Values{"Ignore", "Normal", "Severe", "Critical"}] uint8 ErrorControl, [In, Description("The StartMode property indicates the start mode of the Win32 base service. " "\"Boot\" specifies a device driver started by the operating system loader. This value is " "valid only for driver services. \"System\" specifies a device driver started by the " "IoInitSystem function. This value is valid only for driver services. \"Automatic\" " "specifies a service to be started automatically by the service control manager during " "system startup. \"Manual\" specifies a service to be started by the service control " "manager when a process calls the StartService function. \"Disabled\" specifies a service " "that can no longer be started."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwStartType"}, Values{"Boot Start", "System Start", "Auto Start", "Demand Start", "Disabled"}, ValueMap{"Boot", "System", "Automatic", "Manual", "Disabled"}] string StartMode, [In, Description("The DesktopInteract parameter passes the value that indicates whether the " "service can create or communicate with windows on the desktop.\nValues: TRUE or FALSE. A " "value of TRUE indicates the service can create or communicate with windows on the " "desktop."), MappingStrings{"Win32API|Service " "Structures|QUERY_SERVICE_CONFIG|dwServiceType|SERVICE_INTERACTIVE_PROCESS"}] boolean DesktopInteract, [In, Description("The StartName property indicates the account name the service runs under. " "Depending on the service type, the account name may be in the form of " "\"DomainName\\Username\", The service process will be logged using one of these two forms " "when it runs. If the account belongs to the built-in domain, \".\\Username\" can be " "specified. If NULL is specified, the service will be logged on as the LocalSystem " "account. For kernel or system-level drivers, StartName contains the driver object name " "(that is, \\FileSystem\\Rdr or \\Driver\\Xns) that the input and output (I/O) system uses " "to load the device driver. If NULL is specified, the driver runs with a default object " "name created by the I/O system based on the service name.\nExample: DWDOM\\Admin."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpServiceStartName"}] string StartName, [In, Description("The StartPassword parameter passes the password to the account name " "specified by the StartName parameter. Specify NULL if you are not changing the password. " "Specify an empty string if the service has no password."), MappingStrings{"Win32API|Service Functions|CreateService|lpPassword"}] string StartPassword, [In, Description("The LoadOrderGroup parameter passes the group name that it is associated " "with. Load order groups are contained in the system registry, and determine the sequence " "in which services are loaded into the operating system. If the pointer is NULL, or if it " "points to an empty string, the service does not belong to a group. Dependencies between " "groups should be listed in the LoadOrderGroupDependencies parameter. Services in the " "load-ordering group list are started first, followed by services in groups not in the " "load-ordering group list, followed by services that do not belong to a group. The system " "registry has a list of load ordering groups located " "at:\nHKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\ServiceGroupOrder."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpLoadOrderGroup"}] string LoadOrderGroup, [In, Description("The LoadOrderGroupDependencies parameter passes a list of load ordering " "groups that must start before this service starts. The array is doubly null-terminated. " "If the pointer is NULL, or if it points to an empty string, the service has no " "dependencies. Group names must be prefixed by the SC_GROUP_IDENTIFIER (defined in the " "WINSVC.H file) character to differentiate them from service names because services and " "service groups share the same name space. Dependency on a group means that this service " "can run if at least one member of the group is running after an attempt to start all " "members of the group."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpDependencies"}] string LoadOrderGroupDependencies[], [In, Description("The ServiceDependencies parameter passes a list containing names of services " "that must start before this service starts. The array is doubly null-terminated. If the " "pointer is NULL, or if it points to an empty string, the service has no dependencies. " "Dependency on a service means that this service can run only if the service it depends on " "is running."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|lpDependencies"}] string ServiceDependencies[] ); [MethodSource("ChangeStartMode"), Implemented, Description("The ChangeStartMode method modifies the StartMode of a service. It returns " "an integer value of 0 if the service was successfully modified, 1 if the request is not " "supported, and any other number to indicate an error."), MappingStrings{"Service Functions|ChangeServiceConfig|dwStartType"}] uint32 ChangeStartMode( [In, Description("The StartMode parameter passes the start mode of the Win32 base service. " "\"Boot\" specifies a device driver started by the operating system loader. This value is " "valid only for driver services. \"System\" specifies a device driver started by the " "IoInitSystem function. This value is valid only for driver services. \"Automatic\" " "specifies a service to be started automatically by the service control manager during " "system startup. \"Manual\" specifies a service to be started by the service control " "manager when a process calls the StartService function. \"Disabled\" specifies a service " "that can no longer be started."), MappingStrings{"Win32API|Service Structures|QUERY_SERVICE_CONFIG|dwStartType"}, Values{"Boot Start", "System Start", "Auto Start", "Demand Start", "Disabled"}, ValueMap{"Boot", "System", "Automatic", "Manual", "Disabled"}] string StartMode = "Automatic" ); [MethodSource("Delete"), Destructor, Implemented, Description("The Delete method deletes an existing service. It returns an integer value " "of 0 if the service was successfully deleted, 1 if the request is not supported, and any " "other number to indicate an error."), MappingStrings{"Win32API|Service Functions|ChangeServiceConfig|DeleteService"}] uint32 Delete(); }; [Description("The Win32_Service class represents a service on a Win32 computer system. A " "service application conforms to the interface rules of the Service Control Manager (SCM) " "and can be started by a user automatically at system boot through the Services control " "panel utility, or by an application that uses the service functions included in the Win32 " "API. Services can execute even when no user is logged on to the system."), union, ViewSources{"Select * from Win32_Service"}, ViewSpaces{"\\\\.\\root\\cimv2"}, provider("MS_VIEW_INSTANCE_PROVIDER"), dynamic, Locale(1033), UUID("{8502C4D9-5FBB-11D2-AAC1-006008C78BC7}")] class Win32_Service : Win32_BaseService { [read, PropertySources("CheckPoint"), Description("The CheckPoint property specifies a value that the service increments " "periodically to report its progress during a lengthy start, stop, pause, or continue " "operation. For example, the service should increment this value as it completes each step " "of its initialization when it is starting up. The user interface program that invoked the " "operation on the service uses this value to track the progress of the service during a " "lengthy operation. This value is not valid and should be zero when the service does not " "have a start, stop, pause, or continue operation pending."), MappingStrings{"Win32API|Service Structures|SERVICE_STATUS|dwCheckPoint"}] uint32 CheckPoint; [read, PropertySources("WaitHint"), Description("The WaitHint property specifies the estimated time required (in " "milliseconds) for a pending start, stop, pause, or continue operation. After the " "specified amount of time has elapsed, the service makes its next call to the " "SetServiceStatus function with either an incremented CheckPoint value or a change in " "CurrentState. If the amount of time specified by WaitHint passes, and CheckPoint has not " "been incremented, or the CurrentState has not changed, the service control manager or " "service control program assumes that an error has occurred."), MappingStrings{"Win32API|Service Structures|SERVICE_STATUS|dwWaitHint"}] uint32 WaitHint; [read, PropertySources("ProcessId"), Description("The ProcessId property specifies the process identifier of the " "service.\nExample: 324"), MappingStrings{"Win32API|Service Structures|SERVICE_STATUS_PROCESS|dwProcessId"}] uint32 ProcessId; }; [Abstract, Locale ( 0x409 ) , UUID ( "{120BB700-DB2B-11d2-85FC-0000F8102E5F}" ), Description(" The CIM_ApplicationSystem class is used to represent an application " "or a software system that supports a particular business function " "and that can be managed as an independent units. Such a system " "can be decomposed into its functional components using the CIM_SoftwareFeature " "class. The software features for a particular application or " "software system are located using the CIM_ApplicationSystemSoftwareFeature " " association. ")] class CIM_ApplicationSystem: CIM_System { }; [Abstract, Association, Locale(1033), UUID("{8502C577-5FBB-11D2-AAC1-006008C78BC7}"), Description ( "ElementSetting represents the association between Managed" "SystemElements and the Setting class(es) defined for them.") ] class CIM_ElementSetting { [read, Description("The Element reference represents the role of the CIM_ManagedSystemElement " "object of the CIM_ElementSetting association. Role: The associated managed system element " "provides the element that implements the element setting.")] CIM_ManagedSystemElement ref Element; [read, Description("The CIM_Setting reference represents the role of the CIM_Setting object of " "the CIM_ElementSetting association. Role: The associated setting provides the setting " "that implements the element setting.")] CIM_Setting ref Setting; }; [Abstract,Locale(1033)] class IIsStructuredDataClass { }; [Abstract,Locale(1033)] class IIsSetting : CIM_Setting { string Name; }; [Abstract,Locale(1033)] class IIsDirectory : CIM_LogicalElement { [key] string Name; }; [Abstract, Locale(1033)] class IIsUserDefinedLogicalElement : CIM_LogicalElement { }; [Abstract, Locale(1033)] class IIsUserDefinedSetting : IIsSetting { }; [Abstract, Locale(1033)] class IIsUserDefinedElementSetting : CIM_ElementSetting { }; [Abstract, Locale(1033)] class IIsUserDefinedComponent : CIM_Component { }; [dynamic : ToInstance,provider("IIS__PROVIDER"),Locale(1033)] class IIsIPSecuritySetting : IIsSetting { [key] string Name; string IPDeny[]; string IPGrant[]; string DomainDeny[]; string DomainGrant[]; boolean GrantByDefault; }; [dynamic : ToInstance,provider("IIS__PROVIDER"),Locale(1033)] class IIsAdminACL : CIM_LogicalElement { [key] string Name; string Owner; string Group; sint32 ControlFlags; }; [dynamic : ToInstance,provider("IIS__PROVIDER"),Locale(1033)] class IIsACE : CIM_LogicalElement { [key] string Name; [key] string Trustee; sint32 AccessMask; sint32 AceType; sint32 AceFlags; sint32 Flags; string ObjectType; string InheritedObjectType; };