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.
3207 lines
83 KiB
3207 lines
83 KiB
/*++
|
|
|
|
Copyright (C) 1996-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ProvWsv.H
|
|
|
|
Abstract:
|
|
|
|
|
|
History:
|
|
|
|
--*/
|
|
|
|
#ifndef _Server_Interceptor_IWbemServices_H
|
|
#define _Server_Interceptor_IWbemServices_H
|
|
|
|
#include <CGlobals.h>
|
|
#include "ProvCache.h"
|
|
#include "ProvRegInfo.h"
|
|
|
|
#define ProxyIndex_IWbemServices 0
|
|
#define ProxyIndex_IWbemPropertyProvider 1
|
|
#define ProxyIndex_IWbemHiPerfProvider 2
|
|
#define ProxyIndex_IWbemEventProvider 3
|
|
#define ProxyIndex_IWbemEventProviderQuerySink 4
|
|
#define ProxyIndex_IWbemEventProviderSecurity 5
|
|
#define ProxyIndex_IWbemProviderIdentity 6
|
|
#define ProxyIndex_IWbemEventConsumerProvider 7
|
|
#define ProxyIndex_IWbemEventConsumerProviderEx 8
|
|
#define ProxyIndex_IWbemUnboundObjectSink 9
|
|
#define ProxyIndex_IWbemProviderInit 10
|
|
|
|
#define ProxyIndex_Internal_IWbemServices 11
|
|
#define ProxyIndex_Internal_IWbemPropertyProvider 12
|
|
#define ProxyIndex_Internal_IWbemEventProvider 13
|
|
#define ProxyIndex_Internal_IWbemEventProviderQuerySink 14
|
|
#define ProxyIndex_Internal_IWbemEventProviderSecurity 15
|
|
#define ProxyIndex_Internal_IWbemEventConsumerProvider 16
|
|
#define ProxyIndex_Internal_IWbemEventConsumerProviderEx 17
|
|
#define ProxyIndex_Internal_IWbemUnboundObjectSink 18
|
|
#define ProxyIndex_Internal_IWbemProviderIdentity 19
|
|
#define ProxyIndex_Internal_IWbemProviderInit 20
|
|
|
|
#define ProxyIndex_IWbemShutdown 21
|
|
#define ProxyIndex__IWmiProviderConfiguration 22
|
|
|
|
#define ProxyIndex_Internal_IWmiProviderConfiguration 23
|
|
|
|
#define ProxyIndex_Provider_Size 23
|
|
|
|
#define ProxyIndex_UnBound_IWbemUnboundObjectSink 0
|
|
#define ProxyIndex_UnBound_Internal_IWbemUnboundObjectSink 1
|
|
#define ProxyIndex_UnBound_Size 2
|
|
|
|
#define ProxyIndex_UnBoundSync_IWbemUnboundObjectSink 0
|
|
#define ProxyIndex_UnBoundSync_Size 1
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CInterceptor_IWbemUnboundObjectSink : public IWbemUnboundObjectSink ,
|
|
public IWbemShutdown ,
|
|
public VoidPointerContainerElement
|
|
{
|
|
private:
|
|
|
|
WmiAllocator &m_Allocator ;
|
|
CServerObject_ProviderRegistrationV1 *m_Registration ;
|
|
|
|
_IWmiProviderAbnormalShutdown *m_Controller ;
|
|
|
|
IUnknown *m_Unknown ;
|
|
IWbemUnboundObjectSink *m_Provider_IWbemUnboundObjectSink ;
|
|
Internal_IWbemUnboundObjectSink *m_Provider_Internal_IWbemUnboundObjectSink ;
|
|
|
|
ProxyContainer m_ProxyContainer ;
|
|
|
|
DWORD m_ProcessIdentifier ;
|
|
|
|
HRESULT m_InitializeResult ;
|
|
|
|
protected:
|
|
|
|
HRESULT Begin_Interface (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
IUnknown *a_InternalServerInterface ,
|
|
REFIID a_InternalInterfaceIdentifier ,
|
|
DWORD a_InternalProxyIndex ,
|
|
DWORD a_ProcessIdentifier ,
|
|
HANDLE &a_IdentifyToken ,
|
|
BOOL &a_Impersonating ,
|
|
IUnknown *&a_OldContext ,
|
|
IServerSecurity *&a_OldSecurity ,
|
|
BOOL &a_IsProxy ,
|
|
IUnknown *&a_Interface ,
|
|
BOOL &a_Revert ,
|
|
IUnknown *&a_Proxy ,
|
|
IWbemContext *a_Context = NULL
|
|
) ;
|
|
|
|
HRESULT End_Interface (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
IUnknown *a_InternalServerInterface ,
|
|
REFIID a_InternalInterfaceIdentifier ,
|
|
DWORD a_InternalProxyIndex ,
|
|
DWORD a_ProcessIdentifier ,
|
|
HANDLE a_IdentifyToken ,
|
|
BOOL a_Impersonating ,
|
|
IUnknown *a_OldContext ,
|
|
IServerSecurity *a_OldSecurity ,
|
|
BOOL a_IsProxy ,
|
|
IUnknown *a_Interface ,
|
|
BOOL a_Revert ,
|
|
IUnknown *a_Proxy
|
|
) ;
|
|
|
|
public:
|
|
|
|
CInterceptor_IWbemUnboundObjectSink (
|
|
|
|
WmiAllocator &a_Allocator ,
|
|
IUnknown *a_ServerSideProvider ,
|
|
CWbemGlobal_IWmiObjectSinkController *a_Controller ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration
|
|
) ;
|
|
|
|
~CInterceptor_IWbemUnboundObjectSink () ;
|
|
|
|
HRESULT Initialize () ;
|
|
|
|
public:
|
|
|
|
STDMETHODIMP QueryInterface (
|
|
|
|
REFIID iid ,
|
|
LPVOID FAR *iplpv
|
|
) ;
|
|
|
|
STDMETHODIMP_( ULONG ) AddRef () ;
|
|
|
|
STDMETHODIMP_( ULONG ) Release () ;
|
|
|
|
HRESULT STDMETHODCALLTYPE IndicateToConsumer (
|
|
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
long a_ObjectCount ,
|
|
IWbemClassObject **a_Objects
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
LONG a_Flags ,
|
|
ULONG a_MaxMilliSeconds ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CDecoupled_IWbemUnboundObjectSink : public IWbemUnboundObjectSink ,
|
|
public IWbemShutdown ,
|
|
public VoidPointerContainerElement
|
|
{
|
|
private:
|
|
|
|
WmiAllocator &m_Allocator ;
|
|
CServerObject_ProviderRegistrationV1 *m_Registration ;
|
|
|
|
_IWmiProviderAbnormalShutdown *m_Controller ;
|
|
|
|
IUnknown *m_Unknown ;
|
|
IWbemUnboundObjectSink *m_Provider_IWbemUnboundObjectSink ;
|
|
Internal_IWbemUnboundObjectSink *m_Provider_Internal_IWbemUnboundObjectSink ;
|
|
|
|
ProxyContainer m_ProxyContainer ;
|
|
|
|
DWORD m_ProcessIdentifier ;
|
|
|
|
HRESULT m_InitializeResult ;
|
|
|
|
protected:
|
|
|
|
HRESULT Begin_Interface (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
IUnknown *a_InternalServerInterface ,
|
|
REFIID a_InternalInterfaceIdentifier ,
|
|
DWORD a_InternalProxyIndex ,
|
|
DWORD a_ProcessIdentifier ,
|
|
HANDLE &a_IdentifyToken ,
|
|
BOOL &a_Impersonating ,
|
|
IUnknown *&a_OldContext ,
|
|
IServerSecurity *&a_OldSecurity ,
|
|
BOOL &a_IsProxy ,
|
|
IUnknown *&a_Interface ,
|
|
BOOL &a_Revert ,
|
|
IUnknown *&a_Proxy ,
|
|
IWbemContext *a_Context = NULL
|
|
) ;
|
|
|
|
HRESULT End_Interface (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
IUnknown *a_InternalServerInterface ,
|
|
REFIID a_InternalInterfaceIdentifier ,
|
|
DWORD a_InternalProxyIndex ,
|
|
DWORD a_ProcessIdentifier ,
|
|
HANDLE a_IdentifyToken ,
|
|
BOOL a_Impersonating ,
|
|
IUnknown *a_OldContext ,
|
|
IServerSecurity *a_OldSecurity ,
|
|
BOOL a_IsProxy ,
|
|
IUnknown *a_Interface ,
|
|
BOOL a_Revert ,
|
|
IUnknown *a_Proxy
|
|
) ;
|
|
|
|
public:
|
|
|
|
CDecoupled_IWbemUnboundObjectSink (
|
|
|
|
WmiAllocator &a_Allocator ,
|
|
IUnknown *a_ServerSideProvider ,
|
|
CWbemGlobal_IWmiObjectSinkController *a_Controller ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration
|
|
) ;
|
|
|
|
~CDecoupled_IWbemUnboundObjectSink () ;
|
|
|
|
HRESULT Initialize () ;
|
|
|
|
public:
|
|
|
|
STDMETHODIMP QueryInterface (
|
|
|
|
REFIID iid ,
|
|
LPVOID FAR *iplpv
|
|
) ;
|
|
|
|
STDMETHODIMP_( ULONG ) AddRef () ;
|
|
|
|
STDMETHODIMP_( ULONG ) Release () ;
|
|
|
|
HRESULT STDMETHODCALLTYPE IndicateToConsumer (
|
|
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
long a_ObjectCount ,
|
|
IWbemClassObject **a_Objects
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
LONG a_Flags ,
|
|
ULONG a_MaxMilliSeconds ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CInterceptor_IWbemProvider ;
|
|
|
|
class InternalQuotaInterface : public _IWmiProviderQuota
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
_IWmiProviderQuota *m_Owner ;
|
|
|
|
public:
|
|
|
|
InternalQuotaInterface ( CInterceptor_IWbemProvider *a_Owner ) ;
|
|
|
|
~InternalQuotaInterface () ;
|
|
|
|
HRESULT Initialize () ;
|
|
|
|
STDMETHODIMP QueryInterface (
|
|
|
|
REFIID iid ,
|
|
LPVOID FAR *iplpv
|
|
) ;
|
|
|
|
STDMETHODIMP_( ULONG ) AddRef () ;
|
|
|
|
STDMETHODIMP_( ULONG ) Release () ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Violation (
|
|
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CInterceptor_IWbemProvider : public IWbemServices ,
|
|
public IWbemPropertyProvider ,
|
|
public IWbemEventProvider ,
|
|
public IWbemEventProviderQuerySink ,
|
|
public IWbemEventProviderSecurity ,
|
|
public IWbemEventConsumerProviderEx ,
|
|
public IWbemUnboundObjectSink ,
|
|
public IWbemHiPerfProvider ,
|
|
public IWbemProviderInit ,
|
|
public _IWmiProviderInitialize ,
|
|
public _IWmiProviderLoad ,
|
|
public IWbemShutdown ,
|
|
public _IWmiProviderQuota ,
|
|
public _IWmiProviderConfiguration ,
|
|
public _IWmiProviderStack ,
|
|
public _IWmiProviderCache ,
|
|
public _IWmiProviderAbnormalShutdown ,
|
|
public ServiceCacheElement ,
|
|
public CWbemGlobal_IWmiObjectSinkController
|
|
{
|
|
private:
|
|
|
|
WmiAllocator &m_Allocator ;
|
|
CServerObject_ProviderRegistrationV1 *m_Registration ;
|
|
|
|
_IWmiProviderHost *m_Host ;
|
|
|
|
InternalQuotaInterface *m_Quota ;
|
|
|
|
IUnknown *m_Unknown ;
|
|
IWbemServices *m_Provider_IWbemServices ;
|
|
IWbemPropertyProvider *m_Provider_IWbemPropertyProvider ;
|
|
IWbemHiPerfProvider *m_Provider_IWbemHiPerfProvider ;
|
|
IWbemEventProvider *m_Provider_IWbemEventProvider ;
|
|
IWbemEventProviderQuerySink *m_Provider_IWbemEventProviderQuerySink ;
|
|
IWbemEventProviderSecurity *m_Provider_IWbemEventProviderSecurity ;
|
|
IWbemEventConsumerProvider *m_Provider_IWbemEventConsumerProvider ;
|
|
IWbemEventConsumerProviderEx *m_Provider_IWbemEventConsumerProviderEx ;
|
|
IWbemUnboundObjectSink *m_Provider_IWbemUnboundObjectSink ;
|
|
_IWmiProviderConfiguration *m_Provider__IWmiProviderConfiguration ;
|
|
|
|
Internal_IWbemServices *m_Provider_Internal_IWbemServices ;
|
|
Internal_IWbemPropertyProvider *m_Provider_Internal_IWbemPropertyProvider ;
|
|
Internal_IWbemEventProvider *m_Provider_Internal_IWbemEventProvider ;
|
|
Internal_IWbemEventProviderQuerySink *m_Provider_Internal_IWbemEventProviderQuerySink ;
|
|
Internal_IWbemEventProviderSecurity *m_Provider_Internal_IWbemEventProviderSecurity ;
|
|
Internal_IWbemEventConsumerProvider *m_Provider_Internal_IWbemEventConsumerProvider ;
|
|
Internal_IWbemEventConsumerProviderEx *m_Provider_Internal_IWbemEventConsumerProviderEx ;
|
|
Internal_IWbemUnboundObjectSink *m_Provider_Internal_IWbemUnboundObjectSink ;
|
|
Internal_IWmiProviderConfiguration *m_Provider_Internal_IWmiProviderConfiguration ;
|
|
|
|
ProxyContainer m_ProxyContainer ;
|
|
|
|
DWORD m_ProcessIdentifier ;
|
|
|
|
BSTR m_Locale ;
|
|
BSTR m_User ;
|
|
BSTR m_Namespace ;
|
|
|
|
LONG m_Initialized ;
|
|
LONG m_UnInitialized ;
|
|
HRESULT m_InitializeResult ;
|
|
HANDLE m_InitializedEvent ;
|
|
IWbemContext *m_InitializationContext ;
|
|
|
|
LONG m_Resumed ;
|
|
|
|
class InternalInterface : public _IWmiProviderQuota
|
|
{
|
|
private:
|
|
|
|
CInterceptor_IWbemProvider *m_This ;
|
|
|
|
public:
|
|
|
|
InternalInterface ( CInterceptor_IWbemProvider *a_This ) : m_This ( a_This )
|
|
{
|
|
}
|
|
|
|
STDMETHODIMP QueryInterface (
|
|
|
|
REFIID iid ,
|
|
LPVOID FAR *iplpv
|
|
)
|
|
{
|
|
return m_This->QueryInterface (
|
|
|
|
iid ,
|
|
iplpv
|
|
) ;
|
|
}
|
|
|
|
STDMETHODIMP_( ULONG ) AddRef ()
|
|
{
|
|
return m_This->ServiceCacheElement :: NonCyclicAddRef () ;
|
|
}
|
|
|
|
STDMETHODIMP_( ULONG ) Release ()
|
|
{
|
|
return m_This->ServiceCacheElement :: NonCyclicRelease () ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE Violation (
|
|
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_Object
|
|
)
|
|
{
|
|
return m_This->Violation (
|
|
|
|
a_Flags ,
|
|
a_Context ,
|
|
a_Object
|
|
) ;
|
|
}
|
|
} ;
|
|
|
|
InternalInterface m_Internal ;
|
|
|
|
void CallBackInternalRelease () ;
|
|
|
|
HRESULT Begin_Interface_Context (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
IUnknown *a_InternalServerInterface ,
|
|
REFIID a_InternalInterfaceIdentifier ,
|
|
DWORD a_InternalProxyIndex ,
|
|
DWORD a_ProcessIdentifier ,
|
|
HANDLE &a_IdentifyToken ,
|
|
BOOL &a_Impersonating ,
|
|
IUnknown *&a_OldContext ,
|
|
IServerSecurity *&a_OldSecurity ,
|
|
BOOL &a_IsProxy ,
|
|
IUnknown *&a_Interface ,
|
|
BOOL &a_Revert ,
|
|
IUnknown *&a_Proxy ,
|
|
IWbemContext *a_Context = NULL
|
|
) ;
|
|
|
|
HRESULT End_Interface_Context (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
IUnknown *a_InternalServerInterface ,
|
|
REFIID a_InternalInterfaceIdentifier ,
|
|
DWORD a_InternalProxyIndex ,
|
|
DWORD a_ProcessIdentifier ,
|
|
HANDLE a_IdentifyToken ,
|
|
BOOL a_Impersonating ,
|
|
IUnknown *a_OldContext ,
|
|
IServerSecurity *a_OldSecurity ,
|
|
BOOL a_IsProxy ,
|
|
IUnknown *a_Interface ,
|
|
BOOL a_Revert ,
|
|
IUnknown *a_Proxy
|
|
) ;
|
|
|
|
HRESULT Begin_Interface (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
IUnknown *a_InternalServerInterface ,
|
|
REFIID a_InternalInterfaceIdentifier ,
|
|
DWORD a_InternalProxyIndex ,
|
|
DWORD a_ProcessIdentifier ,
|
|
HANDLE &a_IdentifyToken ,
|
|
BOOL &a_Impersonating ,
|
|
IUnknown *&a_OldContext ,
|
|
IServerSecurity *&a_OldSecurity ,
|
|
BOOL &a_IsProxy ,
|
|
IUnknown *&a_Interface ,
|
|
BOOL &a_Revert ,
|
|
IUnknown *&a_Proxy ,
|
|
IWbemContext *a_Context = NULL
|
|
) ;
|
|
|
|
HRESULT End_Interface (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
IUnknown *a_InternalServerInterface ,
|
|
REFIID a_InternalInterfaceIdentifier ,
|
|
DWORD a_InternalProxyIndex ,
|
|
DWORD a_ProcessIdentifier ,
|
|
HANDLE a_IdentifyToken ,
|
|
BOOL a_Impersonating ,
|
|
IUnknown *a_OldContext ,
|
|
IServerSecurity *a_OldSecurity ,
|
|
BOOL a_IsProxy ,
|
|
IUnknown *a_Interface ,
|
|
BOOL a_Revert ,
|
|
IUnknown *a_Proxy
|
|
) ;
|
|
|
|
public:
|
|
|
|
CInterceptor_IWbemProvider (
|
|
|
|
WmiAllocator &a_Allocator ,
|
|
CWbemGlobal_IWmiProviderController *a_Controller ,
|
|
const ProviderCacheKey &a_Key ,
|
|
const ULONG &a_Period ,
|
|
IWbemContext *a_InitializationContext ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration
|
|
) ;
|
|
|
|
~CInterceptor_IWbemProvider () ;
|
|
|
|
InternalQuotaInterface *GetQuota ()
|
|
{
|
|
return m_Quota ;
|
|
}
|
|
|
|
void SetResumed ( LONG a_Resumed )
|
|
{
|
|
if ( a_Resumed )
|
|
{
|
|
InterlockedExchange ( & m_Resumed , 1 ) ;
|
|
}
|
|
else
|
|
{
|
|
InterlockedExchange ( & m_Resumed , 0 ) ;
|
|
}
|
|
}
|
|
|
|
LONG GetResumed ()
|
|
{
|
|
return m_Resumed ;
|
|
}
|
|
|
|
HRESULT SetProvider ( _IWmiProviderHost *a_Host , IUnknown *a_Unknown ) ;
|
|
|
|
HRESULT SetInitialized ( HRESULT a_InitializeResult ) ;
|
|
|
|
HRESULT IsIndependant ( IWbemContext *a_Context ) ;
|
|
|
|
public:
|
|
|
|
//Non-delegating object IUnknown
|
|
|
|
STDMETHODIMP QueryInterface ( REFIID , LPVOID FAR * ) ;
|
|
STDMETHODIMP_( ULONG ) AddRef () ;
|
|
STDMETHODIMP_( ULONG ) Release () ;
|
|
|
|
/* IWbemServices methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE OpenNamespace (
|
|
|
|
const BSTR a_Namespace ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemServices **a_Service ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CancelAsyncCall (
|
|
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE QueryObjectSink (
|
|
|
|
long a_Flags ,
|
|
IWbemObjectSink **a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetObject (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject **a_Object ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetObjectAsync (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutClass (
|
|
|
|
IWbemClassObject *a_Object ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutClassAsync (
|
|
|
|
IWbemClassObject *a_Object ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteClass (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteClassAsync (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateClassEnum (
|
|
|
|
const BSTR a_Superclass ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateClassEnumAsync (
|
|
|
|
const BSTR a_Superclass ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutInstance (
|
|
|
|
IWbemClassObject *a_Instance ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutInstanceAsync (
|
|
|
|
IWbemClassObject *a_Instance ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteInstance (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteInstanceAsync (
|
|
|
|
const BSTR a_ObjectPath,
|
|
long a_Flags,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateInstanceEnum (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateInstanceEnumAsync (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecQuery (
|
|
|
|
const BSTR a_QueryLanguage,
|
|
const BSTR a_Query,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecQueryAsync (
|
|
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecNotificationQuery (
|
|
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecNotificationQueryAsync (
|
|
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecMethod (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
const BSTR a_MethodName ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_InParams ,
|
|
IWbemClassObject **a_OutParams ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecMethodAsync (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
const BSTR a_MethodName ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_InParams ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
/* IWbemPropertyProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE GetProperty (
|
|
|
|
long a_Flags ,
|
|
const BSTR a_Locale ,
|
|
const BSTR a_ClassMapping ,
|
|
const BSTR a_InstanceMapping ,
|
|
const BSTR a_PropertyMapping ,
|
|
VARIANT *a_Value
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutProperty (
|
|
|
|
long a_Flags ,
|
|
const BSTR a_Locale ,
|
|
const BSTR a_ClassMapping ,
|
|
const BSTR a_InstanceMapping ,
|
|
const BSTR a_PropertyMapping ,
|
|
const VARIANT *a_Value
|
|
) ;
|
|
|
|
/* IWbemEventProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE ProvideEvents (
|
|
|
|
IWbemObjectSink *a_Sink ,
|
|
long a_Flags
|
|
) ;
|
|
|
|
/* IWbemEventProviderQuerySink */
|
|
|
|
HRESULT STDMETHODCALLTYPE NewQuery (
|
|
|
|
unsigned long a_Id ,
|
|
WBEM_WSTR a_QueryLanguage ,
|
|
WBEM_WSTR a_Query
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE CancelQuery (
|
|
|
|
unsigned long a_Id
|
|
) ;
|
|
|
|
/* IWbemEventProviderSecurity */
|
|
|
|
HRESULT STDMETHODCALLTYPE AccessCheck (
|
|
|
|
WBEM_CWSTR a_QueryLanguage ,
|
|
WBEM_CWSTR a_Query ,
|
|
long a_SidLength ,
|
|
const BYTE *a_Sid
|
|
) ;
|
|
|
|
/* IWbemEventConsumerProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE FindConsumer (
|
|
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
IWbemUnboundObjectSink **a_Consumer
|
|
);
|
|
|
|
/* IWbemEventConsumerProviderEx */
|
|
|
|
HRESULT STDMETHODCALLTYPE ValidateSubscription (
|
|
|
|
IWbemClassObject *a_LogicalConsumer
|
|
) ;
|
|
|
|
/* IWbemUnboundObjectSink */
|
|
|
|
HRESULT STDMETHODCALLTYPE IndicateToConsumer (
|
|
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
long a_ObjectCount ,
|
|
IWbemClassObject **a_Objects
|
|
) ;
|
|
|
|
/* IWbemHiPerfProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE QueryInstances (
|
|
|
|
IWbemServices *a_Namespace ,
|
|
WCHAR *a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateRefresher (
|
|
|
|
IWbemServices *a_Namespace ,
|
|
long a_Flags ,
|
|
IWbemRefresher **a_Refresher
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateRefreshableObject (
|
|
|
|
IWbemServices *a_Namespace ,
|
|
IWbemObjectAccess *a_Template ,
|
|
IWbemRefresher *a_Refresher ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectAccess **a_Refreshable ,
|
|
long *a_Id
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE StopRefreshing (
|
|
|
|
IWbemRefresher *a_Refresher ,
|
|
long a_Id ,
|
|
long a_Flags
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateRefreshableEnum (
|
|
|
|
IWbemServices *a_Namespace ,
|
|
LPCWSTR a_Class ,
|
|
IWbemRefresher *a_Refresher ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemHiPerfEnum *a_HiPerfEnum ,
|
|
long *a_Id
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetObjects (
|
|
|
|
IWbemServices *a_Namespace ,
|
|
long a_ObjectCount ,
|
|
IWbemObjectAccess **a_Objects ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Call (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
const BSTR a_Method,
|
|
IWbemClassObject *a_InParams,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
/* _IWmiProviderConfiguration methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE Get (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Set (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Provider ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
IWbemClassObject *a_OldObject ,
|
|
IWbemClassObject *a_NewObject
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Deleted (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Provider ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Enumerate (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Class ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Provider ,
|
|
ULONG a_MilliSeconds
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Call (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
LPCWSTR a_Method,
|
|
IWbemClassObject *a_InParams,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Query (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
WBEM_PROVIDER_CONFIGURATION_CLASS_ID a_ClassIdentifier ,
|
|
WBEM_PROVIDER_CONFIGURATION_PROPERTY_ID a_PropertyIdentifier ,
|
|
VARIANT *a_Value
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Unload (
|
|
|
|
long a_Flags ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Load (
|
|
|
|
long a_Flags ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ForceReload () ;
|
|
|
|
/* _IWmiProviderQuota */
|
|
|
|
HRESULT STDMETHODCALLTYPE Violation (
|
|
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
/* _IWmiProviderCache */
|
|
|
|
HRESULT STDMETHODCALLTYPE Expel (
|
|
|
|
long a_Flags ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
|
|
/* IWbemProviderInit methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE Initialize (
|
|
|
|
LPWSTR a_User ,
|
|
LONG a_Flags ,
|
|
LPWSTR a_Namespace ,
|
|
LPWSTR a_Locale ,
|
|
IWbemServices *a_Core ,
|
|
IWbemContext *a_Context ,
|
|
IWbemProviderInitSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Initialize (
|
|
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
GUID *a_TransactionIdentifier,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Namespace ,
|
|
IWbemServices *a_Repository ,
|
|
IWbemServices *a_Service ,
|
|
IWbemProviderInitSink *a_Sink
|
|
)
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE WaitProvider ( IWbemContext *a_Context , ULONG a_Timeout ) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetInitializeResult () ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetHosting ( ULONG *a_Value )
|
|
{
|
|
if ( a_Value )
|
|
{
|
|
*a_Value = m_Registration->GetHosting () ;
|
|
return S_OK ;
|
|
}
|
|
else
|
|
{
|
|
return WBEM_E_INVALID_PARAMETER ;
|
|
}
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE GetHostingGroup ( BSTR *a_Value )
|
|
{
|
|
if ( a_Value )
|
|
{
|
|
if ( m_Registration->GetHostingGroup () )
|
|
{
|
|
BSTR t_Value = SysAllocString ( m_Registration->GetHostingGroup () ) ;
|
|
*a_Value = t_Value ;
|
|
}
|
|
else
|
|
{
|
|
*a_Value = NULL ;
|
|
}
|
|
|
|
return S_OK ;
|
|
}
|
|
else
|
|
{
|
|
return WBEM_E_INVALID_PARAMETER ;
|
|
}
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE IsInternal ( BOOL *a_Value )
|
|
{
|
|
if ( a_Value )
|
|
{
|
|
*a_Value = FALSE ;
|
|
return S_OK ;
|
|
}
|
|
else
|
|
{
|
|
return WBEM_E_INVALID_PARAMETER ;
|
|
}
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE IsPerUserInitialization ( BOOL *a_Value )
|
|
{
|
|
if ( a_Value )
|
|
{
|
|
*a_Value = m_Registration->PerUserInitialization () ;
|
|
return S_OK ;
|
|
}
|
|
else
|
|
{
|
|
return WBEM_E_INVALID_PARAMETER ;
|
|
}
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE IsPerLocaleInitialization ( BOOL *a_Value )
|
|
{
|
|
if ( a_Value )
|
|
{
|
|
*a_Value = m_Registration->PerLocaleInitialization () ;
|
|
return S_OK ;
|
|
}
|
|
else
|
|
{
|
|
return WBEM_E_INVALID_PARAMETER ;
|
|
}
|
|
}
|
|
|
|
// _IWmiProviderStack
|
|
|
|
HRESULT STDMETHODCALLTYPE DownLevel (
|
|
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
REFIID a_Riid,
|
|
void **a_Interface
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE AbnormalShutdown () ;
|
|
|
|
// IWmi_UnInitialize members
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
LONG a_Flags ,
|
|
ULONG a_MaxMilliSeconds ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CInterceptor_IWbemSyncUnboundObjectSink : public IWbemUnboundObjectSink ,
|
|
public Internal_IWbemUnboundObjectSink ,
|
|
public _IWmiProviderSite ,
|
|
public IWbemShutdown ,
|
|
public VoidPointerContainerElement
|
|
{
|
|
private:
|
|
|
|
WmiAllocator &m_Allocator ;
|
|
CServerObject_ProviderRegistrationV1 *m_Registration ;
|
|
|
|
IUnknown *m_Unknown ;
|
|
IWbemUnboundObjectSink *m_Provider_IWbemUnboundObjectSink ;
|
|
|
|
ProxyContainer m_ProxyContainer ;
|
|
|
|
protected:
|
|
|
|
HRESULT Begin_Interface_Consumer (
|
|
|
|
bool a_Identify ,
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
BOOL &a_Impersonating ,
|
|
IUnknown *&a_OldContext ,
|
|
IServerSecurity *&a_OldSecurity ,
|
|
BOOL &a_IsProxy ,
|
|
IUnknown *&a_Interface ,
|
|
BOOL &a_Revert ,
|
|
IUnknown *&a_Proxy
|
|
) ;
|
|
|
|
HRESULT End_Interface_Consumer (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
BOOL a_Impersonating ,
|
|
IUnknown *a_OldContext ,
|
|
IServerSecurity *a_OldSecurity ,
|
|
BOOL a_IsProxy ,
|
|
IUnknown *a_Interface ,
|
|
BOOL a_Revert ,
|
|
IUnknown *a_Proxy
|
|
) ;
|
|
|
|
HRESULT InternalEx_IndicateToConsumer (
|
|
|
|
bool a_Identify ,
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
long a_ObjectCount ,
|
|
IWbemClassObject **a_Objects
|
|
) ;
|
|
|
|
public:
|
|
|
|
CInterceptor_IWbemSyncUnboundObjectSink (
|
|
|
|
WmiAllocator &a_Allocator ,
|
|
IUnknown *a_ServerSideProvider ,
|
|
CWbemGlobal_IWmiObjectSinkController *a_Controller ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration
|
|
) ;
|
|
|
|
~CInterceptor_IWbemSyncUnboundObjectSink () ;
|
|
|
|
HRESULT Initialize () ;
|
|
|
|
public:
|
|
|
|
STDMETHODIMP QueryInterface (
|
|
|
|
REFIID iid ,
|
|
LPVOID FAR *iplpv
|
|
) ;
|
|
|
|
STDMETHODIMP_( ULONG ) AddRef () ;
|
|
|
|
STDMETHODIMP_( ULONG ) Release () ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_IndicateToConsumer (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
long a_ObjectCount ,
|
|
IWbemClassObject **a_Objects
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE IndicateToConsumer (
|
|
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
long a_ObjectCount ,
|
|
IWbemClassObject **a_Objects
|
|
) ;
|
|
|
|
/* _IWmiProviderSite */
|
|
|
|
HRESULT STDMETHODCALLTYPE GetSite ( DWORD *a_ProcessIdentifier ) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE SetContainer ( IUnknown *a_Container ) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
LONG a_Flags ,
|
|
ULONG a_MaxMilliSeconds ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CInterceptor_IWbemSyncProvider : public IWbemServices ,
|
|
public IWbemPropertyProvider ,
|
|
public IWbemEventProvider ,
|
|
public IWbemEventProviderQuerySink ,
|
|
public IWbemEventProviderSecurity ,
|
|
public IWbemProviderIdentity ,
|
|
public IWbemEventConsumerProviderEx ,
|
|
public IWbemUnboundObjectSink ,
|
|
public IWbemHiPerfProvider ,
|
|
|
|
public Internal_IWbemServices ,
|
|
public Internal_IWbemPropertyProvider ,
|
|
public Internal_IWbemEventProvider ,
|
|
public Internal_IWbemEventProviderQuerySink ,
|
|
public Internal_IWbemEventProviderSecurity ,
|
|
public Internal_IWbemEventConsumerProviderEx ,
|
|
public Internal_IWbemUnboundObjectSink ,
|
|
|
|
|
|
public _IWmiProviderInitialize ,
|
|
public IWbemShutdown ,
|
|
public _IWmiProviderQuota ,
|
|
public _IWmiProviderSite ,
|
|
|
|
public _IWmiProviderConfiguration ,
|
|
public Internal_IWmiProviderConfiguration ,
|
|
|
|
public SyncProviderContainerElement ,
|
|
public CWbemGlobal_IWmiObjectSinkController
|
|
{
|
|
private:
|
|
|
|
IUnknown *m_Unknown ;
|
|
IWbemServices *m_Provider_IWbemServices ;
|
|
IWbemPropertyProvider *m_Provider_IWbemPropertyProvider ;
|
|
IWbemHiPerfProvider *m_Provider_IWbemHiPerfProvider ;
|
|
IWbemEventProvider *m_Provider_IWbemEventProvider ;
|
|
IWbemEventProviderQuerySink *m_Provider_IWbemEventProviderQuerySink ;
|
|
IWbemEventProviderSecurity *m_Provider_IWbemEventProviderSecurity ;
|
|
IWbemProviderIdentity *m_Provider_IWbemProviderIdentity ;
|
|
IWbemEventConsumerProvider *m_Provider_IWbemEventConsumerProvider ;
|
|
IWbemEventConsumerProviderEx *m_Provider_IWbemEventConsumerProviderEx ;
|
|
IWbemUnboundObjectSink *m_Provider_IWbemUnboundObjectSink ;
|
|
_IWmiProviderQuota *m_Quota ;
|
|
|
|
IWbemServices *m_CoreStub ;
|
|
|
|
IWbemClassObject *m_ExtendedStatusObject ;
|
|
|
|
WmiAllocator &m_Allocator ;
|
|
|
|
ProxyContainer m_ProxyContainer ;
|
|
|
|
LONG m_Initialized ;
|
|
HRESULT m_InitializeResult ;
|
|
HANDLE m_InitializedEvent ;
|
|
IWbemContext *m_InitializationContext ;
|
|
|
|
public:
|
|
|
|
HRESULT SetInitialized ( HRESULT a_InitializeResult ) ;
|
|
|
|
public:
|
|
|
|
CServerObject_ProviderRegistrationV1 *m_Registration ;
|
|
BSTR m_Locale ;
|
|
BSTR m_User ;
|
|
BSTR m_Namespace ;
|
|
BSTR m_TransactionIdentifier ;
|
|
|
|
UINT64 m_ProviderOperation_GetObjectAsync ;
|
|
UINT64 m_ProviderOperation_PutClassAsync ;
|
|
UINT64 m_ProviderOperation_DeleteClassAsync ;
|
|
UINT64 m_ProviderOperation_CreateClassEnumAsync ;
|
|
UINT64 m_ProviderOperation_PutInstanceAsync ;
|
|
UINT64 m_ProviderOperation_DeleteInstanceAsync ;
|
|
UINT64 m_ProviderOperation_CreateInstanceEnumAsync ;
|
|
UINT64 m_ProviderOperation_ExecQueryAsync ;
|
|
UINT64 m_ProviderOperation_ExecNotificationQueryAsync ;
|
|
UINT64 m_ProviderOperation_ExecMethodAsync ;
|
|
|
|
UINT64 m_ProviderOperation_Begin ;
|
|
UINT64 m_ProviderOperation_Rollback ;
|
|
UINT64 m_ProviderOperation_Commit ;
|
|
UINT64 m_ProviderOperation_QueryState ;
|
|
|
|
UINT64 m_ProviderOperation_QueryInstances ;
|
|
UINT64 m_ProviderOperation_CreateRefresher ;
|
|
UINT64 m_ProviderOperation_CreateRefreshableObject ;
|
|
UINT64 m_ProviderOperation_StopRefreshing ;
|
|
UINT64 m_ProviderOperation_CreateRefreshableEnum ;
|
|
UINT64 m_ProviderOperation_GetObjects ;
|
|
|
|
UINT64 m_ProviderOperation_GetProperty ;
|
|
UINT64 m_ProviderOperation_PutProperty ;
|
|
|
|
UINT64 m_ProviderOperation_ProvideEvents ;
|
|
UINT64 m_ProviderOperation_NewQuery ;
|
|
UINT64 m_ProviderOperation_CancelQuery ;
|
|
UINT64 m_ProviderOperation_AccessCheck ;
|
|
UINT64 m_ProviderOperation_SetRegistrationObject ;
|
|
UINT64 m_ProviderOperation_FindConsumer ;
|
|
UINT64 m_ProviderOperation_ValidateSubscription ;
|
|
|
|
void Increment_ProviderOperation_GetObjectAsync () { m_ProviderOperation_GetObjectAsync ++ ; }
|
|
void Increment_ProviderOperation_PutClassAsync () { m_ProviderOperation_PutClassAsync ++ ; }
|
|
void Increment_ProviderOperation_DeleteClassAsync () { m_ProviderOperation_DeleteClassAsync ++ ; }
|
|
void Increment_ProviderOperation_CreateClassEnumAsync () { m_ProviderOperation_CreateClassEnumAsync ++ ; }
|
|
void Increment_ProviderOperation_PutInstanceAsync () { m_ProviderOperation_PutInstanceAsync ++ ; }
|
|
void Increment_ProviderOperation_DeleteInstanceAsync () { m_ProviderOperation_DeleteInstanceAsync ++ ; }
|
|
void Increment_ProviderOperation_CreateInstanceEnumAsync () { m_ProviderOperation_CreateInstanceEnumAsync ++ ; }
|
|
void Increment_ProviderOperation_ExecQueryAsync () { m_ProviderOperation_ExecQueryAsync ++ ; }
|
|
void Increment_ProviderOperation_ExecNotificationQueryAsync () { m_ProviderOperation_ExecNotificationQueryAsync ++ ; }
|
|
void Increment_ProviderOperation_ExecMethodAsync () { m_ProviderOperation_ExecMethodAsync ++ ; }
|
|
|
|
void Increment_ProviderOperation_Begin () { m_ProviderOperation_Begin ++ ; }
|
|
void Increment_ProviderOperation_Rollback () { m_ProviderOperation_Rollback ++ ; }
|
|
void Increment_ProviderOperation_Commit () { m_ProviderOperation_Commit ++ ; }
|
|
void Increment_ProviderOperation_QueryState () { m_ProviderOperation_QueryState ++ ; }
|
|
|
|
void Increment_ProviderOperation_QueryInstances () { m_ProviderOperation_QueryInstances ++ ; }
|
|
void Increment_ProviderOperation_CreateRefresher () { m_ProviderOperation_CreateRefresher ++ ; }
|
|
void Increment_ProviderOperation_CreateRefreshableObject () { m_ProviderOperation_CreateRefreshableObject ++ ; }
|
|
void Increment_ProviderOperation_StopRefreshing () { m_ProviderOperation_StopRefreshing ++ ; }
|
|
void Increment_ProviderOperation_CreateRefreshableEnum () { m_ProviderOperation_CreateRefreshableEnum ++ ; }
|
|
void Increment_ProviderOperation_GetObjects () { m_ProviderOperation_GetObjects ++ ; }
|
|
|
|
void Increment_ProviderOperation_GetProperty () { m_ProviderOperation_GetProperty ++ ; }
|
|
void Increment_ProviderOperation_PutProperty () { m_ProviderOperation_PutProperty ++ ; }
|
|
|
|
void Increment_ProviderOperation_ProvideEvents () { m_ProviderOperation_ProvideEvents ++ ; }
|
|
void Increment_ProviderOperation_NewQuery () { m_ProviderOperation_NewQuery ++ ; }
|
|
void Increment_ProviderOperation_CancelQuery () { m_ProviderOperation_CancelQuery ++ ; }
|
|
void Increment_ProviderOperation_AccessCheck () { m_ProviderOperation_AccessCheck ++ ; }
|
|
void Increment_ProviderOperation_SetRegistrationObject () { m_ProviderOperation_SetRegistrationObject ++ ; }
|
|
void Increment_ProviderOperation_FindConsumer () { m_ProviderOperation_FindConsumer ++ ; }
|
|
void Increment_ProviderOperation_ValidateSubscription () { m_ProviderOperation_ValidateSubscription ++ ; }
|
|
|
|
UINT64 Get_ProviderOperation_GetObjectAsync () { return m_ProviderOperation_GetObjectAsync ; }
|
|
UINT64 Get_ProviderOperation_PutClassAsync () { return m_ProviderOperation_PutClassAsync ; }
|
|
UINT64 Get_ProviderOperation_DeleteClassAsync () { return m_ProviderOperation_DeleteClassAsync ; }
|
|
UINT64 Get_ProviderOperation_CreateClassEnumAsync () { return m_ProviderOperation_CreateClassEnumAsync ; }
|
|
UINT64 Get_ProviderOperation_PutInstanceAsync () { return m_ProviderOperation_PutInstanceAsync ; }
|
|
UINT64 Get_ProviderOperation_DeleteInstanceAsync () { return m_ProviderOperation_DeleteInstanceAsync ; }
|
|
UINT64 Get_ProviderOperation_CreateInstanceEnumAsync () { return m_ProviderOperation_CreateInstanceEnumAsync ; }
|
|
UINT64 Get_ProviderOperation_ExecQueryAsync () { return m_ProviderOperation_ExecQueryAsync ; }
|
|
UINT64 Get_ProviderOperation_ExecNotificationQueryAsync () { return m_ProviderOperation_ExecNotificationQueryAsync ; }
|
|
UINT64 Get_ProviderOperation_ExecMethodAsync () { return m_ProviderOperation_ExecMethodAsync ; }
|
|
|
|
UINT64 Get_ProviderOperation_Begin () { return m_ProviderOperation_Begin ; }
|
|
UINT64 Get_ProviderOperation_Rollback () { return m_ProviderOperation_Rollback ; }
|
|
UINT64 Get_ProviderOperation_Commit () { return m_ProviderOperation_Commit ; }
|
|
UINT64 Get_ProviderOperation_QueryState () { return m_ProviderOperation_QueryState ; }
|
|
|
|
UINT64 Get_ProviderOperation_QueryInstances () { return m_ProviderOperation_QueryInstances ; }
|
|
UINT64 Get_ProviderOperation_CreateRefresher () { return m_ProviderOperation_CreateRefresher ; }
|
|
UINT64 Get_ProviderOperation_CreateRefreshableObject () { return m_ProviderOperation_CreateRefreshableObject ; }
|
|
UINT64 Get_ProviderOperation_StopRefreshing () { return m_ProviderOperation_StopRefreshing ; }
|
|
UINT64 Get_ProviderOperation_CreateRefreshableEnum () { return m_ProviderOperation_CreateRefreshableEnum ; }
|
|
UINT64 Get_ProviderOperation_GetObjects () { return m_ProviderOperation_GetObjects ; }
|
|
|
|
UINT64 Get_ProviderOperation_GetProperty () { return m_ProviderOperation_GetProperty ; }
|
|
UINT64 Get_ProviderOperation_PutProperty () { return m_ProviderOperation_PutProperty ; }
|
|
|
|
UINT64 Get_ProviderOperation_ProvideEvents () { return m_ProviderOperation_ProvideEvents ; }
|
|
UINT64 Get_ProviderOperation_NewQuery () { return m_ProviderOperation_NewQuery ; }
|
|
UINT64 Get_ProviderOperation_CancelQuery () { return m_ProviderOperation_CancelQuery ; }
|
|
UINT64 Get_ProviderOperation_AccessCheck () { return m_ProviderOperation_AccessCheck ; }
|
|
UINT64 Get_ProviderOperation_SetRegistrationObject () { return m_ProviderOperation_SetRegistrationObject ; }
|
|
UINT64 Get_ProviderOperation_FindConsumer () { return m_ProviderOperation_FindConsumer ; }
|
|
UINT64 Get_ProviderOperation_ValidateSubscription () { return m_ProviderOperation_ValidateSubscription ; }
|
|
|
|
private:
|
|
|
|
HRESULT SetStatus (
|
|
|
|
LPWSTR a_Operation ,
|
|
LPWSTR a_Parameters ,
|
|
LPWSTR a_Description ,
|
|
HRESULT a_Result ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT Begin_IWbemServices (
|
|
|
|
BOOL &a_Impersonating ,
|
|
IUnknown *&a_OldContext ,
|
|
IServerSecurity *&a_OldSecurity ,
|
|
BOOL &a_IsProxy ,
|
|
IWbemServices *&a_Interface ,
|
|
BOOL &a_Revert ,
|
|
IUnknown *&a_Proxy
|
|
) ;
|
|
|
|
HRESULT End_IWbemServices (
|
|
|
|
BOOL a_Impersonating ,
|
|
IUnknown *a_OldContext ,
|
|
IServerSecurity *a_OldSecurity ,
|
|
BOOL a_IsProxy ,
|
|
IWbemServices *a_Interface ,
|
|
BOOL a_Revert ,
|
|
IUnknown *a_Proxy
|
|
) ;
|
|
|
|
HRESULT Begin_Interface (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
BOOL &a_Impersonating ,
|
|
IUnknown *&a_OldContext ,
|
|
IServerSecurity *&a_OldSecurity ,
|
|
BOOL &a_IsProxy ,
|
|
IUnknown *&a_Interface ,
|
|
BOOL &a_Revert ,
|
|
IUnknown *&a_Proxy
|
|
) ;
|
|
|
|
HRESULT End_Interface (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
BOOL a_Impersonating ,
|
|
IUnknown *a_OldContext ,
|
|
IServerSecurity *a_OldSecurity ,
|
|
BOOL a_IsProxy ,
|
|
IUnknown *a_Interface ,
|
|
BOOL a_Revert ,
|
|
IUnknown *a_Proxy
|
|
) ;
|
|
|
|
HRESULT Begin_Interface_Events (
|
|
|
|
bool a_Identify ,
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
BOOL &a_Impersonating ,
|
|
IUnknown *&a_OldContext ,
|
|
IServerSecurity *&a_OldSecurity ,
|
|
BOOL &a_IsProxy ,
|
|
IUnknown *&a_Interface ,
|
|
BOOL &a_Revert ,
|
|
IUnknown *&a_Proxy
|
|
) ;
|
|
|
|
HRESULT End_Interface_Events (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
BOOL a_Impersonating ,
|
|
IUnknown *a_OldContext ,
|
|
IServerSecurity *a_OldSecurity ,
|
|
BOOL a_IsProxy ,
|
|
IUnknown *a_Interface ,
|
|
BOOL a_Revert ,
|
|
IUnknown *a_Proxy
|
|
) ;
|
|
|
|
HRESULT AdjustGetContext (
|
|
|
|
IWbemContext *a_Context
|
|
) ;
|
|
|
|
HRESULT Helper_HiPerfGetObjectAsync (
|
|
|
|
IWbemHiPerfProvider *a_HighPerformanceProvider ,
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT Helper_GetObjectAsync (
|
|
|
|
BOOL a_IsProxy ,
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink ,
|
|
IWbemServices *a_Service
|
|
) ;
|
|
|
|
HRESULT Helper_PutClassAsync (
|
|
|
|
BOOL a_IsProxy ,
|
|
IWbemClassObject *a_Object ,
|
|
long a_Flags ,
|
|
IWbemContext FAR *a_Context ,
|
|
IWbemObjectSink *a_Sink ,
|
|
IWbemServices *a_Service
|
|
) ;
|
|
|
|
HRESULT Helper_DeleteClassAsync (
|
|
|
|
BOOL a_IsProxy ,
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext FAR *a_Context ,
|
|
IWbemObjectSink *a_Sink ,
|
|
IWbemServices *a_Service
|
|
) ;
|
|
|
|
HRESULT Helper_CreateClassEnumAsync (
|
|
|
|
BOOL a_IsProxy ,
|
|
const BSTR a_SuperClass ,
|
|
long a_Flags ,
|
|
IWbemContext FAR *a_Context ,
|
|
IWbemObjectSink *a_Sink ,
|
|
IWbemServices *a_Service
|
|
) ;
|
|
|
|
HRESULT Helper_PutInstanceAsync (
|
|
|
|
BOOL a_IsProxy ,
|
|
IWbemClassObject *a_Instance ,
|
|
long a_Flags ,
|
|
IWbemContext FAR *a_Context ,
|
|
IWbemObjectSink *a_Sink ,
|
|
IWbemServices *a_Service
|
|
) ;
|
|
|
|
HRESULT Helper_DeleteInstanceAsync (
|
|
|
|
BOOL a_IsProxy ,
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext FAR *a_Context ,
|
|
IWbemObjectSink *a_Sink ,
|
|
IWbemServices *a_Service
|
|
) ;
|
|
|
|
HRESULT Helper_CreateInstanceEnumAsync (
|
|
|
|
BOOL a_IsProxy ,
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink ,
|
|
IWbemServices *a_Service
|
|
) ;
|
|
|
|
HRESULT Helper_QueryInstancesAsync (
|
|
|
|
IWbemHiPerfProvider *a_PerformanceProvider ,
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT Helper_ExecQueryAsync (
|
|
|
|
BOOL a_IsProxy ,
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query,
|
|
long a_Flags ,
|
|
IWbemContext FAR *a_Context ,
|
|
IWbemObjectSink *a_Sink ,
|
|
IWbemServices *a_Service
|
|
) ;
|
|
|
|
HRESULT Helper_ExecMethodAsync (
|
|
|
|
BOOL a_IsProxy ,
|
|
const BSTR a_ObjectPath ,
|
|
const BSTR a_MethodName ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_InParams ,
|
|
IWbemObjectSink *a_Sink ,
|
|
IWbemServices *a_Service
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE InternalEx_ProvideEvents (
|
|
|
|
bool a_Identify ,
|
|
IWbemObjectSink *a_Sink ,
|
|
long a_Flags
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE InternalEx_NewQuery (
|
|
|
|
bool a_Identify ,
|
|
unsigned long a_Id ,
|
|
WBEM_WSTR a_QueryLanguage ,
|
|
WBEM_WSTR a_Query
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE InternalEx_CancelQuery (
|
|
|
|
bool a_Identify ,
|
|
unsigned long a_Id
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE InternalEx_AccessCheck (
|
|
|
|
bool a_Identify ,
|
|
WBEM_CWSTR a_QueryLanguage ,
|
|
WBEM_CWSTR a_Query ,
|
|
long a_SidLength ,
|
|
const BYTE *a_Sid
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE InternalEx_FindConsumer (
|
|
|
|
bool a_Identify ,
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
IWbemUnboundObjectSink **a_Consumer
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE InternalEx_ValidateSubscription (
|
|
|
|
bool a_Identify ,
|
|
IWbemClassObject *a_LogicalConsumer
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE InternalEx_IndicateToConsumer (
|
|
|
|
bool a_Identify ,
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
long a_ObjectCount ,
|
|
IWbemClassObject **a_Objects
|
|
) ;
|
|
|
|
public:
|
|
|
|
CInterceptor_IWbemSyncProvider (
|
|
|
|
WmiAllocator &a_Allocator ,
|
|
IUnknown *a_ServerSideUnknown ,
|
|
IWbemServices *a_CoreStub ,
|
|
CWbemGlobal_IWbemSyncProviderController *a_Controller ,
|
|
IWbemContext *a_InitializationContext ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration ,
|
|
GUID &a_Guid
|
|
) ;
|
|
|
|
~CInterceptor_IWbemSyncProvider () ;
|
|
|
|
public:
|
|
|
|
//Non-delegating object IUnknown
|
|
|
|
STDMETHODIMP QueryInterface ( REFIID , LPVOID FAR * ) ;
|
|
STDMETHODIMP_( ULONG ) AddRef () ;
|
|
STDMETHODIMP_( ULONG ) Release () ;
|
|
|
|
/* IWbemServices methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE OpenNamespace (
|
|
|
|
const BSTR a_Namespace ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemServices **a_Service ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CancelAsyncCall (
|
|
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE QueryObjectSink (
|
|
|
|
long a_Flags ,
|
|
IWbemObjectSink **a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetObject (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject **ppObject ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetObjectAsync (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutClass (
|
|
|
|
IWbemClassObject *a_Object ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutClassAsync (
|
|
|
|
IWbemClassObject *a_Object ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteClass (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteClassAsync (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateClassEnum (
|
|
|
|
const BSTR a_Superclass ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateClassEnumAsync (
|
|
|
|
const BSTR a_Superclass ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutInstance (
|
|
|
|
IWbemClassObject *a_Instance ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutInstanceAsync (
|
|
|
|
IWbemClassObject *a_Instance ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteInstance (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteInstanceAsync (
|
|
|
|
const BSTR a_ObjectPath,
|
|
long a_Flags,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateInstanceEnum (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateInstanceEnumAsync (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecQuery (
|
|
|
|
const BSTR a_QueryLanguage,
|
|
const BSTR a_Query,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecQueryAsync (
|
|
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecNotificationQuery (
|
|
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecNotificationQueryAsync (
|
|
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecMethod (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
const BSTR a_MethodName ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_InParams ,
|
|
IWbemClassObject **a_OutParams ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecMethodAsync (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
const BSTR a_MethodName ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_InParams ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
/* IWbemPropertyProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE GetProperty (
|
|
|
|
long a_Flags ,
|
|
const BSTR a_Locale ,
|
|
const BSTR a_ClassMapping ,
|
|
const BSTR a_InstanceMapping ,
|
|
const BSTR a_PropertyMapping ,
|
|
VARIANT *a_Value
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutProperty (
|
|
|
|
long a_Flags ,
|
|
const BSTR a_Locale ,
|
|
const BSTR a_ClassMapping ,
|
|
const BSTR a_InstanceMapping ,
|
|
const BSTR a_PropertyMapping ,
|
|
const VARIANT *a_Value
|
|
) ;
|
|
|
|
/* IWbemEventProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE ProvideEvents (
|
|
|
|
IWbemObjectSink *a_Sink ,
|
|
long a_Flags
|
|
) ;
|
|
|
|
/* IWbemEventProviderQuerySink */
|
|
|
|
HRESULT STDMETHODCALLTYPE NewQuery (
|
|
|
|
unsigned long a_Id ,
|
|
WBEM_WSTR a_QueryLanguage ,
|
|
WBEM_WSTR a_Query
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE CancelQuery (
|
|
|
|
unsigned long a_Id
|
|
) ;
|
|
|
|
/* IWbemEventProviderSecurity */
|
|
|
|
HRESULT STDMETHODCALLTYPE AccessCheck (
|
|
|
|
WBEM_CWSTR a_QueryLanguage ,
|
|
WBEM_CWSTR a_Query ,
|
|
long a_SidLength ,
|
|
const BYTE *a_Sid
|
|
) ;
|
|
|
|
/* IWbemProviderIdentity */
|
|
|
|
HRESULT STDMETHODCALLTYPE SetRegistrationObject (
|
|
|
|
long a_Flags ,
|
|
IWbemClassObject *a_ProviderRegistration
|
|
) ;
|
|
|
|
/* IWbemEventConsumerProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE FindConsumer (
|
|
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
IWbemUnboundObjectSink **a_Consumer
|
|
);
|
|
|
|
/* IWbemEventConsumerProviderEx */
|
|
|
|
HRESULT STDMETHODCALLTYPE ValidateSubscription (
|
|
|
|
IWbemClassObject *a_LogicalConsumer
|
|
) ;
|
|
|
|
/* IWbemUnboundObjectSink */
|
|
|
|
HRESULT STDMETHODCALLTYPE IndicateToConsumer (
|
|
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
long a_ObjectCount ,
|
|
IWbemClassObject **a_Objects
|
|
) ;
|
|
|
|
/* IWbemHiPerfProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE QueryInstances (
|
|
|
|
IWbemServices *a_Namespace ,
|
|
WCHAR *a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateRefresher (
|
|
|
|
IWbemServices *a_Namespace ,
|
|
long a_Flags ,
|
|
IWbemRefresher **a_Refresher
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateRefreshableObject (
|
|
|
|
IWbemServices *a_Namespace ,
|
|
IWbemObjectAccess *a_Template ,
|
|
IWbemRefresher *a_Refresher ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectAccess **a_Refreshable ,
|
|
long *a_Id
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE StopRefreshing (
|
|
|
|
IWbemRefresher *a_Refresher ,
|
|
long a_Id ,
|
|
long a_Flags
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateRefreshableEnum (
|
|
|
|
IWbemServices *a_Namespace ,
|
|
LPCWSTR a_Class ,
|
|
IWbemRefresher *a_Refresher ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemHiPerfEnum *a_HiPerfEnum ,
|
|
long *a_Id
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetObjects (
|
|
|
|
IWbemServices *a_Namespace ,
|
|
long a_ObjectCount ,
|
|
IWbemObjectAccess **a_Objects ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
|
|
/* Internal_IWbemServices */
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_OpenNamespace (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_Namespace ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemServices **a_Service ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_CancelAsyncCall (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_QueryObjectSink (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
long a_Flags ,
|
|
IWbemObjectSink **a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_GetObject (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject **ppObject ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_GetObjectAsync (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_PutClass (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemClassObject *a_Object ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_PutClassAsync (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemClassObject *a_Object ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_DeleteClass (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_DeleteClassAsync (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_CreateClassEnum (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_Superclass ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_CreateClassEnumAsync (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_Superclass ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_PutInstance (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemClassObject *a_Instance ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_PutInstanceAsync (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemClassObject *a_Instance ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_DeleteInstance (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_DeleteInstanceAsync (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_ObjectPath,
|
|
long a_Flags,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_CreateInstanceEnum (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_CreateInstanceEnumAsync (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_ExecQuery (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_QueryLanguage,
|
|
const BSTR a_Query,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_ExecQueryAsync (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_ExecNotificationQuery (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_ExecNotificationQueryAsync (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_ExecMethod (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_ObjectPath ,
|
|
const BSTR a_MethodName ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_InParams ,
|
|
IWbemClassObject **a_OutParams ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_ExecMethodAsync (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
const BSTR a_ObjectPath ,
|
|
const BSTR a_MethodName ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_InParams ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
/* Internal_IWbemPropertyProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_GetProperty (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
long a_Flags ,
|
|
const BSTR a_Locale ,
|
|
const BSTR a_ClassMapping ,
|
|
const BSTR a_InstanceMapping ,
|
|
const BSTR a_PropertyMapping ,
|
|
VARIANT *a_Value
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_PutProperty (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
long a_Flags ,
|
|
const BSTR a_Locale ,
|
|
const BSTR a_ClassMapping ,
|
|
const BSTR a_InstanceMapping ,
|
|
const BSTR a_PropertyMapping ,
|
|
const VARIANT *a_Value
|
|
) ;
|
|
|
|
/* Internal_IWbemEventProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_ProvideEvents (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemObjectSink *a_Sink ,
|
|
long a_Flags
|
|
) ;
|
|
|
|
/* Internal_IWbemEventProviderQuerySink */
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_NewQuery (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
unsigned long a_Id ,
|
|
WBEM_WSTR a_QueryLanguage ,
|
|
WBEM_WSTR a_Query
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_CancelQuery (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
unsigned long a_Id
|
|
) ;
|
|
|
|
/* Internal_IWbemEventProviderSecurity */
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_AccessCheck (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
WBEM_CWSTR a_QueryLanguage ,
|
|
WBEM_CWSTR a_Query ,
|
|
long a_SidLength ,
|
|
const BYTE *a_Sid
|
|
) ;
|
|
|
|
/* Internal_IWbemEventConsumerProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_FindConsumer (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
IWbemUnboundObjectSink **a_Consumer
|
|
);
|
|
|
|
/* Internal_IWbemEventConsumerProviderEx */
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_ValidateSubscription (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemClassObject *a_LogicalConsumer
|
|
) ;
|
|
|
|
/* Internal_IWbemUnboundObjectSink */
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_IndicateToConsumer (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
long a_ObjectCount ,
|
|
IWbemClassObject **a_Objects
|
|
) ;
|
|
|
|
/* _IWmiProviderConfiguration methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE Get (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Set (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Provider ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
IWbemClassObject *a_OldObject ,
|
|
IWbemClassObject *a_NewObject
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Deleted (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Provider ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Enumerate (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Class ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Provider ,
|
|
ULONG a_MilliSeconds
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Call (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
LPCWSTR a_Method,
|
|
IWbemClassObject *a_InParams,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Query (
|
|
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
WBEM_PROVIDER_CONFIGURATION_CLASS_ID a_ClassIdentifier ,
|
|
WBEM_PROVIDER_CONFIGURATION_PROPERTY_ID a_PropertyIdentifier ,
|
|
VARIANT *a_Value
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ForceReload () ;
|
|
|
|
/* Internal_IWmiProviderConfiguration methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_Get (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_Set (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Provider ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
IWbemClassObject *a_OldObject ,
|
|
IWbemClassObject *a_NewObject
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_Deleted (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Provider ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_Enumerate (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Class ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_Shutdown (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Provider ,
|
|
ULONG a_MilliSeconds
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_Call (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
LPCWSTR a_Class ,
|
|
LPCWSTR a_Path ,
|
|
LPCWSTR a_Method,
|
|
IWbemClassObject *a_InParams,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Internal_Query (
|
|
|
|
WmiInternalContext a_InternalContext ,
|
|
IWbemServices *a_Service ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
WBEM_PROVIDER_CONFIGURATION_CLASS_ID a_ClassIdentifier ,
|
|
WBEM_PROVIDER_CONFIGURATION_PROPERTY_ID a_PropertyIdentifier ,
|
|
VARIANT *a_Value
|
|
) ;
|
|
|
|
|
|
/* _IWmiProviderQuota */
|
|
|
|
HRESULT STDMETHODCALLTYPE Violation (
|
|
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
/* _IWmiProviderSite */
|
|
|
|
HRESULT STDMETHODCALLTYPE GetSite ( DWORD *a_ProcessIdentifier ) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE SetContainer ( IUnknown *a_Container ) ;
|
|
|
|
/* IWbemProviderInit methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE Initialize (
|
|
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
GUID *a_TransactionIdentifier,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Namespace ,
|
|
IWbemServices *a_Repository ,
|
|
IWbemServices *a_Service ,
|
|
IWbemProviderInitSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE WaitProvider ( IWbemContext *a_Context , ULONG a_Timeout ) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetInitializeResult ()
|
|
{
|
|
return m_InitializeResult ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE GetHosting ( ULONG *a_Value )
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE GetHostingGroup ( BSTR *a_Value )
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE IsInternal ( BOOL *a_Value )
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE IsPerUserInitialization ( BOOL *a_Value )
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE IsPerLocaleInitialization ( BOOL *a_Value )
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
// IWmi_UnInitialize members
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
LONG a_Flags ,
|
|
ULONG a_MaxMilliSeconds ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CInterceptor_IWbemDecoupledProvider : public IWbemServices ,
|
|
public IWbemPropertyProvider ,
|
|
public IWbemEventProvider ,
|
|
public IWbemEventProviderQuerySink ,
|
|
public IWbemEventProviderSecurity ,
|
|
public IWbemProviderInit ,
|
|
public IWbemProviderIdentity ,
|
|
public IWbemEventConsumerProviderEx ,
|
|
public IWbemUnboundObjectSink ,
|
|
|
|
public IWbemShutdown ,
|
|
public _IWmiProviderInitialize ,
|
|
public _IWmiProviderAbnormalShutdown ,
|
|
public SyncProviderContainerElement ,
|
|
public CWbemGlobal_IWmiObjectSinkController
|
|
{
|
|
private:
|
|
|
|
IUnknown *m_Unknown ;
|
|
IWbemServices *m_Provider_IWbemServices ;
|
|
IWbemPropertyProvider *m_Provider_IWbemPropertyProvider ;
|
|
IWbemEventProvider *m_Provider_IWbemEventProvider ;
|
|
IWbemEventProviderQuerySink *m_Provider_IWbemEventProviderQuerySink ;
|
|
IWbemEventProviderSecurity *m_Provider_IWbemEventProviderSecurity ;
|
|
IWbemEventConsumerProvider *m_Provider_IWbemEventConsumerProvider ;
|
|
IWbemEventConsumerProviderEx *m_Provider_IWbemEventConsumerProviderEx ;
|
|
IWbemUnboundObjectSink *m_Provider_IWbemUnboundObjectSink ;
|
|
IWbemProviderInit *m_Provider_IWbemProviderInit ;
|
|
IWbemProviderIdentity *m_Provider_IWbemProviderIdentity ;
|
|
|
|
Internal_IWbemServices *m_Provider_Internal_IWbemServices ;
|
|
Internal_IWbemPropertyProvider *m_Provider_Internal_IWbemPropertyProvider ;
|
|
Internal_IWbemEventProvider *m_Provider_Internal_IWbemEventProvider ;
|
|
Internal_IWbemEventProviderQuerySink *m_Provider_Internal_IWbemEventProviderQuerySink ;
|
|
Internal_IWbemEventProviderSecurity *m_Provider_Internal_IWbemEventProviderSecurity ;
|
|
Internal_IWbemEventConsumerProvider *m_Provider_Internal_IWbemEventConsumerProvider ;
|
|
Internal_IWbemEventConsumerProviderEx *m_Provider_Internal_IWbemEventConsumerProviderEx ;
|
|
Internal_IWbemUnboundObjectSink *m_Provider_Internal_IWbemUnboundObjectSink ;
|
|
Internal_IWmiProviderConfiguration *m_Provider_Internal_IWmiProviderConfiguration ;
|
|
Internal_IWbemProviderInit *m_Provider_Internal_IWbemProviderInit ;
|
|
Internal_IWbemProviderIdentity *m_Provider_Internal_IWbemProviderIdentity ;
|
|
|
|
IWbemServices *m_CoreStub ;
|
|
|
|
IWbemClassObject *m_ExtendedStatusObject ;
|
|
|
|
WmiAllocator &m_Allocator ;
|
|
|
|
ProxyContainer m_ProxyContainer ;
|
|
|
|
LONG m_Initialized ;
|
|
HRESULT m_InitializeResult ;
|
|
HANDLE m_InitializedEvent ;
|
|
IWbemContext *m_InitializationContext ;
|
|
SECURITY_DESCRIPTOR * m_expandedSD;
|
|
|
|
DWORD m_ProcessIdentifier ;
|
|
|
|
HRESULT Begin_Interface (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
IUnknown *a_InternalServerInterface ,
|
|
REFIID a_InternalInterfaceIdentifier ,
|
|
DWORD a_InternalProxyIndex ,
|
|
DWORD a_ProcessIdentifier ,
|
|
HANDLE &a_IdentifyToken ,
|
|
BOOL &a_Impersonating ,
|
|
IUnknown *&a_OldContext ,
|
|
IServerSecurity *&a_OldSecurity ,
|
|
BOOL &a_IsProxy ,
|
|
IUnknown *&a_Interface ,
|
|
BOOL &a_Revert ,
|
|
IUnknown *&a_Proxy ,
|
|
IWbemContext *a_Context = NULL
|
|
) ;
|
|
|
|
HRESULT End_Interface (
|
|
|
|
IUnknown *a_ServerInterface ,
|
|
REFIID a_InterfaceIdentifier ,
|
|
DWORD a_ProxyIndex ,
|
|
IUnknown *a_InternalServerInterface ,
|
|
REFIID a_InternalInterfaceIdentifier ,
|
|
DWORD a_InternalProxyIndex ,
|
|
DWORD a_ProcessIdentifier ,
|
|
HANDLE a_IdentifyToken ,
|
|
BOOL a_Impersonating ,
|
|
IUnknown *a_OldContext ,
|
|
IServerSecurity *a_OldSecurity ,
|
|
BOOL a_IsProxy ,
|
|
IUnknown *a_Interface ,
|
|
BOOL a_Revert ,
|
|
IUnknown *a_Proxy
|
|
) ;
|
|
SECURITY_DESCRIPTOR* GetSD(){ if (m_expandedSD) return m_expandedSD; else return m_Registration->GetComRegistration ().GetSecurityDescriptor ();}
|
|
HRESULT AddProcessToSD (DWORD pid, SECURITY_DESCRIPTOR*& sourceSD, SECURITY_DESCRIPTOR* destSD );
|
|
public:
|
|
|
|
HRESULT SetInitialized ( HRESULT a_InitializeResult ) ;
|
|
|
|
public:
|
|
|
|
CServerObject_ProviderRegistrationV1 *m_Registration ;
|
|
BSTR m_Locale ;
|
|
BSTR m_User ;
|
|
BSTR m_Namespace ;
|
|
BSTR m_TransactionIdentifier ;
|
|
|
|
UINT64 m_ProviderOperation_GetObjectAsync ;
|
|
UINT64 m_ProviderOperation_PutClassAsync ;
|
|
UINT64 m_ProviderOperation_DeleteClassAsync ;
|
|
UINT64 m_ProviderOperation_CreateClassEnumAsync ;
|
|
UINT64 m_ProviderOperation_PutInstanceAsync ;
|
|
UINT64 m_ProviderOperation_DeleteInstanceAsync ;
|
|
UINT64 m_ProviderOperation_CreateInstanceEnumAsync ;
|
|
UINT64 m_ProviderOperation_ExecQueryAsync ;
|
|
UINT64 m_ProviderOperation_ExecNotificationQueryAsync ;
|
|
UINT64 m_ProviderOperation_ExecMethodAsync ;
|
|
|
|
UINT64 m_ProviderOperation_Begin ;
|
|
UINT64 m_ProviderOperation_Rollback ;
|
|
UINT64 m_ProviderOperation_Commit ;
|
|
UINT64 m_ProviderOperation_QueryState ;
|
|
|
|
UINT64 m_ProviderOperation_QueryInstances ;
|
|
UINT64 m_ProviderOperation_CreateRefresher ;
|
|
UINT64 m_ProviderOperation_CreateRefreshableObject ;
|
|
UINT64 m_ProviderOperation_StopRefreshing ;
|
|
UINT64 m_ProviderOperation_CreateRefreshableEnum ;
|
|
UINT64 m_ProviderOperation_GetObjects ;
|
|
|
|
UINT64 m_ProviderOperation_GetProperty ;
|
|
UINT64 m_ProviderOperation_PutProperty ;
|
|
|
|
UINT64 m_ProviderOperation_ProvideEvents ;
|
|
UINT64 m_ProviderOperation_NewQuery ;
|
|
UINT64 m_ProviderOperation_CancelQuery ;
|
|
UINT64 m_ProviderOperation_AccessCheck ;
|
|
UINT64 m_ProviderOperation_SetRegistrationObject ;
|
|
UINT64 m_ProviderOperation_FindConsumer ;
|
|
UINT64 m_ProviderOperation_ValidateSubscription ;
|
|
|
|
void Increment_ProviderOperation_GetObjectAsync () { m_ProviderOperation_GetObjectAsync ++ ; }
|
|
void Increment_ProviderOperation_PutClassAsync () { m_ProviderOperation_PutClassAsync ++ ; }
|
|
void Increment_ProviderOperation_DeleteClassAsync () { m_ProviderOperation_DeleteClassAsync ++ ; }
|
|
void Increment_ProviderOperation_CreateClassEnumAsync () { m_ProviderOperation_CreateClassEnumAsync ++ ; }
|
|
void Increment_ProviderOperation_PutInstanceAsync () { m_ProviderOperation_PutInstanceAsync ++ ; }
|
|
void Increment_ProviderOperation_DeleteInstanceAsync () { m_ProviderOperation_DeleteInstanceAsync ++ ; }
|
|
void Increment_ProviderOperation_CreateInstanceEnumAsync () { m_ProviderOperation_CreateInstanceEnumAsync ++ ; }
|
|
void Increment_ProviderOperation_ExecQueryAsync () { m_ProviderOperation_ExecQueryAsync ++ ; }
|
|
void Increment_ProviderOperation_ExecNotificationQueryAsync () { m_ProviderOperation_ExecNotificationQueryAsync ++ ; }
|
|
void Increment_ProviderOperation_ExecMethodAsync () { m_ProviderOperation_ExecMethodAsync ++ ; }
|
|
|
|
void Increment_ProviderOperation_Begin () { m_ProviderOperation_Begin ++ ; }
|
|
void Increment_ProviderOperation_Rollback () { m_ProviderOperation_Rollback ++ ; }
|
|
void Increment_ProviderOperation_Commit () { m_ProviderOperation_Commit ++ ; }
|
|
void Increment_ProviderOperation_QueryState () { m_ProviderOperation_QueryState ++ ; }
|
|
|
|
void Increment_ProviderOperation_QueryInstances () { m_ProviderOperation_QueryInstances ++ ; }
|
|
void Increment_ProviderOperation_CreateRefresher () { m_ProviderOperation_CreateRefresher ++ ; }
|
|
void Increment_ProviderOperation_CreateRefreshableObject () { m_ProviderOperation_CreateRefreshableObject ++ ; }
|
|
void Increment_ProviderOperation_StopRefreshing () { m_ProviderOperation_StopRefreshing ++ ; }
|
|
void Increment_ProviderOperation_CreateRefreshableEnum () { m_ProviderOperation_CreateRefreshableEnum ++ ; }
|
|
void Increment_ProviderOperation_GetObjects () { m_ProviderOperation_GetObjects ++ ; }
|
|
|
|
void Increment_ProviderOperation_GetProperty () { m_ProviderOperation_GetProperty ++ ; }
|
|
void Increment_ProviderOperation_PutProperty () { m_ProviderOperation_PutProperty ++ ; }
|
|
|
|
void Increment_ProviderOperation_ProvideEvents () { m_ProviderOperation_ProvideEvents ++ ; }
|
|
void Increment_ProviderOperation_NewQuery () { m_ProviderOperation_NewQuery ++ ; }
|
|
void Increment_ProviderOperation_CancelQuery () { m_ProviderOperation_CancelQuery ++ ; }
|
|
void Increment_ProviderOperation_AccessCheck () { m_ProviderOperation_AccessCheck ++ ; }
|
|
void Increment_ProviderOperation_SetRegistrationObject () { m_ProviderOperation_SetRegistrationObject ++ ; }
|
|
void Increment_ProviderOperation_FindConsumer () { m_ProviderOperation_FindConsumer ++ ; }
|
|
void Increment_ProviderOperation_ValidateSubscription () { m_ProviderOperation_ValidateSubscription ++ ; }
|
|
|
|
UINT64 Get_ProviderOperation_GetObjectAsync () { return m_ProviderOperation_GetObjectAsync ; }
|
|
UINT64 Get_ProviderOperation_PutClassAsync () { return m_ProviderOperation_PutClassAsync ; }
|
|
UINT64 Get_ProviderOperation_DeleteClassAsync () { return m_ProviderOperation_DeleteClassAsync ; }
|
|
UINT64 Get_ProviderOperation_CreateClassEnumAsync () { return m_ProviderOperation_CreateClassEnumAsync ; }
|
|
UINT64 Get_ProviderOperation_PutInstanceAsync () { return m_ProviderOperation_PutInstanceAsync ; }
|
|
UINT64 Get_ProviderOperation_DeleteInstanceAsync () { return m_ProviderOperation_DeleteInstanceAsync ; }
|
|
UINT64 Get_ProviderOperation_CreateInstanceEnumAsync () { return m_ProviderOperation_CreateInstanceEnumAsync ; }
|
|
UINT64 Get_ProviderOperation_ExecQueryAsync () { return m_ProviderOperation_ExecQueryAsync ; }
|
|
UINT64 Get_ProviderOperation_ExecNotificationQueryAsync () { return m_ProviderOperation_ExecNotificationQueryAsync ; }
|
|
UINT64 Get_ProviderOperation_ExecMethodAsync () { return m_ProviderOperation_ExecMethodAsync ; }
|
|
|
|
UINT64 Get_ProviderOperation_Begin () { return m_ProviderOperation_Begin ; }
|
|
UINT64 Get_ProviderOperation_Rollback () { return m_ProviderOperation_Rollback ; }
|
|
UINT64 Get_ProviderOperation_Commit () { return m_ProviderOperation_Commit ; }
|
|
UINT64 Get_ProviderOperation_QueryState () { return m_ProviderOperation_QueryState ; }
|
|
|
|
UINT64 Get_ProviderOperation_QueryInstances () { return m_ProviderOperation_QueryInstances ; }
|
|
UINT64 Get_ProviderOperation_CreateRefresher () { return m_ProviderOperation_CreateRefresher ; }
|
|
UINT64 Get_ProviderOperation_CreateRefreshableObject () { return m_ProviderOperation_CreateRefreshableObject ; }
|
|
UINT64 Get_ProviderOperation_StopRefreshing () { return m_ProviderOperation_StopRefreshing ; }
|
|
UINT64 Get_ProviderOperation_CreateRefreshableEnum () { return m_ProviderOperation_CreateRefreshableEnum ; }
|
|
UINT64 Get_ProviderOperation_GetObjects () { return m_ProviderOperation_GetObjects ; }
|
|
|
|
UINT64 Get_ProviderOperation_GetProperty () { return m_ProviderOperation_GetProperty ; }
|
|
UINT64 Get_ProviderOperation_PutProperty () { return m_ProviderOperation_PutProperty ; }
|
|
|
|
UINT64 Get_ProviderOperation_ProvideEvents () { return m_ProviderOperation_ProvideEvents ; }
|
|
UINT64 Get_ProviderOperation_NewQuery () { return m_ProviderOperation_NewQuery ; }
|
|
UINT64 Get_ProviderOperation_CancelQuery () { return m_ProviderOperation_CancelQuery ; }
|
|
UINT64 Get_ProviderOperation_AccessCheck () { return m_ProviderOperation_AccessCheck ; }
|
|
UINT64 Get_ProviderOperation_SetRegistrationObject () { return m_ProviderOperation_SetRegistrationObject ; }
|
|
UINT64 Get_ProviderOperation_FindConsumer () { return m_ProviderOperation_FindConsumer ; }
|
|
UINT64 Get_ProviderOperation_ValidateSubscription () { return m_ProviderOperation_ValidateSubscription ; }
|
|
|
|
public:
|
|
|
|
CInterceptor_IWbemDecoupledProvider (
|
|
|
|
WmiAllocator &a_Allocator ,
|
|
IUnknown *a_ServerSideUnknown ,
|
|
IWbemServices *a_CoreStub ,
|
|
CWbemGlobal_IWbemSyncProviderController *a_Controller ,
|
|
IWbemContext *a_InitializationContext ,
|
|
CServerObject_ProviderRegistrationV1 &a_Registration ,
|
|
GUID &a_Guid
|
|
) ;
|
|
|
|
~CInterceptor_IWbemDecoupledProvider () ;
|
|
|
|
public:
|
|
|
|
//Non-delegating object IUnknown
|
|
|
|
STDMETHODIMP QueryInterface ( REFIID , LPVOID FAR * ) ;
|
|
STDMETHODIMP_( ULONG ) AddRef () ;
|
|
STDMETHODIMP_( ULONG ) Release () ;
|
|
|
|
/* IWbemServices methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE OpenNamespace (
|
|
|
|
const BSTR a_Namespace ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemServices **a_Service ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CancelAsyncCall (
|
|
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE QueryObjectSink (
|
|
|
|
long a_Flags ,
|
|
IWbemObjectSink **a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetObject (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject **ppObject ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetObjectAsync (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutClass (
|
|
|
|
IWbemClassObject *a_Object ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutClassAsync (
|
|
|
|
IWbemClassObject *a_Object ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteClass (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteClassAsync (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateClassEnum (
|
|
|
|
const BSTR a_Superclass ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateClassEnumAsync (
|
|
|
|
const BSTR a_Superclass ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutInstance (
|
|
|
|
IWbemClassObject *a_Instance ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutInstanceAsync (
|
|
|
|
IWbemClassObject *a_Instance ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteInstance (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE DeleteInstanceAsync (
|
|
|
|
const BSTR a_ObjectPath,
|
|
long a_Flags,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateInstanceEnum (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE CreateInstanceEnumAsync (
|
|
|
|
const BSTR a_Class ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecQuery (
|
|
|
|
const BSTR a_QueryLanguage,
|
|
const BSTR a_Query,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecQueryAsync (
|
|
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecNotificationQuery (
|
|
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IEnumWbemClassObject **a_Enum
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecNotificationQueryAsync (
|
|
|
|
const BSTR a_QueryLanguage ,
|
|
const BSTR a_Query ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecMethod (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
const BSTR a_MethodName ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_InParams ,
|
|
IWbemClassObject **a_OutParams ,
|
|
IWbemCallResult **a_CallResult
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE ExecMethodAsync (
|
|
|
|
const BSTR a_ObjectPath ,
|
|
const BSTR a_MethodName ,
|
|
long a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
IWbemClassObject *a_InParams ,
|
|
IWbemObjectSink *a_Sink
|
|
) ;
|
|
|
|
/* IWbemPropertyProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE GetProperty (
|
|
|
|
long a_Flags ,
|
|
const BSTR a_Locale ,
|
|
const BSTR a_ClassMapping ,
|
|
const BSTR a_InstanceMapping ,
|
|
const BSTR a_PropertyMapping ,
|
|
VARIANT *a_Value
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE PutProperty (
|
|
|
|
long a_Flags ,
|
|
const BSTR a_Locale ,
|
|
const BSTR a_ClassMapping ,
|
|
const BSTR a_InstanceMapping ,
|
|
const BSTR a_PropertyMapping ,
|
|
const VARIANT *a_Value
|
|
) ;
|
|
|
|
/* IWbemEventProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE ProvideEvents (
|
|
|
|
IWbemObjectSink *a_Sink ,
|
|
long a_Flags
|
|
) ;
|
|
|
|
/* IWbemEventProviderQuerySink */
|
|
|
|
HRESULT STDMETHODCALLTYPE NewQuery (
|
|
|
|
unsigned long a_Id ,
|
|
WBEM_WSTR a_QueryLanguage ,
|
|
WBEM_WSTR a_Query
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE CancelQuery (
|
|
|
|
unsigned long a_Id
|
|
) ;
|
|
|
|
/* IWbemEventProviderSecurity */
|
|
|
|
HRESULT STDMETHODCALLTYPE AccessCheck (
|
|
|
|
WBEM_CWSTR a_QueryLanguage ,
|
|
WBEM_CWSTR a_Query ,
|
|
long a_SidLength ,
|
|
const BYTE *a_Sid
|
|
) ;
|
|
|
|
/* IWbemProviderIdentity */
|
|
|
|
HRESULT STDMETHODCALLTYPE SetRegistrationObject (
|
|
|
|
long a_Flags ,
|
|
IWbemClassObject *a_ProviderRegistration
|
|
) ;
|
|
|
|
/* IWbemEventConsumerProvider */
|
|
|
|
HRESULT STDMETHODCALLTYPE FindConsumer (
|
|
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
IWbemUnboundObjectSink **a_Consumer
|
|
);
|
|
|
|
/* IWbemEventConsumerProviderEx */
|
|
|
|
HRESULT STDMETHODCALLTYPE ValidateSubscription (
|
|
|
|
IWbemClassObject *a_LogicalConsumer
|
|
) ;
|
|
|
|
/* IWbemUnboundObjectSink */
|
|
|
|
HRESULT STDMETHODCALLTYPE IndicateToConsumer (
|
|
|
|
IWbemClassObject *a_LogicalConsumer ,
|
|
long a_ObjectCount ,
|
|
IWbemClassObject **a_Objects
|
|
) ;
|
|
|
|
/* IWbemProviderInit methods */
|
|
|
|
HRESULT STDMETHODCALLTYPE Initialize (
|
|
|
|
LPWSTR a_User ,
|
|
LONG a_Flags ,
|
|
LPWSTR a_Namespace ,
|
|
LPWSTR a_Locale ,
|
|
IWbemServices *a_CoreService ,
|
|
IWbemContext *a_Context ,
|
|
IWbemProviderInitSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE Initialize (
|
|
|
|
LONG a_Flags ,
|
|
IWbemContext *a_Context ,
|
|
GUID *a_TransactionIdentifier,
|
|
LPCWSTR a_User ,
|
|
LPCWSTR a_Locale ,
|
|
LPCWSTR a_Namespace ,
|
|
IWbemServices *a_Repository ,
|
|
IWbemServices *a_Service ,
|
|
IWbemProviderInitSink *a_Sink
|
|
) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE WaitProvider ( IWbemContext *a_Context , ULONG a_Timeout ) ;
|
|
|
|
HRESULT STDMETHODCALLTYPE GetInitializeResult ()
|
|
{
|
|
return m_InitializeResult ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE GetHosting ( ULONG *a_Value )
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE GetHostingGroup ( BSTR *a_Value )
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE IsInternal ( BOOL *a_Value )
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE IsPerUserInitialization ( BOOL *a_Value )
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE IsPerLocaleInitialization ( BOOL *a_Value )
|
|
{
|
|
return WBEM_E_NOT_AVAILABLE ;
|
|
}
|
|
|
|
HRESULT STDMETHODCALLTYPE AbnormalShutdown () ;
|
|
|
|
// IWmi_UnInitialize members
|
|
|
|
HRESULT STDMETHODCALLTYPE Shutdown (
|
|
|
|
LONG a_Flags ,
|
|
ULONG a_MaxMilliSeconds ,
|
|
IWbemContext *a_Context
|
|
) ;
|
|
} ;
|
|
|
|
#endif // _Server_Interceptor_IWbemServices_H
|