[NDK/RTL]: Implement, define, fix, and comment RtlSetUnhandledExceptionFilter.

svn path=/trunk/; revision=54680
This commit is contained in:
Alex Ionescu 2011-12-18 01:50:11 +00:00
parent 1b0eb4aad4
commit 48b3130f83
3 changed files with 21 additions and 7 deletions

View file

@ -604,10 +604,10 @@ RtlAssert(
); );
NTSYSAPI NTSYSAPI
PVOID VOID
NTAPI NTAPI
RtlSetUnhandledExceptionFilter( RtlSetUnhandledExceptionFilter(
IN PVOID TopLevelExceptionFilter IN PRTLP_UNHANDLED_EXCEPTION_FILTER TopLevelExceptionFilter
); );
NTSYSAPI NTSYSAPI

View file

@ -472,6 +472,15 @@ extern const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine;
#endif /* NTOS_MODE_USER */ #endif /* NTOS_MODE_USER */
//
// Unhandled Exception Filter
//
typedef ULONG
(NTAPI *RTLP_UNHANDLED_EXCEPTION_FILTER)(
IN struct _EXCEPTION_POINTERS *ExceptionInfo
);
typedef RTLP_UNHANDLED_EXCEPTION_FILTER *PRTLP_UNHANDLED_EXCEPTION_FILTER;
// //
// Callback for RTL Heap Enumeration // Callback for RTL Heap Enumeration
// //

View file

@ -15,6 +15,10 @@
#define NDEBUG #define NDEBUG
#include <debug.h> #include <debug.h>
/* GLOBALS *****************************************************************/
PRTLP_UNHANDLED_EXCEPTION_FILTER RtlpUnhandledExceptionFilter;
/* FUNCTIONS ***************************************************************/ /* FUNCTIONS ***************************************************************/
#if !defined(_M_IX86) && !defined(_M_AMD64) #if !defined(_M_IX86) && !defined(_M_AMD64)
@ -172,17 +176,18 @@ LONG
NTAPI NTAPI
RtlUnhandledExceptionFilter(IN struct _EXCEPTION_POINTERS* ExceptionInfo) RtlUnhandledExceptionFilter(IN struct _EXCEPTION_POINTERS* ExceptionInfo)
{ {
/* This is used by the security cookie checks, and calso called externally */
UNIMPLEMENTED; UNIMPLEMENTED;
return ERROR_CALL_NOT_IMPLEMENTED; return ERROR_CALL_NOT_IMPLEMENTED;
} }
/* /*
* @unimplemented * @implemented
*/ */
PVOID VOID
NTAPI NTAPI
RtlSetUnhandledExceptionFilter(IN PVOID TopLevelExceptionFilter) RtlSetUnhandledExceptionFilter(IN PRTLP_UNHANDLED_EXCEPTION_FILTER TopLevelExceptionFilter)
{ {
UNIMPLEMENTED; /* Set the filter which is used by the CriticalSection package */
return NULL; RtlpUnhandledExceptionFilter = RtlEncodePointer(TopLevelExceptionFilter);
} }