409 lines
11 KiB
Plaintext
409 lines
11 KiB
Plaintext
|
||
|
||
// 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[];
|
||
};
|
||
|
||
|
||
|