mirror of https://github.com/tongzx/nt5src
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
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[];
|
|
};
|
|
|
|
|
|
|