55 HandlerRemoved =
FALSE;
66 CurrentEntry = VectoredHandlerList->
Flink;
67 while (CurrentEntry != VectoredHandlerList)
75 VectoredExceptionHandler->
Refs++;
88 HandlerReturn = VectoredHandler(&ExceptionInfo);
94 VectoredExceptionHandler->
Refs--;
95 if (VectoredExceptionHandler->
Refs == 0)
102 HandlerRemoved =
TRUE;
117 VectoredExceptionHandler);
131 CurrentEntry = CurrentEntry->
Flink;
145 VectoredExceptionHandler);
164 if (!VectoredHandlerEntry)
return NULL;
168 VectoredHandlerEntry->
Refs = 1;
192 return VectoredHandlerEntry;
206 HandlerRemoved =
FALSE;
207 HandlerFound =
FALSE;
213 CurrentEntry = VectoredHandlerList->
Flink;
214 while (CurrentEntry != VectoredHandlerList)
222 if (VectoredExceptionHandler == VectoredHandlerHandle)
236 VectoredExceptionHandler->
Refs--;
237 if (VectoredExceptionHandler->
Refs == 0)
241 HandlerRemoved =
TRUE;
251 CurrentEntry = CurrentEntry->
Flink;
264 VectoredExceptionHandler);
268 return (
ULONG)HandlerFound;
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 RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define InsertHeadList(ListHead, Entry)
#define InitializeListHead(ListHead)
NTSYSAPI PVOID WINAPI RtlEncodePointer(PVOID)
NTSYSAPI PVOID WINAPI RtlDecodePointer(PVOID)
#define EXCEPTION_CONTINUE_SEARCH
#define EXCEPTION_CONTINUE_EXECUTION
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlInitializeCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
LONG(NTAPI * PVECTORED_EXCEPTION_HANDLER)(PEXCEPTION_POINTERS ExceptionPointers)
#define DECLSPEC_HOTPATCH
PEXCEPTION_RECORD ExceptionRecord
struct _LIST_ENTRY * Flink
PVECTORED_EXCEPTION_HANDLER VectoredHandler
#define CONTAINING_RECORD(address, type, field)
DECLSPEC_HOTPATCH PVOID NTAPI RtlAddVectoredExceptionHandler(IN ULONG FirstHandler, IN PVECTORED_EXCEPTION_HANDLER VectoredHandler)
ULONG NTAPI RtlpRemoveVectoredHandler(IN PVOID VectoredHandlerHandle, IN PLIST_ENTRY VectoredHandlerList)
VOID NTAPI RtlCallVectoredContinueHandlers(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context)
BOOLEAN NTAPI RtlCallVectoredExceptionHandlers(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context)
DECLSPEC_HOTPATCH PVOID NTAPI RtlAddVectoredContinueHandler(IN ULONG FirstHandler, IN PVECTORED_EXCEPTION_HANDLER VectoredHandler)
ULONG NTAPI RtlRemoveVectoredContinueHandler(IN PVOID VectoredHandlerHandle)
BOOLEAN NTAPI RtlpCallVectoredHandlers(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context, IN PLIST_ENTRY VectoredHandlerList)
LIST_ENTRY RtlpVectoredContinueList
struct _RTL_VECTORED_HANDLER_ENTRY * PRTL_VECTORED_HANDLER_ENTRY
VOID NTAPI RtlpInitializeVectoredExceptionHandling(VOID)
ULONG NTAPI RtlRemoveVectoredExceptionHandler(IN PVOID VectoredHandlerHandle)
RTL_CRITICAL_SECTION RtlpVectoredHandlerLock
PVOID NTAPI RtlpAddVectoredHandler(IN ULONG FirstHandler, IN PVECTORED_EXCEPTION_HANDLER VectoredHandler, IN PLIST_ENTRY VectoredHandlerList)
struct _RTL_VECTORED_HANDLER_ENTRY RTL_VECTORED_HANDLER_ENTRY
LIST_ENTRY RtlpVectoredExceptionList