/*++ Copyright (C) 1996-2001 Microsoft Corporation Module Name: Globals.h Abstract: History: --*/ #ifndef _Globals_H #define _Globals_H #include #include #include #include "ProvCntrs.h" #include "ProvCache.h" #include "ProvDcAggr.h" #include "StrobeThread.h" #include /****************************************************************************** * * Name: * * * Description: * * *****************************************************************************/ enum Event_Identifier { Msft_WmiProvider_ComServerLoadOperationEvent = 0 , Msft_WmiProvider_ComServerOperationFailureEvent , Msft_WmiProvider_LoadOperationEvent , Msft_WmiProvider_LoadOperationFailureEvent , Msft_WmiProvider_InitializationOperationFailureEvent , Msft_WmiProvider_InitializationOperationEvent , Msft_WmiProvider_UnLoadOperationEvent , #if 0 Msft_WmiProvider_HostLoadOperationEvent , Msft_WmiProvider_HostLoadFailureOperationEvent , Msft_WmiProvider_HostUnLoadOperationEvent , #endif Msft_WmiProvider_GetObjectAsyncEvent_Pre , Msft_WmiProvider_PutClassAsyncEvent_Pre , Msft_WmiProvider_DeleteClassAsyncEvent_Pre , Msft_WmiProvider_CreateClassEnumAsyncEvent_Pre , Msft_WmiProvider_PutInstanceAsyncEvent_Pre , Msft_WmiProvider_DeleteInstanceAsyncEvent_Pre , Msft_WmiProvider_CreateInstanceEnumAsyncEvent_Pre , Msft_WmiProvider_ExecQueryAsyncEvent_Pre , Msft_WmiProvider_ExecNotificationQueryAsyncEvent_Pre , Msft_WmiProvider_ExecMethodAsyncEvent_Pre , Msft_WmiProvider_ProvideEvents_Pre , Msft_WmiProvider_AccessCheck_Pre , Msft_WmiProvider_CancelQuery_Pre , Msft_WmiProvider_NewQuery_Pre , Msft_WmiProvider_GetObjectAsyncEvent_Post , Msft_WmiProvider_PutClassAsyncEvent_Post , Msft_WmiProvider_DeleteClassAsyncEvent_Post , Msft_WmiProvider_CreateClassEnumAsyncEvent_Post , Msft_WmiProvider_PutInstanceAsyncEvent_Post , Msft_WmiProvider_DeleteInstanceAsyncEvent_Post , Msft_WmiProvider_CreateInstanceEnumAsyncEvent_Post , Msft_WmiProvider_ExecQueryAsyncEvent_Post , Msft_WmiProvider_ExecNotificationQueryAsyncEvent_Post , Msft_WmiProvider_ExecMethodAsyncEvent_Post , Msft_WmiProvider_ProvideEvents_Post , Msft_WmiProvider_AccessCheck_Post , Msft_WmiProvider_CancelQuery_Post , Msft_WmiProvider_NewQuery_Post } ; /****************************************************************************** * * Name: * * * Description: * * *****************************************************************************/ class ProviderSubSystem_Globals { public: static LONG s_Initialized ; static WmiAllocator *s_Allocator ; static CriticalSection s_DecoupledRegistrySection ; static HANDLE s_FileMapping ; static CServerObject_ProviderSubsystem_Counters *s_SharedCounters ; static CriticalSection s_GuidTagSection ; static CWbemGlobal_ComServerTagContainer *s_GuidTag ; static HostController *s_HostController ; static RefresherManagerController *s_RefresherManagerController ; static CWbemGlobal_HostedProviderController *s_HostedProviderController ; static CWbemGlobal_IWmiProvSubSysController *s_ProvSubSysController ; static CWbemGlobal_IWbemSyncProviderController *s_SyncProviderController ; static CDecoupled_ProviderSubsystemRegistrar *s_DecoupledRegistrar ; static StrobeThread *s_StrobeThread ; static LONG s_LocksInProgress ; static LONG s_ObjectsInProgress ; static HANDLE s_CoFreeUnusedLibrariesEvent ; static LPCWSTR s_HostJobObjectName ; static HANDLE s_HostJobObject ; static ULONG s_InternalCacheTimeout ; static ULONG s_ObjectCacheTimeout ; static ULONG s_EventCacheTimeout ; static ULONG s_StrobeTimeout ; static SIZE_T s_Quota_ProcessMemoryLimitCount ; static SIZE_T s_Quota_JobMemoryLimitCount ; static SIZE_T s_Quota_PrivatePageCount ; static ULONG s_Quota_ProcessLimitCount ; static ULONG s_Quota_HandleCount ; static ULONG s_Quota_NumberOfThreads ; static LONG s_CServerClassFactory_ObjectsInProgress ; static LONG s_CAggregator_IWbemProvider_ObjectsInProgress ; static LONG s_CInterceptor_IWbemObjectSink_ObjectsInProgress ; static LONG s_CInterceptor_IWbemObjectSinkEx_ObjectsInProgress ; static LONG s_CInterceptor_IWbemFilteringObjectSink_ObjectsInProgress ; static LONG s_CInterceptor_IWbemSyncObjectSink_ObjectsInProgress ; static LONG s_CInterceptor_IWbemSyncObjectSinkEx_ObjectsInProgress ; static LONG s_CInterceptor_IWbemSyncFilteringObjectSink_ObjectsInProgress ; static LONG s_CInterceptor_IWbemCombiningObjectSink_ObjectsInProgress ; static LONG s_CInterceptor_IWbemWaitingObjectSink_ObjectsInProgress ; static LONG s_CInterceptor_IWbemProviderInitSink_ObjectsInProgress ; static LONG s_CInterceptor_IWbemProvider_ObjectsInProgress ; static LONG s_CInterceptor_IWbemSyncProvider_ObjectsInProgress ; static LONG s_CInterceptor_IWbemServices_Stub_ObjectsInProgress ; static LONG s_CInterceptor_IWbemServices_Proxy_ObjectsInProgress ; static LONG s_CInterceptor_IWbemServices_Interceptor_ObjectsInProgress ; static LONG s_CInterceptor_IWbemServices_RestrictingInterceptor_ObjectsInProgress ; static LONG s_CInterceptor_IEnumWbemClassObject_Stub_ObjectsInProgress ; static LONG s_CInterceptor_IEnumWbemClassObject_Proxy_ObjectsInProgress ; static LONG s_CInterceptor_IWbemUnboundObjectSink_ObjectsInProgress ; static LONG s_CInterceptor_IWbemSyncUnboundObjectSink_ObjectsInProgress ; static LONG s_CInterceptor_IWbemDecoupledProvider_ObjectsInProgress ; static LONG s_CDecoupled_IWbemUnboundObjectSink_ObjectsInProgress ; static LONG s_CServerObject_Host_ObjectsInProgress ; static LONG s_CServerObject_HostInterceptor_ObjectsInProgress ; static LONG s_CServerObject_BindingFactory_ObjectsInProgress ; static LONG s_CServerObject_DynamicPropertyProviderResolver_ObjectsInProgress ; static LONG s_CServerObject_IWbemServices_ObjectsInProgress ; static LONG s_CServerObject_ProviderSubsystem_Counters_ObjectsInProgress ; static LONG s_CServerObject_ProviderSubSystem_ObjectsInProgress ; static LONG s_CServerObject_RawFactory_ObjectsInProgress ; static LONG s_CServerObject_StaThread_ObjectsInProgress ; static LONG s_StaTask_Create_ObjectsInProgress ; static LONG s_StrobeThread_ObjectsInProgress ; static LONG s_CDecoupledAggregator_IWbemProvider_ObjectsInProgress ; static LONG s_CDecoupled_ProviderSubsystemRegistrar_ObjectsInProgress ; static LONG s_CServerObject_ProviderRefresherManager_ObjectsInProgress ; static LONG s_CServerObject_InterceptorProviderRefresherManager_ObjectsInProgress ; static LONG s_CServerProvRefreshManagerClassFactory_ObjectsInProgress ; static HRESULT Global_Startup () ; static HRESULT Global_Shutdown () ; static LPCWSTR s_FileMappingName ; static LPCWSTR s_QueryPrefix ; static ULONG s_QueryPrefixLen ; static LPCWSTR s_QueryPostfix ; static ULONG s_QueryPostfixLen ; static ULONG s_QueryConstantsLen ; static LPCWSTR s_Provider ; static ULONG s_ProviderLen ; static LPCWSTR s_Class ; static ULONG s_ClassLen ; static LPCWSTR s_Wql ; static LPCWSTR s_DynProps ; static LPCWSTR s_ClassContext ; static LPCWSTR s_InstanceContext ; static LPCWSTR s_PropertyContext ; static LPCWSTR s_Dynamic ; static LPCWSTR s_ProviderSubsystemEventSourceName ; static HANDLE s_NtEventLogSource ; static HANDLE s_EventSource ; static LPWSTR s_EventPropertySources [] ; static HANDLE s_EventClassHandles [] ; static ULONG s_EventClassHandlesSize ; static HRESULT CreateJobObject () ; static HRESULT DeleteJobObject () ; static HRESULT AssignProcessToJobObject ( HANDLE a_Handle ) ; static HRESULT Initialize_Events () ; static HRESULT UnInitialize_Events () ; static HRESULT Initialize_SharedCounters () ; static HRESULT UnInitialize_SharedCounters () ; static CWbemGlobal_ComServerTagContainer *GetGuidTag () ; static CriticalSection *GetGuidTagCriticalSection () ; static CriticalSection *GetDecoupledRegistrySection () ; static CWbemGlobal_IWmiProvSubSysController *GetProvSubSysController () ; static CWbemGlobal_IWbemSyncProviderController *GetSyncProviderController () ; static CWbemGlobal_HostedProviderController *GetHostedProviderController () ; static RefresherManagerController *GetRefresherManagerController () ; static HostController *GetHostController () ; static CServerObject_ProviderSubsystem_Counters *GetSharedCounters () { return s_SharedCounters ; } static StrobeThread &GetStrobeThread () { return *s_StrobeThread ; } static HANDLE GetNtEventSource () { return s_NtEventLogSource ; } static HRESULT ForwardReload ( long a_Flags , IWbemContext *a_Context , LPCWSTR a_Namespace , LPCWSTR a_Provider ) ; static BOOL CheckGuidTag ( const GUID &a_Guid ) ; static void InsertGuidTag ( const GUID &a_Guid ) ; static void DeleteGuidTag ( const GUID &a_Guid ) ; static void ClearGuidTag (); static HRESULT BeginThreadImpersonation ( IUnknown *&a_OldContext , IServerSecurity *&a_OldSecurity , BOOL &a_Impersonating ) ; static HRESULT EndThreadImpersonation ( IUnknown *a_OldContext , IServerSecurity *a_OldSecurity , BOOL a_Impersonating ) ; static HRESULT Begin_IdentifyCall_PrvHost ( WmiInternalContext a_InternalContext , BOOL &a_Impersonating , IUnknown *&a_OldContext , IServerSecurity *&a_OldSecurity ) ; static HRESULT End_IdentifyCall_PrvHost ( WmiInternalContext a_InternalContext , IUnknown *&a_OldContext , IServerSecurity *&a_OldSecurity , BOOL &a_Impersonating ) ; static HRESULT Begin_IdentifyCall_SvcHost ( WmiInternalContext a_InternalContext , BOOL &a_Impersonating , IUnknown *&a_OldContext , IServerSecurity *&a_OldSecurity ) ; static HRESULT End_IdentifyCall_SvcHost ( WmiInternalContext a_InternalContext , IUnknown *&a_OldContext , IServerSecurity *&a_OldSecurity , BOOL &a_Impersonating ) ; static LONG Increment_Global_Object_Count () ; static LONG Decrement_Global_Object_Count () ; } ; #endif // _Globals_H