ReactOS 0.4.16-dev-1946-g52006dd
fxwmiapi.cpp File Reference
#include "fxwmipch.hpp"
Include dependency graph for fxwmiapi.cpp:

Go to the source code of this file.

Functions

_Must_inspect_result_ __drv_maxIRQL (DISPATCH_LEVEL) NTSTATUS NTAPI WDFEXPORT(WdfWmiProviderCreate)(__in PWDF_DRIVER_GLOBALS DriverGlobals
 
 FxObjectHandleGetPtr (GetFxDriverGlobals(DriverGlobals), Device, FX_TYPE_DEVICE,(PVOID *) &pDevice)
 
 FxPointerNotNull (GetFxDriverGlobals(DriverGlobals), WmiProviderConfig)
 
 FxPointerNotNull (GetFxDriverGlobals(DriverGlobals), WmiProvider)
 
 if (pDevice->m_PkgPnp->IsPowerPolicyOwner())
 
 FxPointerNotNull (pFxDriverGlobals, InstanceConfig)
 
 if (InstanceConfig->Size !=sizeof(WDF_WMI_INSTANCE_CONFIG))
 
 if (InstanceConfig->Provider==NULL &&InstanceConfig->ProviderConfig==NULL)
 
else if (InstanceConfig->Provider !=NULL &&InstanceConfig->ProviderConfig !=NULL)
 
 if (!NT_SUCCESS(status))
 
 if (NT_SUCCESS(status) &&InstanceConfig->Register)
 
 if (NT_SUCCESS(status))
 
 FxObjectHandleGetPtr (GetFxDriverGlobals(DriverGlobals), WmiProvider, FX_TYPE_WMI_PROVIDER,(PVOID *) &pProvider)
 
return pProvider GetDevice () -> GetHandle()
 
return pProvider IsEnabled (ProviderControl)
 
return pProvider GetTracingHandle ()
 
 FxObjectHandleGetPtr (GetFxDriverGlobals(DriverGlobals), WmiInstance, FX_TYPE_WMI_INSTANCE,(PVOID *) &pInstance)
 
return pProvider AddInstance (pInstance)
 
pProvider RemoveInstance (pInstance)
 
return pInstance GetProvider () -> GetHandle()
 
_Must_inspect_result_ __drv_maxIRQL (APC_LEVEL) NTSTATUS NTAPI WDFEXPORT(WdfWmiInstanceFireEvent)(__in PWDF_DRIVER_GLOBALS DriverGlobals
 
_Must_inspect_result_ __in WDFWMIINSTANCE __in_opt ULONG __in_bcount_opt (EventDataSize) PVOID EventData)
 

Variables

_Must_inspect_result_ __in WDFDEVICE Device
 
_Must_inspect_result_ __in WDFDEVICE __in PWDF_WMI_PROVIDER_CONFIG WmiProviderConfig
 
_Must_inspect_result_ __in WDFDEVICE __in PWDF_WMI_PROVIDER_CONFIG __in_opt PWDF_OBJECT_ATTRIBUTES ProviderAttributes
 
_Must_inspect_result_ __in WDFDEVICE __in PWDF_WMI_PROVIDER_CONFIG __in_opt PWDF_OBJECT_ATTRIBUTES __out WDFWMIPROVIDER * WmiProvider
 
FxPowerPolicyOwnerSettingsownerSettings
 
FxWmiProviderpProvider = pInstance->GetProvider()
 
_Must_inspect_result_ __in WDFDEVICE __in PWDF_WMI_INSTANCE_CONFIG InstanceConfig
 
_Must_inspect_result_ __in WDFDEVICE __in PWDF_WMI_INSTANCE_CONFIG __in_opt PWDF_OBJECT_ATTRIBUTES InstanceAttributes
 
_Must_inspect_result_ __in WDFDEVICE __in PWDF_WMI_INSTANCE_CONFIG __in_opt PWDF_OBJECT_ATTRIBUTES __out_opt WDFWMIINSTANCE * Instance
 
FxWmiInstanceExternalpInstance = NULL
 
WDFWMIINSTANCE hInstance
 
NTSTATUS status
 
 pFxDriverGlobals = GetFxDriverGlobals(DriverGlobals)
 
 else
 
WDFWMIPROVIDER hProvider = NULL
 
__in WDFWMIPROVIDER __in WDF_WMI_PROVIDER_CONTROL ProviderControl
 
_Must_inspect_result_ __in WDFWMIINSTANCE WmiInstance
 
_Must_inspect_result_ __in WDFWMIINSTANCE __in_opt ULONG EventDataSize
 

Function Documentation

◆ __drv_maxIRQL() [1/2]

_Must_inspect_result_ __drv_maxIRQL ( APC_LEVEL  )

◆ __drv_maxIRQL() [2/2]

◆ __in_bcount_opt()

_Must_inspect_result_ __in WDFWMIINSTANCE __in_opt ULONG __in_bcount_opt ( EventDataSize  )

Definition at line 417 of file fxwmiapi.cpp.

434{
437
441 (PVOID*) &pInstance);
442
444 if (!NT_SUCCESS(status)) {
445 return status;
446 }
447
448 return pInstance->FireEvent(EventData, EventDataSize);
449}
LONG NTSTATUS
Definition: precomp.h:26
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
Definition: fxobject.hpp:734
_Must_inspect_result_ NTSTATUS FireEvent(__in_bcount_opt(EventBufferSize) PVOID EventBuffer, __inout ULONG EventBufferSize)
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define APC_LEVEL
Definition: env_spec_w32.h:695
__inline PFX_DRIVER_GLOBALS GetFxDriverGlobals(__in PWDF_DRIVER_GLOBALS DriverGlobals)
Definition: fxglobals.h:597
@ FX_TYPE_WMI_INSTANCE
Definition: fxtypes.h:87
__inline NTSTATUS FxVerifierCheckIrqlLevel(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in KIRQL Irql)
Definition: fxverifier.h:158
NTSTATUS status
Definition: fxwmiapi.cpp:119
FxObjectHandleGetPtr(GetFxDriverGlobals(DriverGlobals), Device, FX_TYPE_DEVICE,(PVOID *) &pDevice)
FxWmiInstanceExternal * pInstance
Definition: fxwmiapi.cpp:117
Definition: ps.c:97
_Must_inspect_result_ _In_ WDFWMIINSTANCE WmiInstance
Definition: wdfwmi.h:514
_Must_inspect_result_ _In_ WDFWMIINSTANCE _In_opt_ ULONG EventDataSize
Definition: wdfwmi.h:617

