diff --git a/dlls/rpcrt4/tests/rpc.c b/dlls/rpcrt4/tests/rpc.c index 9fd9993..6c1e98d 100644 --- a/dlls/rpcrt4/tests/rpc.c +++ b/dlls/rpcrt4/tests/rpc.c @@ -614,6 +614,7 @@ static void test_I_RpcExceptionFilter(void) { ULONG exception; int retval; + BOOL w2k3_up = FALSE; int (WINAPI *pI_RpcExceptionFilter)(ULONG) = (void *)GetProcAddress(GetModuleHandle("rpcrt4.dll"), "I_RpcExceptionFilter"); if (!pI_RpcExceptionFilter) @@ -622,6 +623,13 @@ static void test_I_RpcExceptionFilter(void) return; } + retval = pI_RpcExceptionFilter(STATUS_IN_PAGE_ERROR); + if (retval == EXCEPTION_CONTINUE_SEARCH) + { + trace("We are on Windows 2003 or Vista\n"); + w2k3_up = TRUE; + } + for (exception = 0; exception < STATUS_REG_NAT_CONSUMPTION; exception++) { /* skip over uninteresting bits of the number space */ @@ -643,6 +651,15 @@ static void test_I_RpcExceptionFilter(void) ok(retval == EXCEPTION_CONTINUE_SEARCH, "I_RpcExceptionFilter(0x%x) should have returned %d instead of %d\n", exception, EXCEPTION_CONTINUE_SEARCH, retval); break; + case STATUS_IN_PAGE_ERROR: + case STATUS_HANDLE_NOT_CLOSABLE: + if (w2k3_up) + { + ok(retval == EXCEPTION_CONTINUE_SEARCH, "I_RpcExceptionFilter(0x%x) should have returned %d instead of %d\n", + exception, EXCEPTION_CONTINUE_SEARCH, retval); + break; + } + /* fall through */ default: ok(retval == EXCEPTION_EXECUTE_HANDLER, "I_RpcExceptionFilter(0x%x) should have returned %d instead of %d\n", exception, EXCEPTION_EXECUTE_HANDLER, retval); -- 1.5.4.3