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.
311 lines
10 KiB
311 lines
10 KiB
/*++
|
|
|
|
Copyright (C) 1996-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Globals.h
|
|
|
|
Abstract:
|
|
|
|
|
|
History:
|
|
|
|
--*/
|
|
|
|
#ifndef _Globals_H
|
|
#define _Globals_H
|
|
|
|
#include <pssException.h>
|
|
#include <Allocator.h>
|
|
#include <BasicTree.h>
|
|
|
|
#include "ProvCntrs.h"
|
|
#include "ProvCache.h"
|
|
#include "ProvDcAggr.h"
|
|
#include "StrobeThread.h"
|
|
#include <lockst.h>
|
|
|
|
/******************************************************************************
|
|
*
|
|
* 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
|