|
|
// Standard MOF for provider registration
[abstract] class __Provider : __SystemClass { [key] string Name; };
class __Win32Provider : __Provider { [not_null: DisableOverride ToInstance ToSubClass] string CLSID;
string ClientLoadableCLSID; string DefaultMachineName;
[SUBTYPE("interval"): ToInstance ToSubClass] datetime UnloadTimeout;
boolean InitializeAsAdminFirst; // Only valid in LocalSystem & In-Proc cases
[Values{"None", "ClientImpersonation" }: ToSubClass] sint32 ImpersonationLevel = 0; // Informational, tells whether the provider actually // attempts to impersonate the client
[Values{"CLSID", "Namespace", "COM Object"}: ToSubClass] sint32 InitializationReentrancy = 0;
boolean PerUserInitialization = FALSE; boolean PerLocaleInitialization = FALSE; boolean Pure = TRUE; // We want to deprecate impure providers
// Extensions //////////////////////////////////////////
// 0 means using global settings for all providers unless overridden
[Values {"WmiCore", // Hosted within CIMOM "SharedLocalSysHost", // In shared local system process "SharedNetSvcHost", // In shared Network Service process "SharedPerUserHost", // In shared per-user process "DedicatedLocalSysHost", // In dedicated local system host "DedicatedNetSvcHost", // In dedicated network service host "DedicatedPerUserHost", // In dedicated per-user host "SelfHost", // Separate COM EXE "Decoupled" // } ]
string PossibleHostingModels; string CurrentHostingModel;
[configurable] sint32 MaxConcurrentQueries = 0;
[configurable] sint32 MaxConcurrentPendingCalls = 0;
[configurable] sint32 MaxConcurrentDeliveredThreads = 0;
boolean Enabled = true; boolean ClientLoadable = false; // Always load in client boolean SupportsExplicitShutdown = false; boolean ExtendedStatusSupport = false;
boolean SupportsThrottling = false; boolean SupportsQuotas = false;
interval NormalInitTime = null; interval TimeBeforeErrorOnRequests = null;
uint8 ProviderSecurityDescriptor[];
};
[abstract] class __ProviderRegistration : __SystemClass { __Provider ref provider; };
[abstract] class __ObjectProviderRegistration : __ProviderRegistration { boolean SupportsPut = FALSE; boolean SupportsGet = FALSE; boolean SupportsDelete = FALSE; boolean SupportsEnumeration = FALSE;
// Extensions: Added SQL to the following ValueMap
[ValueMap{"WQL:UnarySelect", "WQL:References", "WQL:Associators", "WQL:V1ProviderDefined", "SQL"}: ToSubClass] string QuerySupportLevels[];
[Values{"Pull", "Push", "PushVerify"}: ToSubClass] sint32 InteractionType = 0;
// Extensions ///////////////////////////////////////////////
[description("add ")] boolean SupportsDeepOperations = false; // If true, for inst or class providers, // separate subclass calls won't be made.
uint32 QueryLanguageFeatures[]; // LFn features from Query Spec
boolean BatchingSupport = false; // Reserved for future use boolean SupportsWmiTransactions = false; };
class __InstanceProviderRegistration : __ObjectProviderRegistration { [key] __Provider ref provider;
boolean PerPropertyOperations = false; };
class __ClassProviderRegistration : __ObjectProviderRegistration { [key] __Provider ref provider;
string ResultSetQueries[]; // Use LIKE operator in query to specify schema prefix string ReferencedSetQueries[]; string UnsupportedQueries[];
// Extensions
interval NormalRefreshInterval; // NULL=forever boolean ResyncOnNsOpen; boolean PerUserSchema;
boolean V1AccessModel = false; boolean SupportsDirectedCreate;
boolean ForceResync(); };
class __PropertyProviderRegistration : __ProviderRegistration { [key] __Provider ref provider; boolean SupportsPut = FALSE; boolean SupportsGet = FALSE; };
class MSFT_DecoupledProvider : __Win32Provider { [Description ( "Decoupled provider CLSID, do not change." ) ,Override("Clsid")]
String Clsid = "{c3e36a42-97d0-4b21-ac18-d2e4ea8afa9f}" ;
[Description ( "CLSID of the actual de-coupled provider." ) , not_null: DisableOverride ToInstance ToSubClass]
String Decoupled_CLSID;
} ;
///////////// EVENTS //////////////////////////////////////////////
[singleton] class MSFT_WmiProviderSubsystemEvent : __SelfInstrumentEvent { string ProviderName; string Namespace;
uint32 HostProcessId; uint32 RelevantThreadId;
[Values {"WmiCore", // Hosted within CIMOM "SharedLocalSysHost", // In shared local system process "SharedNetSvcHost", // In shared Network Service process "SharedPerUserHost", // In shared per-user process "DedicatedLocalSysHost", // In dedicated local system host "DedicatedNetSvcHost", // In dedicated network service host "DedicatedPerUserHost", // In dedicated per-user host "ClientOnly", // Client in-proc only "SelfHost", // Separate COM EXE "Decoupled" // } ]
string HostingModel; // NULL when not applicable uint8 HostProcesSid[];
// Timestamp properties already have the time };
class MSFT_WmiProviderLoadFailure : MSFT_WmiProviderSubsystemEvent { uint32 COMHRESULT; };
class MSFT_WmiProvSS_ProviderShutdownFailure : MSFT_WmiProviderSubsystemEvent { // Only if provider implements IWbemShutdown
uint32 HRESULTFROMPROV; };
class MSFT_WmiProviderFault : MSFT_WmiProviderSubsystemEvent { };
class MSFT_WmiProviderTimeoutFailure : MSFT_WmiProviderSubsystemEvent { datetime Timeout; // Provider is not responding within the specified timeout };
class MSFT_WmiProviderQuotaViolation : MSFT_WmiProviderSubsystemEvent { // Not sure what this means in shared hosts; presumably // we issue events for all providers that were there
BOOL bThreadQuotaExceeded; BOOL bMemoryQuotaExceeded; BOOL bInSharedProcess; BOOL bInDedicatedProcess; };
class MSFT_WmiProviderLoad : MSFT_WmiProviderSubsystemEvent { };
class MSFT_WmiProviderShutdown : MSFT_WmiProviderSubsystemEvent { };
class MSFT_WmiProviderInitialization : MSFT_WmiProviderSubsystemEvent { uint8 InitializationSid[]; };
class MSFT_WmiProviderInitializationFailure : MSFT_WmiProviderSubsystemEvent { uint8 InitializationSid[]; uint32 ResultCode; object ErrorObject; };
[description("")] class MSFT_WmiProviderCall { string Provider; string Namespace;
uint32 API; string Parameter; };
class MSFT_WmiProviderBusy : MSFT_WmiProviderSubsystemEvent { // Provider was too busy to service request (returned WBEM_E_SERVER_BUSY from calls)
};
class WMICORE_BUSY { };
class MSFT_WmiProviderAbnormalTermination : MSFT_WmiProviderSubsystemEvent { };
class MSFT_WmiForcedProviderStop : MSFT_WmiProviderSubsystemEvent { // Issued when prov ss methods are invoked. };
class MSFT_WmiForcedProviderStart : MSFT_WmiProviderSubsystemEvent { };
class MSFT_WmiForcedProviderUnload : MSFT_WmiProviderSubsystemEvent { };
class MSFT_WmiForcedProviderLoad : MSFT_WmiProviderSubsystemEvent { // MSFT_WmiProviderLoad event also issued with pertinent data };
class MSFT_WmiProviderHostLaunched : MSFT_WmiProviderSubsystemEvent { };
class MSFT_WmiProviderHostTerminated : MSFT_WmiProviderSubsystemEvent { // A provider host was terminated };
class MSFT_WmiDecoupledProviderBind : MSFT_WmiProviderSubsystemEvent { // Decoupled provider was located and bound };
class MSFT_WmiDecoupledProviderBindFailure : MSFT_WmiProviderSubsystemEvent { // Decoupled provider was not running when needed };
class MSFT_WmiDecoupledProviderUnbind : MSFT_WmiProviderSubsystemEvent { };
///////////// SELF-INSTRUMENTATION //////////////////////////////////////////////
[singleton] class __ProviderHostProcessQuotas : __SystemQuota { uint32 MaxMemoryPerHostProcess; uint32 MaxMemoryForAllHostProcesses;
uint32 MaxMemoryForNetSvcProcess; uint32 MaxMemoryForLocalSysProcess; uint32 MaxMemoryForPerUserProcess;
uint32 MaxThreadsPerHostProcess; uint32 MaxThreadsForAllHostProcesses;
uint32 MaxThreadsForNetSvcProcess; uint32 MaxThreadsForLocalSysProcess; uint32 MaxThreadsForPerUserProcess; };
[singleton: DisableOverride ToInstance ToSubClass] class __ObjectProviderCacheControl : __CacheControl { [SUBTYPE("interval"): ToInstance ToSubClass] datetime ClearAfter; };
[singleton] class __ProviderSubsystemControl : __SystemClass { bool SuspendProvider([in] string ProviderName); bool ResumeProvider([in] string ProviderName); bool LoadProvider([in] string ProviderName); bool UnloadProvider([in] string ProviderName); };
class MSFT_ObjectProviderStatus { [key] __Provider ref Provider
BOOL bActive; // Active connection BOOL bStandby; // No outstanding pointers uint32 CallsInProgress; uint32 HostProcessId; };
class MSFT_ProviderConnection { MSFT_ObjectProviderStatus ref Owner;
[values {"Instance", "Property", "Event", "Consumer", "Class"}] string ActiveProviderTypes[]; };
class MSFT_ProviderSubsystemHostStatus { [key] uint32 ProcessId;
[Values {"WmiCore", // Hosted within CIMOM "SharedLocalSysHost", // In shared local system process "SharedNetSvcHost", // In shared Network Service process "SharedPerUserHost", // In shared per-user process "DedicatedLocalSysHost", // In dedicated local system host "DedicatedNetSvcHost", // In dedicated network service host "DedicatedPerUserHost", // In dedicated per-user host "ClientOnly", // Client in-proc only "SelfHost", // Separate COM EXE "Decoupled" // } ]
string HostingModel; // NULL when not applicable
__Provider ref LoadedProviders[];
uint32 HostSid[]; };
|