Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

409 lines
11 KiB

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