// Copyright (c) 1997-2003 Microsoft Corporation, All Rights Reserved

#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\root\\cimv2")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\root\\cimv2\\ms_804")

[AMENDMENT, LOCALE(0x0804)] 
class MSFT_WmiSelfEvent : __ExtrinsicEvent
{
};

#pragma deleteinstance("MSFT_WMI_NonCOMEventProvider.Name=\"WMI Self-Instrumentation Event Provider\"",NOFAIL)

#pragma deleteinstance("MSFT_WMI_NonCOMEventProvider.Name=\"ProviderSubSystem\"",NOFAIL)

[Description("The Msft_WmiProvider_OperationEvent event class is the root definition of all WMI provider events.A provider operation is defined as some execution on behalf of a client via WMI that resultsin one or more calls to a provider executable, The properties of this class define the identity of the provider associated with the operation being executed and is uniquely associated with instances of the class Msft_Providers. Each instance of __Win32Provider can have an associated operation and be identified using the properties below. Internally WMI can contain any number of objects that refer to a particular instance of __Win32Provider since it differentiates each object based on whether the provider supports per user or per locale instantiation and also depending on where the provider is being hosted. Currently TransactionIdentifier is always an empty string. ") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_OperationEvent : MSFT_WmiSelfEvent
{
  [Description("The Namespace property indicates the namespace where instance of __Win32Provider is instantiated.") : Amended ToSubclass] String Namespace;
  [Description("The Provider property indicates the Unique Name associated with the instance of __Win32Provider.") : Amended ToSubclass] String Provider;
  [Description("If the provider registration specifies per user initialization, then the User property defines the client principal identity associated with specific instantiation of a provider.") : Amended ToSubclass] String User;
  [Description("If the provider registration specifies per locale initialization, then the Locale property defines the client locale associated with specific instantiation of a provider.") : Amended ToSubclass] String Locale;
  [Description("The TransactionIdentifer property is for internal use, currently always empty.") : Amended ToSubclass] String TransactionIdentifer;
  [Description("The HostingSpecification property currently is not used.") : Amended ToSubclass] Uint32 HostingSpecification;
  [Description("The HostingGroup property currently is not used.") : Amended ToSubclass] String HostingGroup;
};

[Description("The Msft_WmiProvider_OperationEvent_Pre event class contains the operation event generated prior to calling provider implementation.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_OperationEvent_Pre : Msft_WmiProvider_OperationEvent
{
};

[Description("The Msft_WmiProvider_OperationEvent_Post event class contains the operation event generated following completion of provider implementation.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_OperationEvent_Post : Msft_WmiProvider_OperationEvent
{
};

[Description("The Msft_WmiProvider_ComServerLoadOperationEvent event class defines the successful activation of a com server instanceassociated with the provider registration.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_ComServerLoadOperationEvent : Msft_WmiProvider_OperationEvent
{
  [Description("The Clsid property, if applicable, defines the COM CLSID associated with server implementation. Note: decoupled providers do not have an associated COM CLSID.") : Amended ToSubclass] String Clsid;
  [Description("The ServerName property, if applicable, defines the COM server name present within the unnamed value of the CLSID key.") : Amended ToSubclass] String ServerName;
  [Description("The InProcServer property, if applicable, defines whether the server supports inproc32 activation.") : Amended ToSubclass] boolean InProcServer;
  [Description("The LocalServer property, if applicable, defines whether the server supports localserver32 activation.") : Amended ToSubclass] boolean LocalServer;
  [Description("The InProcServerPath property, if applicable, defines the server inproc32 executable  name.") : Amended ToSubclass] String InProcServerPath;
  [Description("The LocalServerPath property, if applicable, defines the server localserver32 executable application name.") : Amended ToSubclass] String LocalServerPath;
};

[Description("The Msft_WmiProvider_ComServerLoadOperationFailureEvent event class defines the unsuccessful activation of a com server instanceassociated with the provider registration.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_ComServerLoadOperationFailureEvent : Msft_WmiProvider_OperationEvent
{
  [Description("The Clsid property, if applicable, defines the COM CLSID associated with server implementation. Note:  decoupled providers do not have an associated COM CLSID.") : Amended ToSubclass] String Clsid;
  [Description("The ServerName property, if applicable, defines the COM server name present within the unnamed value of the CLSID key.") : Amended ToSubclass] String ServerName;
  [Description("The InProcServer property, if applicable, defines whether the server supports inproc32 activation.") : Amended ToSubclass] boolean InProcServer;
  [Description("The LocalServer property, if applicable, defines whether the server supports localserver32 activation.") : Amended ToSubclass] boolean LocalServer;
  [Description("The InProcServerPath property, if applicable, defines the server inproc32 executable  name.") : Amended ToSubclass] String InProcServerPath;
  [Description("The LocalServerPath property, if applicable, defines the server localserver32 executable application name.") : Amended ToSubclass] String LocalServerPath;
  [Description("The ResultCode property, if applicable, defines the result code returned from the COM activation procedure.") : Amended ToSubclass] uint32 ResultCode;
};

[Description("The Msft_WmiProvider_LoadOperationEvent event class defines the successful activation and initialization of the provider cache entry. WMI caches provider registration objects to decrease overallexecution time. The substem will drop cache entries either through the cache ageing process, through loss of RPC connectivity, through user control or due to some change in the provider's registration.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_LoadOperationEvent : Msft_WmiProvider_OperationEvent
{
  [Description("The Clsid property, if applicable, defines the COM CLSID associated with server implementation. Note: decoupled providers do not have an associated COM CLSID.") : Amended ToSubclass] String Clsid;
  [Description("The ServerName property, if applicable, defines the COM server name present within the unnamed value of the CLSID key.") : Amended ToSubclass] String ServerName;
  [Description("The InProcServer property, if applicable, defines whether the server supports inproc32 activation.") : Amended ToSubclass] boolean InProcServer;
  [Description("The LocalServer property, if applicable, defines whether the server supports localserver32 activation.") : Amended ToSubclass] boolean LocalServer;
  [Description("The InProcServerPath property, if applicable, defines the server inproc32 executable  name.") : Amended ToSubclass] String InProcServerPath;
  [Description("The LocalServerPath property, if applicable, defines the server localserver32 executable application name.") : Amended ToSubclass] String LocalServerPath;
  [Description("The ThreadingModel property, if applicable, defines the server threading model, can take one of the following values: \n0 - Apartment \n 1 - Both \n 2 - Free \n 3 - Neutral \n 4 - Unknown") : Amended ToSubclass,Values{"Apartment", "Both", "Free", "Neutral", "Unknown"} : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4"} : Amended ToSubclass] uint32 ThreadingModel;
  [Description("The Synchronisation property, if applicable, defines the server synchronisation model, can take on one of the following values: \n0 - Ignored \n 1 - None \n 2 - Supported \n 3 - Required \n 4 - RequiresNew \n 5 - Unknown") : Amended ToSubclass,Values{"Ignored", "None", "Supported", "Required", "RequiresNew", "Unknown"} : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5"} : Amended ToSubclass] uint32 Synchronisation;
};

[Description("WMI caches provider registration objects to decrease overallexecution time. The substem will drop cache entries either through the cache ageing process, through loss of RPC connectivity, through user control or due to some change in the provider's registration. This event defines the unsuccessful activation and initialization of the provider cache entry.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_LoadOperationFailureEvent : Msft_WmiProvider_OperationEvent
{
  [Description("If applicable, defines the COM CLSID associated with server implementation. Note: decoupled providers do not have an associated COM CLSID.") : Amended ToSubclass] String Clsid;
  [Description("If applicable, defines the COM server name present within the unnamed value of the CLSID key.") : Amended ToSubclass] String ServerName;
  [Description("If applicable, defines whether the server supports inproc32 activation.") : Amended ToSubclass] boolean InProcServer;
  [Description("If applicable, defines whether the server supports localserver32 activation.") : Amended ToSubclass] boolean LocalServer;
  [Description("If applicable, defines the server inproc32 executable  name.") : Amended ToSubclass] String InProcServerPath;
  [Description("If applicable, defines the server localserver32 executable application name.") : Amended ToSubclass] String LocalServerPath;
  [Description("The ThreadingModel property, if applicable, defines the server threading model, can take one of the following values: \n0 - Apartment \n 1 - Both \n 2 - Free \n 3 - Neutral \n 4 - Unknown") : Amended ToSubclass,Values{"Apartment", "Both", "Free", "Neutral", "Unknown"} : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4"} : Amended ToSubclass] uint32 ThreadingModel;
  [Description("The Synchronisation property, if applicable, defines the server synchronisation model, can take on one of the following values: \n0 - Ignored \n 1 - None \n 2 - Supported \n 3 - Required \n 4 - RequiresNew \n 5 - Unknown") : Amended ToSubclass,Values{"Ignored", "None", "Supported", "Required", "RequiresNew", "Unknown"} : Amended ToSubclass,ValueMap{"0", "1", "2", "3", "4", "5"} : Amended ToSubclass] uint32 Synchronisation;
  [Description("The ResultCode property reveals the HRESULT code returned from the loading process.") : Amended ToSubclass] uint32 ResultCode;
};

[Description("The Msft_WmiProvider_InitializationOperationEvent event class defines the successful initialization of the provider server instance. Following activation of the provider server, the WMI will attempt to initialize the instance provider through a number of COM interface method calls. ") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_InitializationOperationEvent : Msft_WmiProvider_OperationEvent
{
};

[Description("The Msft_WmiProvider_InitializationOperationFailureEvent event \t\t\t\tclass defines the unsuccessful initialization of the provider server instance.  Following activation of the provider server, the WMI willattempt to initialize the instance provider through a number of COM interface method calls. This event defines the unsuccessful initialization of the provider server instance.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_InitializationOperationFailureEvent : Msft_WmiProvider_OperationEvent
{
  [Description("The ResultCode property reveals the HRESULT code returned from the initialization process.") : Amended ToSubclass] uint32 ResultCode;
};

[Description("The Msft_WmiProvider_UnLoadOperationEvent event class defines the removal of the provider cache entry. At this point there will be no reference held by WMI onthe COM server instance.  WMI caches provider registration objects to decrease overallexecution time. The substem will drop cache entries either through the cache ageing process, through loss of RPC connectivity, through user control or due to some change in the provider's registration.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_UnLoadOperationEvent : Msft_WmiProvider_OperationEvent
{
};

[Description("The Msft_WmiProvider_GetObjectAsyncEvent_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemServices :: GetObjectAsync. ") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_GetObjectAsyncEvent_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The ObjecPath property holds the path of the object to retrieve.") : Amended ToSubclass] String ObjectPath;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
};

[Description("The Msft_WmiProvider_PutClassAsyncEvent_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemServices :: PutClassAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_PutClassAsyncEvent_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The ClassObject property holds the object containing the class definition.") : Amended ToSubclass] Object ClassObject;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
};

[Description("The Msft_WmiProvider_DeleteClassAsyncEvent_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemServices :: DeleteClassAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_DeleteClassAsyncEvent_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The ClassName property hold the name of the class targeted for deletion.") : Amended ToSubclass] String ClassName;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
};

[Description("The Msft_WmiProvider_CreateClassEnumAsyncEvent_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemServices :: CreateClassEnumAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_CreateClassEnumAsyncEvent_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The SuperclassName property, if not NULL or blank, specifies a superclass name. Only classes that are subclasses of this class are returnedIf NULL or blank, and Flags contains WBEM_FLAG_SHALLOW,only top-level classes, that is, those which have noparent class or superclass, are returned. If it isNULL or blank and Flags is WBEM_FLAG_DEEP, all classes within the namespace are returned.") : Amended ToSubclass] String SuperclassName;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
};

[Description("The Msft_WmiProvider_PutInstanceAsyncEvent_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemServices :: PutInstanceAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_PutInstanceAsyncEvent_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The InstanceObject property contains the object instance to be written.") : Amended ToSubclass] Object InstanceObject;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
};

[Description("The Msft_WmiProvider_DeleteInstanceAsyncEvent_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemServices :: DeleteInstanceAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_DeleteInstanceAsyncEvent_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The ObjectPath property is a string containing the path of instance to be deleted.") : Amended ToSubclass] String ObjectPath;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
};

[Description("The Msft_WmiProvider_CreateInstanceEnumAsyncEvent_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemServices :: CreateInstanceEnumAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_CreateInstanceEnumAsyncEvent_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The ClassName property is a string containing the name of the class for which instances are desired.") : Amended ToSubclass] String ClassName;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
};

[Description("The Msft_WmiProvider_ExecQueryAsyncEvent_Pre class represents an event generated immediately prior to calling the provider's implementation of IWbemServices :: ExecQueryAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_ExecQueryAsyncEvent_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The QueryLanguage property is a string containing one of the query languages supported by Windows Management.") : Amended ToSubclass] String QueryLanguage;
  [Description("The Query property is a string containing the text of the query.") : Amended ToSubclass] String Query;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
};

[Description("The Msft_WmiProvider_ExecMethodAsyncEvent_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemServices :: ExecMethodAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_ExecMethodAsyncEvent_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The ObjectPath property is a string containing the object path of the object for which the method is to be executed.") : Amended ToSubclass] String ObjectPath;
  [Description("The MethodName is a string container the name of the method for the object.") : Amended ToSubclass] String MethodName;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
  [Description("The InputParameters property is Null, if no inbound parameters are required to execute the method. Otherwise, an object that contains the properties acting as inbound parameters for the method execution. The contents of the object are method-specific, and are part of the specification for the provider in question.") : Amended ToSubclass] Object InputParameters;
};

[Description("The Msft_WmiProvider_NewQuery_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemEventProviderQuerySink :: NewQuery.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_NewQuery_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The QueryId property holds the Windows Management-generated identifier for the query. The provider can track this so that during a later cancellation it will know which query was canceled.") : Amended ToSubclass] uint32 QueryId;
  [Description("The QueryLanguage property contains the language of the following query filter. For this version of WMI, it will always be 'WQL'.") : Amended ToSubclass] string QueryLanguage;
  [Description("The Query property is a string containing the event query filter, which was registered by a logical consumer.") : Amended ToSubclass] string Query;
};

[Description("The Msft_WmiProvider_CancelQuery_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemEventProviderQuerySink :: CancelQuery.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_CancelQuery_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The QueryId property holds the Identifier of the query which was canceled. This identifier was originally delivered to the provider by the NewQuery method of this interface.") : Amended ToSubclass] uint32 QueryId;
};

[Description("The Msft_WmiProvider_AccessCheck_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemEventSecurity :: AccessCheck.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_AccessCheck_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The QueryLanguage property contains the language of the following query filter. For this version of WMI, it will always be 'WQL'.") : Amended ToSubclass] string QueryLanguage;
  [Description("The Query property is a string containing the event query filter, which was registered by a logical consumer.") : Amended ToSubclass] string Query;
  [Description("The Sid property holds a Byte Array representing the SID of the client creating the subscription, NULL if subscription is temporary.") : Amended ToSubclass] uint8 Sid[];
};

[Description("The Msft_WmiProvider_ProvideEvents_Pre event class represents an event generated immediately prior to calling the provider's implementation of IWbemEventProvider :: ProvideEvents.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_ProvideEvents_Pre : Msft_WmiProvider_OperationEvent_Pre
{
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] uint32 Flags;
};

[Description("The Msft_WmiProvider_GetObjectAsyncEvent_Post event class representes an event generated immediately following completion of the provider's implementation of IWbemServices :: GetObjectAsync. ") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_GetObjectAsyncEvent_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The ObjectPath property hold the path of the object to retrieve.") : Amended ToSubclass] String ObjectPath;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
  [Description("The ResultCode property holds the HRESULT Status code of operation.") : Amended ToSubclass] Uint32 ResultCode;
  [Description("The ObjectParameter property holds the object defining the extended status passed though provider's IWbemObjectSink :: SetStatus call, possibly NULL.") : Amended ToSubclass] Object ObjectParameter;
  [Description("The StringParameter property is currently always NULL.") : Amended ToSubclass] String StringParameter;
};

[Description("The Msft_WmiProvider_PutClassAsyncEvent_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemServices :: PutClassAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_PutClassAsyncEvent_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The ClassObject property holds the object containing the class definition.") : Amended ToSubclass] Object ClassObject;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
  [Description("The ResultCode property holds the HRESULT Status code of operation.") : Amended ToSubclass] Uint32 ResultCode;
  [Description("The ObjectParameter property holds the object defining the extended status passed though provider's IWbemObjectSink :: SetStatus call, possibly NULL.") : Amended ToSubclass] Object ObjectParameter;
  [Description("The StringParameter property is currently always NULL.") : Amended ToSubclass] String StringParameter;
};

[Description("Msft_WmiProvider_DeleteClassAsyncEvent_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemServices :: DeleteClassAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_DeleteClassAsyncEvent_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The ClassName property holds the name of the class targeted for deletion.") : Amended ToSubclass] String ClassName;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
  [Description("The ResultCode property holds the HRESULT Status code of operation.") : Amended ToSubclass] Uint32 ResultCode;
  [Description("The ObjectParameter property holds the o defining the extended status passed though provider's IWbemObjectSink :: SetStatus call, possibly NULL.") : Amended ToSubclass] Object ObjectParameter;
  [Description("The StringParameter property is currently always NULL.") : Amended ToSubclass] String StringParameter;
};

[Description("The Msft_WmiProvider_CreateClassEnumAsyncEvent_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemServices :: CreateClassEnumAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_CreateClassEnumAsyncEvent_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The SuperclassName property, if not NULL or blank, this parameter specifies a superclass name. Only classes that are subclasses of this class are returnedIf NULL or blank, and Flags contains WBEM_FLAG_SHALLOW,only top-level classes, that is, those which have noparent class or superclass, are returned. If it isNULL or blank and Flags is WBEM_FLAG_DEEP, all classes within the namespace are returned.") : Amended ToSubclass] String SuperclassName;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
  [Description("The ResultCode property holds the HRESULT Status code of operation.") : Amended ToSubclass] Uint32 ResultCode;
  [Description("The ObjectParameter property holds the o defining the extended status passed though provider's IWbemObjectSink :: SetStatus call, possibly NULL.") : Amended ToSubclass] Object ObjectParameter;
  [Description("The StringParameter property is currently always NULL.") : Amended ToSubclass] String StringParameter;
};

[Description("The Msft_WmiProvider_PutInstanceAsyncEvent_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemServices :: PutInstanceAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_PutInstanceAsyncEvent_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The InstanceObject property holds the object instance to be written.") : Amended ToSubclass] Object InstanceObject;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
  [Description("The ResultCode property holds the HRESULT Status code of operation.") : Amended ToSubclass] Uint32 ResultCode;
  [Description("The ObjectParameter property holds the o defining the extended status passed though provider's IWbemObjectSink :: SetStatus call, possibly NULL.") : Amended ToSubclass] Object ObjectParameter;
  [Description("The StringParameter property, for create operations, string containing the path of the instance created during the call.The provider can pass the StringParameter to IWbemObjectSink :: SetStatus indicating the key of the instance just created.") : Amended ToSubclass] String StringParameter;
};

[Description("The Msft_WmiProvider_DeleteInstanceAsyncEvent_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemServices :: DeleteInstanceAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_DeleteInstanceAsyncEvent_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The ObjectPath property holds a string containing path of instance to be deleted.") : Amended ToSubclass] String ObjectPath;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
  [Description("The ResultCode property holds the HRESULT Status code of operation.") : Amended ToSubclass] Uint32 ResultCode;
  [Description("The ObjectParameter property holds the o defining the extended status passed though provider's IWbemObjectSink :: SetStatus call, possibly NULL.") : Amended ToSubclass] Object ObjectParameter;
  [Description("The StringParameter property is currently always NULL.") : Amended ToSubclass] String StringParameter;
};

[Description("The Msft_WmiProvider_CreateInstanceEnumAsyncEvent_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemServices :: CreateInstanceEnumAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_CreateInstanceEnumAsyncEvent_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("String containing the name of the class for which instances are desired.") : Amended ToSubclass] String ClassName;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
  [Description("The ResultCode property holds the HRESULT Status code of operation.") : Amended ToSubclass] Uint32 ResultCode;
  [Description("The ObjectParameter property holds the o defining the extended status passed though provider's IWbemObjectSink :: SetStatus call, possibly NULL.") : Amended ToSubclass] Object ObjectParameter;
  [Description("The StringParameter property is currently always NULL.") : Amended ToSubclass] String StringParameter;
};

[Description("The Msft_WmiProvider_ExecQueryAsyncEvent_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemServices :: ExecQueryAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_ExecQueryAsyncEvent_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The QueryLanguage property holds a string containing one of the query languages supported by Windows Management.") : Amended ToSubclass] String QueryLanguage;
  [Description("The Query property holds a string containing the text of the query.") : Amended ToSubclass] String Query;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
  [Description("The ResultCode property holds the HRESULT Status code of operation.") : Amended ToSubclass] Uint32 ResultCode;
  [Description("The ObjectParameter property holds the o defining the extended status passed though provider's IWbemObjectSink :: SetStatus call, possibly NULL.") : Amended ToSubclass] Object ObjectParameter;
  [Description("The StringParameter property is currently always NULL.") : Amended ToSubclass] String StringParameter;
};

[Description("The Msft_WmiProvider_ExecMethodAsyncEvent_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemServices :: ExecMethodAsync.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_ExecMethodAsyncEvent_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The ObjectPath property holds a string containing the object path of the object for which the method is to be executed.") : Amended ToSubclass] String ObjectPath;
  [Description("The MethodName property holds a string container the name of the method for the object.") : Amended ToSubclass] String MethodName;
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] Uint32 Flags;
  [Description("The InputParameters property is Null, if no inbound parameters are required to execute the method. Otherwise, an object that contains the properties acting as inbound parameters for the method execution. The contents of the object are method-specific, and are part of the specification for the provider in question.") : Amended ToSubclass] Object InputParameters;
  [Description("The ResultCode property holds the HRESULT Status code of operation.") : Amended ToSubclass] Uint32 ResultCode;
  [Description("The ObjectParameter property holds the o defining the extended status passed though provider's IWbemObjectSink :: SetStatus call, possibly NULL.") : Amended ToSubclass] Object ObjectParameter;
  [Description("The StringParameter property is currently always NULL.") : Amended ToSubclass] String StringParameter;
};

[Description("The Msft_WmiProvider_NewQuery_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemEventProviderQuerySink :: NewQuery.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_NewQuery_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The QueryId property holds a Windows Management-generated identifier for the query. The provider can track this so that during a later cancellation it will know which query was canceled.") : Amended ToSubclass] uint32 QueryId;
  [Description("The QueryLanguage property hold the language of the following query filter. For this version of WMI, it will always be 'WQL'.") : Amended ToSubclass] string QueryLanguage;
  [Description("The Query property holds a string containing the event query filter, which was registered by a logical consumer.") : Amended ToSubclass] string Query;
  [Description("The Result property holds the HRESULT Status code of operation.") : Amended ToSubclass] uint32 Result;
};

[Description("The Msft_WmiProvider_CancelQuery_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemEventProviderQuerySink :: CancelQuery.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_CancelQuery_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The QueryId property holds an identifier of the query which was canceled. This identifier was originally delivered to the provider by the NewQuery method of this interface.") : Amended ToSubclass] uint32 QueryId;
  [Description("The Result property holds the HRESULT Status code of operation.") : Amended ToSubclass] uint32 Result;
};

[Description("The Msft_WmiProvider_AccessCheck_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemEventSecurity :: AccessCheck.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_AccessCheck_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The QueryLanguage property holds the language of the following query filter. For this version of WMI, it will always be 'WQL'.") : Amended ToSubclass] string QueryLanguage;
  [Description("The Query property is a string containing the event query filter, which was registered by a logical consumer.") : Amended ToSubclass] string Query;
  [Description("The Sid property is a Byte Array representing the SID of the client creating the subscription, NULL if subscription is temporary.") : Amended ToSubclass] uint8 Sid[];
  [Description("The Result property holds the HRESULT Status code of operation.") : Amended ToSubclass] uint32 Result;
};

[Description("The Msft_WmiProvider_ProvideEvents_Post event class represents an event generated immediately following completion of the provider's implementation of IWbemEventProvider :: ProvideEvents.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_ProvideEvents_Post : Msft_WmiProvider_OperationEvent_Post
{
  [Description("The Flags property contains the flags associated with the call.") : Amended ToSubclass] uint32 Flags;
  [Description("The Result property holds the HRESULT Status code of operation.") : Amended ToSubclass] uint32 Result;
};

[Description("ThMsft_WmiProvider_Counters class exposes approximate internal operation call count information accross all providers.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_WmiProvider_Counters
{
  [Description("The ProviderOperation_GetObjectAsync property indicates the number of calls to IWbemServices :: GetObjectAsync.") : Amended ToSubclass] Uint64 ProviderOperation_GetObjectAsync;
  [Description("The ProviderOperation_PutClassAsync property indicates the number of calls to IWbemServices :: PutClassAsync.") : Amended ToSubclass] Uint64 ProviderOperation_PutClassAsync;
  [Description("The ProviderOperation_DeleteClassAsync property indicates the number of calls to IWbemServices :: DeleteClassAsync.") : Amended ToSubclass] Uint64 ProviderOperation_DeleteClassAsync;
  [Description("The ProviderOperation_CreateClassEnumAsync property indicates the number of calls to IWbemServices :: CreateClassEnumAsync.") : Amended ToSubclass] Uint64 ProviderOperation_CreateClassEnumAsync;
  [Description("The ProviderOperation_PutInstanceAsync property indicates the number of calls to IWbemServices :: PutInstanceAsync.") : Amended ToSubclass] Uint64 ProviderOperation_PutInstanceAsync;
  [Description("The ProviderOperation_DeleteInstanceAsync property indicates the number of calls to IWbemServices :: DeleteInstanceAsync.") : Amended ToSubclass] Uint64 ProviderOperation_DeleteInstanceAsync;
  [Description("The ProviderOperation_CreateInstanceEnumAsync property indicates the number of calls to IWbemServices :: CreateInstanceEnumAsync.") : Amended ToSubclass] Uint64 ProviderOperation_CreateInstanceEnumAsync;
  [Description("The ProviderOperation_ExecQueryAsync property indicates the number of calls to IWbemServices :: ExecQueryAsync.") : Amended ToSubclass] Uint64 ProviderOperation_ExecQueryAsync;
  [Description("The ProviderOperation_ExecMethodAsync property indicates the number of calls to IWbemServices :: ExecMethodAsync.") : Amended ToSubclass] Uint64 ProviderOperation_ExecMethodAsync;
  [Description("The ProviderOperation_QueryInstances property indicates the number of calls to IWbemHiPerfProvider :: QueryInstances.") : Amended ToSubclass] Uint64 ProviderOperation_QueryInstances;
  [Description("The ProviderOperation_CreateRefresher property indicates the number of calls to IWbemHiPerfProvider :: CreateRefresher.") : Amended ToSubclass] Uint64 ProviderOperation_CreateRefresher;
  [Description("The ProviderOperation_CreateRefreshableObject property indicates the number of calls to IWbemHiPerfProvider :: CreateRefreshableObject.") : Amended ToSubclass] Uint64 ProviderOperation_CreateRefreshableObject;
  [Description("The ProviderOperation_StopRefreshing property indicates the number of calls to IWbemHiPerfProvider :: StopRefreshing.") : Amended ToSubclass] Uint64 ProviderOperation_StopRefreshing;
  [Description("The ProviderOperation_CreateRefreshableEnum property indicates the number of calls to IWbemHiPerfProvider :: CreateRefreshableEnum.") : Amended ToSubclass] Uint64 ProviderOperation_CreateRefreshableEnum;
  [Description("The ProviderOperation_GetObjects property indicates the number of calls to IWbemHiPerfProvider :: GetObjects.") : Amended ToSubclass] Uint64 ProviderOperation_GetObjects;
  [Description("The ProviderOperation_GetProperty property indicates the number of calls to IWbemPropertyProvider :: GetProperty.") : Amended ToSubclass] Uint64 ProviderOperation_GetProperty;
  [Description("The ProviderOperation_PutProperty property indicates the number of calls to IWbemPropertyProvider :: PutProperty.") : Amended ToSubclass] Uint64 ProviderOperation_PutProperty;
  [Description("The ProviderOperation_ProvideEvents property indicates the number of calls to IWbemEventProvider :: ProvideEvents.") : Amended ToSubclass] Uint64 ProviderOperation_ProvideEvents;
  [Description("The ProviderOperation_NewQuery property indicates the number of calls to IWbemEventProviderQuerySink :: NewQuery.") : Amended ToSubclass] Uint64 ProviderOperation_NewQuery;
  [Description("The ProviderOperation_CancelQuery property indicates the number of calls to IWbemEventProviderQuerySink :: CancelQuery.") : Amended ToSubclass] Uint64 ProviderOperation_CancelQuery;
  [Description("The ProviderOperation_AccessCheck property indicates the number of calls to IWbemEventProviderSecurity :: AccessCheck.") : Amended ToSubclass] Uint64 ProviderOperation_AccessCheck;
  [Description("The ProviderOperation_SetRegistrationObject ProviderOperation_SetRegistrationObject property is currently not set.") : Amended ToSubclass] Uint64 ProviderOperation_SetRegistrationObject;
  [Description("The ProviderOperation_FindConsumer property indicates the number of calls to IWbemEventConsumerProvider :: FindConsumer.") : Amended ToSubclass] Uint64 ProviderOperation_FindConsumer;
  [Description("The ProviderOperation_ValidateSubscription property indicates the number of calls to IWbemEventConsumerProviderEx :: ValidateSubscription.") : Amended ToSubclass] Uint64 ProviderOperation_ValidateSubscription;
};

[Description("The Msft_Providers class exposes configuration relating to provider instances") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class Msft_Providers
{
  [Key,Description("The Namespace property indicates the Namespace associated with a particular instantiation of a provider instance.") : Amended ToSubclass] String Namespace;
  [Key,Description("If provider is configured for Per User Initialization, then the User property refers to User's particular instantiation of a provider instance.") : Amended ToSubclass] String User;
  [Key,Description("If provider is configured for Per Local Initialization, then the Locale property refers to Locale's particular instantiation of a provider instance.") : Amended ToSubclass] String Locale;
  [Key,Description("The Provider property holds the Provider Name associated with a particular instantiation of a provider instance.The Provider Name is identical to the __Win32provider :: Name property.") : Amended ToSubclass] String Provider;
  [Key,Description("The TransactionIdentifier property is for internal use, currently always {00000000-0000-0000-0000-000000000000}.") : Amended ToSubclass] String TransactionIdentifier;
  [Key,Description("The HostingSpecification property defines the first component of the __Win32provider :: HostingModelproperty. The hosting property is defined to be one of the following value types :-WmiCore - Activate provider in host to the winmgmt service, note this is only supported for OS components.Note, attempts to register providers with WmiCore as HostingModel will fail with WBEM_E_ACCESS_DENIEDWmiCoreOrSelfHost - Activate provider in host to the winmgmt service or as local server,Note this is only supported for OS components.SelfHost - Activate provider as a local server implementation.Decoupled:Com - Activate provider as a decoupled com provider.Decoupled:NonCom - Activate provider as a non com event provider.LocalSystemHost[:((.)+)] - Activate provider in host to a wmi provider host running as LocalSystem.Note, this is the default if __Win32provider :: HostingModel is not set. Further note, that on creation of an instance of __Win32provider with HostingModel equal to NULL, LocalSystemHost or LocalSystemHostOrSelfHost, an event log record is generated so that admins are aware ofproviders running under the trusted status.LocalSystemHostOrSelfHost[:((.)+)] - Activate provider in host to a wmi provider host running as LocalSystem or as local server. Note, this is the default if __Win32provider :: HostingModel is not set. Further note, that on creation of an instance of __Win32provider with HostingModel equal to NULL, LocalSystemHost or LocalSystemHostOrSelfHost, an event log record is generated so that admins are aware ofproviders running under the trusted status.NetworkServiceHost[:((.)+)] - Activate provider in host to a wmi provider host running as NetworkService.LocalServiceHost[:((.)+)] - Activate provider in host to a wmi provider host running as LocalService.Note, [:((.)+)] refers to a regular expression that defines the hosting group for the provider.") : Amended ToSubclass] Uint32 HostingSpecification;
  [Key,Description("The HostingGroup specification defines the second component of the __Win32provider :: HostingModel whenthe hosting model is one of LocalSystemHost, LocalSystemHostOrSelfHost, NetworkServiceHost or LocalServiceHost.The hosting group defines a particular instantiation of a wmi provider host, providers that share the same hosting modeland hosting group share the same surrogate process.") : Amended ToSubclass] String HostingGroup;
  [Description("The  HostProcessIdentifier property defines the process identifier hosting the particular instance of the provider.") : Amended ToSubclass] Uint32 HostProcessIdentifier;
  [Description("The ProviderOperation_GetObjectAsync property indicates the number of calls to IWbemServices :: GetObjectAsync.") : Amended ToSubclass] Uint64 ProviderOperation_GetObjectAsync;
  [Description("The  property indicates the number of calls to IWbemServices :: PutClassAsync.") : Amended ToSubclass] Uint64 ProviderOperation_PutClassAsync;
  [Description("The ProviderOperation_DeleteClassAsync property indicates the number of calls to IWbemServices :: DeleteClassAsync.") : Amended ToSubclass] Uint64 ProviderOperation_DeleteClassAsync;
  [Description("The ProviderOperation_CreateClassEnumAsync property indicates the number of calls to IWbemServices :: CreateClassEnumAsync.") : Amended ToSubclass] Uint64 ProviderOperation_CreateClassEnumAsync;
  [Description("The ProviderOperation_PutInstanceAsync property indicates the number of calls to IWbemServices :: PutInstanceAsync.") : Amended ToSubclass] Uint64 ProviderOperation_PutInstanceAsync;
  [Description("The ProviderOperation_DeleteInstanceAsync property indicates the number of calls to IWbemServices :: DeleteInstanceAsync.") : Amended ToSubclass] Uint64 ProviderOperation_DeleteInstanceAsync;
  [Description("The ProviderOperation_CreateInstanceEnumAsync property indicates the number of calls to IWbemServices :: CreateInstanceEnumAsync.") : Amended ToSubclass] Uint64 ProviderOperation_CreateInstanceEnumAsync;
  [Description("The ProviderOperation_ExecQueryAsync property indicates the number of calls to IWbemServices :: ExecQueryAsync.") : Amended ToSubclass] Uint64 ProviderOperation_ExecQueryAsync;
  [Description("The ProviderOperation_ExecMethodAsync property indicates the number of calls to IWbemServices :: ExecMethodAsync.") : Amended ToSubclass] Uint64 ProviderOperation_ExecMethodAsync;
  [Description("The ProviderOperation_QueryInstances property indicates the number of calls to IWbemHiPerfProvider :: QueryInstances.") : Amended ToSubclass] Uint64 ProviderOperation_QueryInstances;
  [Description("The ProviderOperation_CreateRefresher property indicates the number of calls to IWbemHiPerfProvider :: CreateRefresher.") : Amended ToSubclass] Uint64 ProviderOperation_CreateRefresher;
  [Description("The ProviderOperation_CreateRefreshableObject property indicates the number of calls to IWbemHiPerfProvider :: CreateRefreshableObject.") : Amended ToSubclass] Uint64 ProviderOperation_CreateRefreshableObject;
  [Description("The ProviderOperation_StopRefreshing property indicates the number of calls to IWbemHiPerfProvider :: StopRefreshing.") : Amended ToSubclass] Uint64 ProviderOperation_StopRefreshing;
  [Description("The ProviderOperation_CreateRefreshableEnum property indicates the number of calls to IWbemHiPerfProvider :: CreateRefreshableEnum.") : Amended ToSubclass] Uint64 ProviderOperation_CreateRefreshableEnum;
  [Description("The ProviderOperation_GetObjects property indicates the number of calls to IWbemHiPerfProvider :: GetObjects.") : Amended ToSubclass] Uint64 ProviderOperation_GetObjects;
  [Description("The ProviderOperation_GetProperty property indicates the number of calls to IWbemPropertyProvider :: GetProperty.") : Amended ToSubclass] Uint64 ProviderOperation_GetProperty;
  [Description("The ProviderOperation_PutProperty property indicates the number of calls to IWbemPropertyProvider :: PutProperty.") : Amended ToSubclass] Uint64 ProviderOperation_PutProperty;
  [Description("The ProviderOperation_ProvideEvents property indicates the number of calls to IWbemEventProvider :: ProvideEvents.") : Amended ToSubclass] Uint64 ProviderOperation_ProvideEvents;
  [Description("The ProviderOperation_NewQuery property indicates the number of calls to IWbemEventProviderQuerySink :: NewQuery.") : Amended ToSubclass] Uint64 ProviderOperation_NewQuery;
  [Description("The ProviderOperation_CancelQuery property indicates the number of calls to IWbemEventProviderQuerySink :: CancelQuery.") : Amended ToSubclass] Uint64 ProviderOperation_CancelQuery;
  [Description("The ProviderOperation_AccessCheck property indicates the number of calls to IWbemEventProviderSecurity :: AccessCheck.") : Amended ToSubclass] Uint64 ProviderOperation_AccessCheck;
  [Description("The ProviderOperation_SetRegistrationObject property is currently not set.") : Amended ToSubclass] Uint64 ProviderOperation_SetRegistrationObject;
  [Description("The ProviderOperation_FindConsumer property indicates the number of calls to IWbemEventConsumerProvider :: FindConsumer.") : Amended ToSubclass] Uint64 ProviderOperation_FindConsumer;
  [Description("The ProviderOperation_ValidateSubscription property indicates the number of calls to IWbemEventConsumerProviderEx :: ValidateSubscription.") : Amended ToSubclass] Uint64 ProviderOperation_ValidateSubscription;
  [Description("The Suspend method suspends execution of providers. All calls passing through a particular instance of the provider will be pass through aninterception layer, this layer will fail the call. Depending on the particular operation, the client may receive the status code WBEM_E_PROVIDER_SUSPENDED ") : Amended ToSubclass] Uint32 Suspend();
  [Description("The Resume method resumes execution of providers suspended through the use of the Suspend method.") : Amended ToSubclass] Uint32 Resume();
  [Description("The dynamic UnLoad method unloads the COM server associated with the particular instance of the provider. Further calls intothe provider with the same CLSID will return WBEM_E_PROVIDER_DISABLED. If the COM server implementation is an inproc server hosted in the provider host process it will receive calls to the exported function DllCanUnloadNow, if the provider responds by returning TRUE then COM will unload the executable image. Currently COM is configured to unload the executable approximately 30 seconds after the first successful call to DllCanUnloadNow. If hosted in some other process surrogate the surrogate will unload using some other strategy. The provider can be re-enabled either through the use of the Msft_Provider :: Load method, changes to the associated instance of __Win32Provider or via service restart.") : Amended ToSubclass] Uint32 UnLoad();
  [Description("The Load method loads a specific instance of a provider.") : Amended ToSubclass] Uint32 Load([In] String Namespace,[In] String User,[In] String Locale,[In] String Provider,[In] String TransactionIdentifier);
};
