windows-nt/Source/XPSP1/NT/admin/wmi/wbem/winmgmt/mofs/provreg.mof
2020-09-26 16:20:57 +08:00

409 lines
11 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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[];
};