Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

66 lines
979 B

#include "precomp.h"
DWORD
SPDDestroyClientContextHandle(
DWORD dwStatus,
HANDLE hFilter
)
{
DWORD dwError = 0;
switch (dwStatus) {
case RPC_S_SERVER_UNAVAILABLE:
case RPC_S_CALL_FAILED:
case RPC_S_CALL_FAILED_DNE:
case RPC_S_UNKNOWN_IF:
RpcTryExcept {
RpcSsDestroyClientContext(&hFilter);
} RpcExcept(I_RpcExceptionFilter(RpcExceptionCode())) {
dwError = TranslateExceptionCode(RpcExceptionCode());
BAIL_ON_WIN32_ERROR(dwError);
} RpcEndExcept
break;
default:
dwError = dwStatus;
break;
}
error:
return (dwError);
}
int
RPC_ENTRY
I_RpcExceptionFilter(
unsigned long uExceptionCode
)
{
int i = 0;
for (i = 0; i < FATAL_EXCEPTIONS_ARRAY_SIZE; i ++) {
if (uExceptionCode == guFatalExceptions[i]) {
return EXCEPTION_CONTINUE_SEARCH;
}
}
return EXCEPTION_EXECUTE_HANDLER;
}