◆ AddInstance()

return pProvider AddInstance ( pInstance  )

◆ FxObjectHandleGetPtr() [1/3]

FxObjectHandleGetPtr ( GetFxDriverGlobals(DriverGlobals)  ,
Device  ,
FX_TYPE_DEVICE  ,
(PVOID *) &  pDevice 
)

Referenced by __in_bcount_opt().

◆ FxObjectHandleGetPtr() [2/3]

FxObjectHandleGetPtr ( GetFxDriverGlobals(DriverGlobals)  ,
WmiInstance  ,
FX_TYPE_WMI_INSTANCE  ,
(PVOID *) &  pInstance 
)

◆ FxObjectHandleGetPtr() [3/3]

FxObjectHandleGetPtr ( GetFxDriverGlobals(DriverGlobals)  ,
WmiProvider  ,
FX_TYPE_WMI_PROVIDER  ,
(PVOID *) &  pProvider 
)

◆ FxPointerNotNull() [1/3]

FxPointerNotNull ( GetFxDriverGlobals(DriverGlobals)  ,
WmiProvider   
)

◆ FxPointerNotNull() [2/3]

FxPointerNotNull ( GetFxDriverGlobals(DriverGlobals)  ,
WmiProviderConfig   
)

◆ FxPointerNotNull() [3/3]

FxPointerNotNull ( pFxDriverGlobals  ,
InstanceConfig   
)

◆ GetDevice()

return pProvider GetDevice ( ) -> GetHandle()

◆ GetProvider()

return pInstance GetProvider ( ) -> GetHandle()

Referenced by Chkdsk(), and FormatEx().

◆ GetTracingHandle()

return pProvider GetTracingHandle ( )

◆ if() [1/7]

if ( NT_SUCCESSstatus)

Definition at line 208 of file fxwmiapi.cpp.

208 {
209 return status;
210 }

◆ if() [2/7]

if ( InstanceConfig->Provider = NULL && InstanceConfig->ProviderConfig != NULL)

Definition at line 146 of file fxwmiapi.cpp.

147 {
149
152 "InstanceConfig %p Provider %p and ProviderConfig %p are both not "
153 "NULL, only one can be, %!STATUS!", InstanceConfig,
154 InstanceConfig->Provider, InstanceConfig->ProviderConfig, status);
155
156 return status;
157 }
#define TRACINGDEVICE
Definition: dbgtrace.h:58
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
pFxDriverGlobals
Definition: fxwmiapi.cpp:121
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG InstanceConfig
Definition: wdfwmi.h:476

◆ if() [3/7]

if ( InstanceConfig->  Provider = NULL && InstanceConfig->ProviderConfig == NULL)

Definition at line 135 of file fxwmiapi.cpp.

