Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
8a48621f
Commit
8a48621f
authored
Oct 17, 2018
by
Jacek Caban
Committed by
Alexandre Julliard
Oct 17, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rpcrt4: Add RpcExceptionFilter implementation.
Signed-off-by:
Jacek Caban
<
jacek@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
d6c94be7
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
18 additions
and
13 deletions
+18
-13
rpcrt4.spec
dlls/rpcrt4/rpcrt4.spec
+2
-1
rpcrt4_main.c
dlls/rpcrt4/rpcrt4_main.c
+2
-1
rpc.c
dlls/rpcrt4/tests/rpc.c
+12
-11
rpcdce.h
include/rpcdce.h
+2
-0
No files found.
dlls/rpcrt4/rpcrt4.spec
View file @
8a48621f
...
@@ -42,7 +42,7 @@
...
@@ -42,7 +42,7 @@
@ stub I_RpcConnectionSetSockBuffSize
@ stub I_RpcConnectionSetSockBuffSize
@ stub I_RpcDeleteMutex
@ stub I_RpcDeleteMutex
@ stub I_RpcEnableWmiTrace # wxp
@ stub I_RpcEnableWmiTrace # wxp
@ stdcall I_RpcExceptionFilter(long)
@ stdcall I_RpcExceptionFilter(long)
RpcExceptionFilter
@ stdcall I_RpcFree(ptr)
@ stdcall I_RpcFree(ptr)
@ stdcall I_RpcFreeBuffer(ptr)
@ stdcall I_RpcFreeBuffer(ptr)
@ stub I_RpcFreePipeBuffer
@ stub I_RpcFreePipeBuffer
...
@@ -383,6 +383,7 @@
...
@@ -383,6 +383,7 @@
@ stub RpcErrorResetEnumeration # wxp
@ stub RpcErrorResetEnumeration # wxp
@ stdcall RpcErrorSaveErrorInfo(ptr ptr ptr)
@ stdcall RpcErrorSaveErrorInfo(ptr ptr ptr)
@ stdcall RpcErrorStartEnumeration(ptr)
@ stdcall RpcErrorStartEnumeration(ptr)
@ stdcall RpcExceptionFilter(long)
@ stub RpcFreeAuthorizationContext # wxp
@ stub RpcFreeAuthorizationContext # wxp
@ stdcall RpcGetAsyncCallStatus(ptr) RpcAsyncGetCallStatus
@ stdcall RpcGetAsyncCallStatus(ptr) RpcAsyncGetCallStatus
@ stub RpcIfIdVectorFree
@ stub RpcIfIdVectorFree
...
...
dlls/rpcrt4/rpcrt4_main.c
View file @
8a48621f
...
@@ -854,9 +854,10 @@ LONG WINAPI I_RpcMapWin32Status(RPC_STATUS status)
...
@@ -854,9 +854,10 @@ LONG WINAPI I_RpcMapWin32Status(RPC_STATUS status)
}
}
/******************************************************************************
/******************************************************************************
* RpcExceptionFilter (rpcrt4.@)
* I_RpcExceptionFilter (rpcrt4.@)
* I_RpcExceptionFilter (rpcrt4.@)
*/
*/
int
WINAPI
I_
RpcExceptionFilter
(
ULONG
ExceptionCode
)
int
WINAPI
RpcExceptionFilter
(
ULONG
ExceptionCode
)
{
{
TRACE
(
"0x%x
\n
"
,
ExceptionCode
);
TRACE
(
"0x%x
\n
"
,
ExceptionCode
);
switch
(
ExceptionCode
)
switch
(
ExceptionCode
)
...
...
dlls/rpcrt4/tests/rpc.c
View file @
8a48621f
...
@@ -649,15 +649,15 @@ static void test_RpcStringBindingParseA(void)
...
@@ -649,15 +649,15 @@ static void test_RpcStringBindingParseA(void)
ok
(
options
==
NULL
,
"options was %p instead of NULL
\n
"
,
options
);
ok
(
options
==
NULL
,
"options was %p instead of NULL
\n
"
,
options
);
}
}
static
void
test_
I_RpcExceptionFilter
(
void
)
static
void
test_
RpcExceptionFilter
(
const
char
*
func_name
)
{
{
ULONG
exception
;
ULONG
exception
;
int
retval
;
int
retval
;
int
(
WINAPI
*
p
I_RpcExceptionFilter
)(
ULONG
)
=
(
void
*
)
GetProcAddress
(
GetModuleHandleA
(
"rpcrt4.dll"
),
"I_RpcExceptionFilter"
);
int
(
WINAPI
*
p
RpcExceptionFilter
)(
ULONG
)
=
(
void
*
)
GetProcAddress
(
GetModuleHandleA
(
"rpcrt4.dll"
),
func_name
);
if
(
!
p
I_
RpcExceptionFilter
)
if
(
!
pRpcExceptionFilter
)
{
{
win_skip
(
"
I_RpcExceptionFilter not exported
\n
"
);
win_skip
(
"
%s not exported
\n
"
,
func_name
);
return
;
return
;
}
}
...
@@ -668,7 +668,7 @@ static void test_I_RpcExceptionFilter(void)
...
@@ -668,7 +668,7 @@ static void test_I_RpcExceptionFilter(void)
if
(
exception
==
0x40000005
)
exception
=
0x80000000
;
if
(
exception
==
0x40000005
)
exception
=
0x80000000
;
if
(
exception
==
0x80000005
)
exception
=
0xc0000000
;
if
(
exception
==
0x80000005
)
exception
=
0xc0000000
;
retval
=
p
I_
RpcExceptionFilter
(
exception
);
retval
=
pRpcExceptionFilter
(
exception
);
switch
(
exception
)
switch
(
exception
)
{
{
case
STATUS_DATATYPE_MISALIGNMENT
:
case
STATUS_DATATYPE_MISALIGNMENT
:
...
@@ -679,17 +679,17 @@ static void test_I_RpcExceptionFilter(void)
...
@@ -679,17 +679,17 @@ static void test_I_RpcExceptionFilter(void)
case
STATUS_INSTRUCTION_MISALIGNMENT
:
case
STATUS_INSTRUCTION_MISALIGNMENT
:
case
STATUS_STACK_OVERFLOW
:
case
STATUS_STACK_OVERFLOW
:
case
STATUS_POSSIBLE_DEADLOCK
:
case
STATUS_POSSIBLE_DEADLOCK
:
ok
(
retval
==
EXCEPTION_CONTINUE_SEARCH
,
"
I_RpcExceptionFilter
(0x%x) should have returned %d instead of %d
\n
"
,
ok
(
retval
==
EXCEPTION_CONTINUE_SEARCH
,
"
%s
(0x%x) should have returned %d instead of %d
\n
"
,
exception
,
EXCEPTION_CONTINUE_SEARCH
,
retval
);
func_name
,
exception
,
EXCEPTION_CONTINUE_SEARCH
,
retval
);
break
;
break
;
case
STATUS_GUARD_PAGE_VIOLATION
:
case
STATUS_GUARD_PAGE_VIOLATION
:
case
STATUS_IN_PAGE_ERROR
:
case
STATUS_IN_PAGE_ERROR
:
case
STATUS_HANDLE_NOT_CLOSABLE
:
case
STATUS_HANDLE_NOT_CLOSABLE
:
trace
(
"
I_RpcExceptionFilter(0x%x) returned %d
\n
"
,
exception
,
retval
);
trace
(
"
%s(0x%x) returned %d
\n
"
,
func_name
,
exception
,
retval
);
break
;
break
;
default:
default:
ok
(
retval
==
EXCEPTION_EXECUTE_HANDLER
,
"
I_RpcExceptionFilter
(0x%x) should have returned %d instead of %d
\n
"
,
ok
(
retval
==
EXCEPTION_EXECUTE_HANDLER
,
"
%s
(0x%x) should have returned %d instead of %d
\n
"
,
exception
,
EXCEPTION_EXECUTE_HANDLER
,
retval
);
func_name
,
exception
,
EXCEPTION_EXECUTE_HANDLER
,
retval
);
}
}
}
}
}
}
...
@@ -1198,7 +1198,8 @@ START_TEST( rpc )
...
@@ -1198,7 +1198,8 @@ START_TEST( rpc )
test_towers
();
test_towers
();
test_I_RpcMapWin32Status
();
test_I_RpcMapWin32Status
();
test_RpcStringBindingParseA
();
test_RpcStringBindingParseA
();
test_I_RpcExceptionFilter
();
test_RpcExceptionFilter
(
"I_RpcExceptionFilter"
);
test_RpcExceptionFilter
(
"RpcExceptionFilter"
);
test_RpcStringBindingFromBinding
();
test_RpcStringBindingFromBinding
();
test_UuidCreate
();
test_UuidCreate
();
test_UuidCreateSequential
();
test_UuidCreateSequential
();
...
...
include/rpcdce.h
View file @
8a48621f
...
@@ -325,6 +325,8 @@ RPC_STATUS RPC_ENTRY DceErrorInqTextW(RPC_STATUS e, RPC_WSTR buffer);
...
@@ -325,6 +325,8 @@ RPC_STATUS RPC_ENTRY DceErrorInqTextW(RPC_STATUS e, RPC_WSTR buffer);
RPCRTAPI
DECLSPEC_NORETURN
void
RPC_ENTRY
RPCRTAPI
DECLSPEC_NORETURN
void
RPC_ENTRY
RpcRaiseException
(
RPC_STATUS
exception
);
RpcRaiseException
(
RPC_STATUS
exception
);
RPCRTAPI
int
RPC_ENTRY
RpcExceptionFilter
(
ULONG
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingCopy
(
RPC_BINDING_HANDLE
SourceBinding
,
RPC_BINDING_HANDLE
*
DestinationBinding
);
RpcBindingCopy
(
RPC_BINDING_HANDLE
SourceBinding
,
RPC_BINDING_HANDLE
*
DestinationBinding
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment