ReactOS  0.4.15-dev-1636-gf634010
fxwaitlockapi.cpp File Reference
#include "fxsupportpch.hpp"
Include dependency graph for fxwaitlockapi.cpp:

Go to the source code of this file.

Functions

_Must_inspect_result_ __drv_maxIRQL (DISPATCH_LEVEL) NTSTATUS WDFAPI STDCALL WDFEXPORT(WdfWaitLockCreate)(__in PWDF_DRIVER_GLOBALS DriverGlobals
 
 if (NT_SUCCESS(FxValidateObjectAttributesForParentHandle(fxDriverGlobals, LockAttributes)))
 
 FxPointerNotNull (fxDriverGlobals, Lock)
 
 if (!NT_SUCCESS(status))
 
 __drv_when (Timeout !=0, _Must_inspect_result_) __drv_when(Timeout
 
 __drv_maxIRQL (PASSIVE_LEVEL)) __drv_when(Timeout !=0 &&*Timeout
 
 __drv_maxIRQL (DISPATCH_LEVEL)) __drv_when(Timeout !=0 &&*Timeout !=0
 
 __drv_maxIRQL (PASSIVE_LEVEL)) NTSTATUS WDFAPI STDCALL WDFEXPORT(WdfWaitLockAcquire)(__in PWDF_DRIVER_GLOBALS DriverGlobals
 
 FxObjectHandleGetPtrAndGlobals (GetFxDriverGlobals(DriverGlobals), Lock, FX_TYPE_WAIT_LOCK,(PVOID *) &pLock, &pFxDriverGlobals)
 
 if (Timeout==NULL|| *Timeout !=0)
 
return pLock AcquireLock (pFxDriverGlobals, Timeout)
 
pLock ReleaseLock (pFxDriverGlobals)
 

Variables

_Must_inspect_result_ __in_opt PWDF_OBJECT_ATTRIBUTES LockAttributes
 
_Must_inspect_result_ __in_opt PWDF_OBJECT_ATTRIBUTES __out WDFWAITLOCK * Lock
 
PFX_DRIVER_GLOBALS fxDriverGlobals = GetFxDriverGlobals(DriverGlobals)
 
NTSTATUS status = FxValidateObjectAttributes(fxDriverGlobals, LockAttributes)
 
FxObjectparent = NULL
 
__in WDFWAITLOCK __in_opt PLONGLONG Timeout
 
PFX_DRIVER_GLOBALS pFxDriverGlobals
 
FxWaitLockpLock
 

Function Documentation

◆ __drv_maxIRQL() [1/4]

◆ __drv_maxIRQL() [2/4]

__drv_maxIRQL ( PASSIVE_LEVEL  ) &&
pure virtual

◆ __drv_maxIRQL() [3/4]

__drv_maxIRQL ( DISPATCH_LEVEL  ) &&
pure virtual

◆ __drv_maxIRQL() [4/4]

__drv_maxIRQL ( PASSIVE_LEVEL  )

◆ __drv_when()

__drv_when ( Timeout = 0,
_Must_inspect_result_   
)

◆ AcquireLock()

return pLock AcquireLock ( pFxDriverGlobals  ,
Timeout   
)

◆ FxObjectHandleGetPtrAndGlobals()

FxObjectHandleGetPtrAndGlobals ( GetFxDriverGlobals(DriverGlobals ,
Lock  ,
FX_TYPE_WAIT_LOCK  ,
(PVOID *) &  pLock,
pFxDriverGlobals 
)

Referenced by if().

◆ FxPointerNotNull()

FxPointerNotNull ( fxDriverGlobals  ,
Lock   
)

◆ if() [1/3]

Definition at line 72 of file fxwaitlockapi.cpp.

73  {
75  LockAttributes->ParentObject,
77  (PVOID*)&parent,
79  }
PFX_DRIVER_GLOBALS fxDriverGlobals
FxObject * parent
FxObjectHandleGetPtrAndGlobals(GetFxDriverGlobals(DriverGlobals), Lock, FX_TYPE_WAIT_LOCK,(PVOID *) &pLock, &pFxDriverGlobals)
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES LockAttributes
Definition: wdfsync.h:124

◆ if() [2/3]

if ( NT_SUCCESSstatus)

Definition at line 84 of file fxwaitlockapi.cpp.

84  {
85  return status;
86  }
NTSTATUS status

◆ if() [3/3]

if ( Timeout  = NULL || *Timeout != 0)

Definition at line 142 of file fxwaitlockapi.cpp.

142  {
144  if (!NT_SUCCESS(status)) {
145  return status;
146  }
147 
148  }
PFX_DRIVER_GLOBALS pFxDriverGlobals
NTSTATUS status
__inline NTSTATUS FxVerifierCheckIrqlLevel(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in KIRQL Irql)
Definition: fxverifier.h:158
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
Definition: ps.c:97

◆ ReleaseLock()

pLock ReleaseLock ( pFxDriverGlobals  )

Variable Documentation

◆ fxDriverGlobals

fxDriverGlobals = GetFxDriverGlobals(DriverGlobals)

Definition at line 62 of file fxwaitlockapi.cpp.

Referenced by if().

◆ Lock

__in WDFWAITLOCK Lock
Initial value:
{
#define DDI_ENTRY()
Definition: fxglobalskm.h:56

Definition at line 59 of file fxwaitlockapi.cpp.

◆ LockAttributes

◆ parent

parent = NULL

Definition at line 64 of file fxwaitlockapi.cpp.

Referenced by if().

◆ pFxDriverGlobals

PFX_DRIVER_GLOBALS pFxDriverGlobals

Definition at line 132 of file fxwaitlockapi.cpp.

Referenced by if().

◆ pLock

FxWaitLock* pLock

Definition at line 133 of file fxwaitlockapi.cpp.

◆ status

◆ Timeout

__in WDFWAITLOCK __in_opt PLONGLONG Timeout
Initial value:
{
#define DDI_ENTRY()
Definition: fxglobalskm.h:56

Definition at line 129 of file fxwaitlockapi.cpp.