136 {
138
141 "InstanceConfig %p Provider and ProviderConfig are both NULL, only "
142 "one can be, %!STATUS!", InstanceConfig, status);
143
144 return status;
145 }

◆ if() [4/7]

Definition at line 126 of file fxwmiapi.cpp.

126 {
129 "Expected InstanceConfig Size %d, got %d, %!STATUS!",
130 InstanceConfig->Size, sizeof(*InstanceConfig),
131 status);
132 return status;
133 }
#define STATUS_INFO_LENGTH_MISMATCH
Definition: udferr_usr.h:133

◆ if() [5/7]

if ( NT_SUCCESS(status) &&InstanceConfig->  Register)

Definition at line 225 of file fxwmiapi.cpp.

225 {
227 }
_Must_inspect_result_ NTSTATUS AddInstance(__in FxWmiInstance *Instance, __in BOOLEAN NoErrorIfPresent=FALSE)
FxWmiProvider * pProvider
Definition: fxwmiapi.cpp:57

◆ if() [6/7]

if ( NT_SUCCESS(status )

Definition at line 229 of file fxwmiapi.cpp.

229 {
230 if (Instance != NULL) {
232 }
233 }
#define NULL
Definition: types.h:112
WDFWMIINSTANCE hInstance
Definition: fxwmiapi.cpp:118
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
Definition: wdfwmi.h:481

◆ if() [7/7]

if ( pDevice->m_PkgPnp->  IsPowerPolicyOwner() = FALSE)

Definition at line 72 of file fxwmiapi.cpp.

72 {
74
76 &GUID_POWER_DEVICE_ENABLE) &&
78
80 &GUID_POWER_DEVICE_WAKE_ENABLE) &&
82
84 TRACINGDEVICE, "WMI Guid already registered by "
85 "framework");
87 }
88 }
FxPkgPnp * m_PkgPnp
Definition: fxdevice.hpp:670
FxPowerPolicyMachine m_PowerPolicyMachine
Definition: fxpkgpnp.hpp:4153
FxDevice * pDevice
_Must_inspect_result_ BOOLEAN __inline FxIsEqualGuid(__in CONST GUID *Lhs, __in CONST GUID *Rhs)
Definition: fxglobals.h:977
FxPowerPolicyOwnerSettings * ownerSettings
Definition: fxwmiapi.cpp:56
#define STATUS_WMI_GUID_DISCONNECTED
Definition: ntstatus.h:1003
FxPowerPolicyOwnerSettings * m_Owner
FxWmiInstanceInternal * WmiInstance
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_PROVIDER_CONFIG WmiProviderConfig
Definition: wdfwmi.h:358

◆ IsEnabled()

◆ RemoveInstance()

pProvider RemoveInstance ( pInstance  )

Variable Documentation

◆ Device

Definition at line 46 of file fxwmiapi.cpp.

◆ else

else
Initial value:

Definition at line 166 of file fxwmiapi.cpp.

◆ EventDataSize

Definition at line 416 of file fxwmiapi.cpp.

◆ hInstance

WDFWMIINSTANCE hInstance

Definition at line 118 of file fxwmiapi.cpp.

Referenced by if().

◆ hProvider

hProvider = NULL

◆ Instance

◆ InstanceAttributes

◆ InstanceConfig

◆ ownerSettings

FxPowerPolicyOwnerSettings * ownerSettings

Definition at line 56 of file fxwmiapi.cpp.

Referenced by if().

◆ pFxDriverGlobals

pFxDriverGlobals = GetFxDriverGlobals(DriverGlobals)

Definition at line 121 of file fxwmiapi.cpp.

Referenced by if().

◆ pInstance

◆ pProvider

◆ ProviderAttributes

◆ ProviderControl

Initial value:

Definition at line 286 of file fxwmiapi.cpp.

◆ status

Initial value:
InstanceConfig->ProviderConfig,
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS CallersGlobals, __in WDFDEVICE Device, __in_opt PWDF_OBJECT_ATTRIBUTES ProviderAttributes, __in PWDF_WMI_PROVIDER_CONFIG WmiProviderConfig, __out WDFWMIPROVIDER *WmiProvider, __out FxWmiProvider **Provider)
WDFWMIPROVIDER hProvider
Definition: fxwmiapi.cpp:169
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474

Definition at line 119 of file fxwmiapi.cpp.

Referenced by __in_bcount_opt(), and if().

◆ WmiInstance

Initial value:

Definition at line 327 of file fxwmiapi.cpp.

◆ WmiProvider

__in WDFWMIPROVIDER WmiProvider
Initial value:

Definition at line 52 of file fxwmiapi.cpp.

◆ WmiProviderConfig