ReactOS 0.4.16-dev-306-g647d351
fxdpcapi.cpp File Reference
#include "fxcorepch.hpp"
#include "fxdpc.hpp"
Include dependency graph for fxdpcapi.cpp:

Go to the source code of this file.

Functions

_Must_inspect_result_ __drv_maxIRQL (DISPATCH_LEVEL) NTSTATUS STDCALL WDFEXPORT(WdfDpcCreate)(__in PWDF_DRIVER_GLOBALS DriverGlobals
 
 if (!NT_SUCCESS(status))
 
 FxObjectHandleGetPtrAndGlobals (pFxDriverGlobals, Attributes->ParentObject, FX_TYPE_OBJECT,(PVOID *)&pParent, &pFxDriverGlobals)
 
 FxPointerNotNull (pFxDriverGlobals, Config)
 
 FxPointerNotNull (pFxDriverGlobals, Dpc)
 
 if (Config->Size !=sizeof(WDF_DPC_CONFIG))
 
 __drv_maxIRQL (HIGH_LEVEL) KDPC *STDCALL WDFEXPORT(WdfDpcWdmGetDpc)(__in PWDF_DRIVER_GLOBALS DriverGlobals
 
 FxObjectHandleGetPtr (GetFxDriverGlobals(DriverGlobals), Dpc, FX_TYPE_DPC,(PVOID *)&pFxDpc)
 
return pFxDpc GetDpcPtr ()
 
return KeInsertQueueDpc (pFxDpc->GetDpcPtr(), NULL, NULL)
 
 __drv_when (Wait==__true, __drv_maxIRQL(PASSIVE_LEVEL)) __drv_when(Wait
 
 FxObjectHandleGetPtrAndGlobals (GetFxDriverGlobals(DriverGlobals), Dpc, FX_TYPE_DPC,(PVOID *)&pFxDpc, &pFxDriverGlobals)
 
 if (Wait)
 
return pFxDpc Cancel (Wait)
 
return pFxDpc GetObject ()
 

Variables

_Must_inspect_result_ __in PWDF_DPC_CONFIG Config
 
_Must_inspect_result_ __in PWDF_DPC_CONFIG __in PWDF_OBJECT_ATTRIBUTES Attributes
 
_Must_inspect_result_ __in PWDF_DPC_CONFIG __in PWDF_OBJECT_ATTRIBUTES __out WDFDPC * Dpc
 
FxObjectpParent
 
NTSTATUS status
 
 pFxDriverGlobals = GetFxDriverGlobals(DriverGlobals)
 
__in WDFDPC __in BOOLEAN Wait
 
FxDpcpFxDpc
 

Function Documentation

◆ __drv_maxIRQL() [1/2]

◆ __drv_maxIRQL() [2/2]

__drv_maxIRQL ( HIGH_LEVEL  )

◆ __drv_when()

__drv_when ( Wait  = = __true,
__drv_maxIRQL(PASSIVE_LEVEL  
)

◆ Cancel()

return pFxDpc Cancel ( Wait  )

◆ FxObjectHandleGetPtr()

FxObjectHandleGetPtr ( GetFxDriverGlobals(DriverGlobals ,
Dpc  ,
FX_TYPE_DPC  ,
(PVOID *)&  pFxDpc 
)

◆ FxObjectHandleGetPtrAndGlobals() [1/2]

FxObjectHandleGetPtrAndGlobals ( GetFxDriverGlobals(DriverGlobals ,
Dpc  ,
FX_TYPE_DPC  ,
(PVOID *)&  pFxDpc,
pFxDriverGlobals 
)

◆ FxObjectHandleGetPtrAndGlobals() [2/2]

FxObjectHandleGetPtrAndGlobals ( pFxDriverGlobals  ,
Attributes->  ParentObject,
FX_TYPE_OBJECT  ,
(PVOID *)&  pParent,
pFxDriverGlobals 
)

◆ FxPointerNotNull() [1/2]

FxPointerNotNull ( pFxDriverGlobals  ,
Config   
)

◆ FxPointerNotNull() [2/2]

FxPointerNotNull ( pFxDriverGlobals  ,
Dpc   
)

◆ GetDpcPtr()

return pFxDpc GetDpcPtr ( )

Referenced by FxDpc::Cancel().

◆ GetObject()

return pFxDpc GetObject ( )

◆ if() [1/3]

if ( NT_SUCCESSstatus)

Definition at line 93 of file fxdpcapi.cpp.

93 {
94 return status;
95 }
NTSTATUS status
Definition: fxdpcapi.cpp:87

◆ if() [2/3]

Definition at line 106 of file fxdpcapi.cpp.

106 {
108
110 "WDF_DPC_CONFIG got Size %d, expected %d, %!STATUS!",
111 Config->Size, sizeof(WDF_DPC_CONFIG), status);
112
113 return status;
114 }
#define TRACINGDEVICE
Definition: dbgtrace.h:58
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
pFxDriverGlobals
Definition: fxdpcapi.cpp:89
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
Definition: ps.c:97
#define STATUS_INFO_LENGTH_MISMATCH
Definition: udferr_usr.h:133
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:476

◆ if() [3/3]

if ( Wait  )

Definition at line 247 of file fxdpcapi.cpp.

247 {
249 if (!NT_SUCCESS(status)) {
250 return FALSE;
251 }
252 }
#define FALSE
Definition: types.h:117
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
__inline NTSTATUS FxVerifierCheckIrqlLevel(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in KIRQL Irql)
Definition: fxverifier.h:158

◆ KeInsertQueueDpc()

return KeInsertQueueDpc ( pFxDpc->  GetDpcPtr(),
NULL  ,
NULL   
)

Variable Documentation

◆ Attributes

◆ Config

◆ Dpc

__in WDFDPC Dpc
Initial value:

Definition at line 51 of file fxdpcapi.cpp.

◆ pFxDpc

FxDpc* pFxDpc

Definition at line 238 of file fxdpcapi.cpp.

Referenced by __drv_maxIRQL(), and FxDpc::_Create().

◆ pFxDriverGlobals

pFxDriverGlobals = GetFxDriverGlobals(DriverGlobals)

Definition at line 89 of file fxdpcapi.cpp.

Referenced by if().

◆ pParent

◆ status

Initial value:
@ FX_VALIDATE_OPTION_PARENT_REQUIRED
_Must_inspect_result_ NTSTATUS __inline FxValidateObjectAttributesForParentHandle(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in ULONG Flags=FX_VALIDATE_OPTION_NONE_SPECIFIED)
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes

Definition at line 87 of file fxdpcapi.cpp.

Referenced by if().

◆ Wait

Initial value:

Definition at line 215 of file fxdpcapi.cpp.