From 9a2914b11f92f1ccb3187eb782f622cbba1e6726 Mon Sep 17 00:00:00 2001 From: Rob Shearman Date: Fri, 11 Apr 2008 10:59:34 +0100 Subject: [PATCH] rpcrt4: Implement I_RpcExceptionFilter. --- dlls/rpcrt4/rpcrt4.spec | 2 +- dlls/rpcrt4/rpcrt4_main.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/dlls/rpcrt4/rpcrt4.spec b/dlls/rpcrt4/rpcrt4.spec index da54ddff5d8..bbf5a013299 100644 --- a/dlls/rpcrt4/rpcrt4.spec +++ b/dlls/rpcrt4/rpcrt4.spec @@ -42,7 +42,7 @@ @ stub I_RpcConnectionSetSockBuffSize @ stub I_RpcDeleteMutex @ stub I_RpcEnableWmiTrace # wxp -@ stub I_RpcExceptionFilter # wxp +@ stdcall I_RpcExceptionFilter(long) @ stdcall I_RpcFree(ptr) @ stdcall I_RpcFreeBuffer(ptr) @ stub I_RpcFreePipeBuffer diff --git a/dlls/rpcrt4/rpcrt4_main.c b/dlls/rpcrt4/rpcrt4_main.c index 4438f52e4ab..02e1dcd5600 100644 --- a/dlls/rpcrt4/rpcrt4_main.c +++ b/dlls/rpcrt4/rpcrt4_main.c @@ -936,6 +936,22 @@ LONG WINAPI I_RpcMapWin32Status(RPC_STATUS status) } } +/****************************************************************************** + * I_RpcExceptionFilter (rpcrt4.@) + */ +int WINAPI I_RpcExceptionFilter(ULONG ExceptionCode) +{ + TRACE("0x%x\n", ExceptionCode); + switch (ExceptionCode) + { + case EXCEPTION_ACCESS_VIOLATION: + case EXCEPTION_ILLEGAL_INSTRUCTION: + return EXCEPTION_CONTINUE_SEARCH; + default: + return EXCEPTION_EXECUTE_HANDLER; + } +} + /****************************************************************************** * RpcErrorStartEnumeration (rpcrt4.@) */