71 TimerOrWaitFired =
FALSE;
78 TimerOrWaitFired =
TRUE;
81 Wait->Callback(
Wait->Context, TimerOrWaitFired );
91 completion_event =
Wait->CompletionEvent;
151 Wait->Milliseconds = Milliseconds;
154 Wait->DeleteCount = 0;
183 *NewWaitObject =
Wait;
211 if (
Wait->CallbackInProgress)
213 if (CompletionEvent !=
NULL)
228 if (
Wait->CallbackInProgress)
237 if (
Wait->CallbackInProgress)
#define InterlockedIncrement
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define INVALID_HANDLE_VALUE
#define InterlockedExchangePointer(Target, Value)
NTSYSAPI NTSTATUS NTAPI RtlQueueWorkItem(_In_ WORKERCALLBACKFUNC Function, _In_opt_ PVOID Context, _In_ ULONG Flags)
VOID(NTAPI * WAITORTIMERCALLBACKFUNC)(PVOID pvContext, BOOLEAN fTimerOrWaitFired)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSYSAPI NTSTATUS NTAPI NtWaitForSingleObject(IN HANDLE hObject, IN BOOLEAN bAlertable, IN PLARGE_INTEGER Timeout)
NTSTATUS NTAPI NtSetEvent(IN HANDLE EventHandle, OUT PLONG PreviousState OPTIONAL)
NTSTATUS NTAPI NtCreateEvent(OUT PHANDLE EventHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN EVENT_TYPE EventType, IN BOOLEAN InitialState)
NTSTATUS NTAPI NtWaitForMultipleObjects(IN ULONG ObjectCount, IN PHANDLE HandleArray, IN WAIT_TYPE WaitType, IN BOOLEAN Alertable, IN PLARGE_INTEGER TimeOut OPTIONAL)
static PLARGE_INTEGER get_nt_timeout(PLARGE_INTEGER pTime, ULONG timeout)
NTSTATUS NTAPI RtlDeregisterWait(HANDLE WaitHandle)
static VOID NTAPI Wait_thread_proc(LPVOID Arg)
NTSTATUS NTAPI RtlRegisterWait(PHANDLE NewWaitObject, HANDLE Object, WAITORTIMERCALLBACKFUNC Callback, PVOID Context, ULONG Milliseconds, ULONG Flags)
struct _RTLP_WAIT * PRTLP_WAIT
struct _RTLP_WAIT RTLP_WAIT
NTSTATUS NTAPI RtlDeregisterWaitEx(HANDLE WaitHandle, HANDLE CompletionEvent)
WAITORTIMERCALLBACKFUNC Callback
BOOLEAN CallbackInProgress
static EFI_HANDLE * handles
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ WDFDPC _In_ BOOLEAN Wait
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
_In_ PCCERT_CONTEXT _In_opt_ LPFILETIME pTime
#define WT_TRANSFER_IMPERSONATION
#define WT_EXECUTEINPERSISTENTTHREAD
#define WT_EXECUTEONLYONCE
#define WT_EXECUTEINIOTHREAD
#define WT_EXECUTELONGFUNCTION
_Must_inspect_result_ _In_ ULONG Flags