mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 03:12:59 +00:00
[RPCRT4]
- Add msvc.S containing call_stubless_func in assembly - Fix spec file, 2 stub functions are already implemented - fix use of GetExceptionCode(), it cannot be used in that context. svn path=/trunk/; revision=52399
This commit is contained in:
parent
b3b1b3262b
commit
2792c9b294
4 changed files with 27 additions and 5 deletions
|
@ -23,6 +23,10 @@ list(APPEND SOURCE
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/rpcrt4_stubs.c
|
${CMAKE_CURRENT_BINARY_DIR}/rpcrt4_stubs.c
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/rpcrt4.def)
|
${CMAKE_CURRENT_BINARY_DIR}/rpcrt4.def)
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
list(APPEND SOURCE msvc.S)
|
||||||
|
endif()
|
||||||
|
|
||||||
remove_definitions(-D_WIN32_WINNT=0x502)
|
remove_definitions(-D_WIN32_WINNT=0x502)
|
||||||
add_definitions(-D_WIN32_WINNT=0x600)
|
add_definitions(-D_WIN32_WINNT=0x600)
|
||||||
|
|
||||||
|
|
18
reactos/dll/win32/rpcrt4/msvc.S
Normal file
18
reactos/dll/win32/rpcrt4/msvc.S
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
#include <asm.inc>
|
||||||
|
|
||||||
|
.code32
|
||||||
|
|
||||||
|
EXTERN _ObjectStubless@4:PROC
|
||||||
|
|
||||||
|
PUBLIC _call_stubless_func
|
||||||
|
_call_stubless_func:
|
||||||
|
|
||||||
|
push esp /* pointer to index */
|
||||||
|
call _ObjectStubless@4
|
||||||
|
pop edx /* args size */
|
||||||
|
mov ecx, [esp] /* return address */
|
||||||
|
add esp, edx
|
||||||
|
jmp ecx
|
||||||
|
|
||||||
|
END
|
|
@ -171,7 +171,7 @@ static RPC_STATUS get_epm_handle_server(RPC_BINDING_HANDLE *epm_handle)
|
||||||
|
|
||||||
static LONG WINAPI rpc_filter(EXCEPTION_POINTERS *__eptr)
|
static LONG WINAPI rpc_filter(EXCEPTION_POINTERS *__eptr)
|
||||||
{
|
{
|
||||||
switch (GetExceptionCode())
|
switch (__eptr->ExceptionRecord->ExceptionCode)
|
||||||
{
|
{
|
||||||
case EXCEPTION_ACCESS_VIOLATION:
|
case EXCEPTION_ACCESS_VIOLATION:
|
||||||
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
@ stub I_RpcIfInqTransferSyntaxes
|
@ stub I_RpcIfInqTransferSyntaxes
|
||||||
@ stub I_RpcLogEvent
|
@ stub I_RpcLogEvent
|
||||||
@ stdcall I_RpcMapWin32Status(long)
|
@ stdcall I_RpcMapWin32Status(long)
|
||||||
@ stub I_RpcNegotiateTransferSyntax # wxp
|
@ stdcall I_RpcNegotiateTransferSyntax(ptr) # wxp
|
||||||
@ stub I_RpcNsBindingSetEntryName
|
@ stub I_RpcNsBindingSetEntryName
|
||||||
@ stub I_RpcNsBindingSetEntryNameA
|
@ stub I_RpcNsBindingSetEntryNameA
|
||||||
@ stub I_RpcNsBindingSetEntryNameW
|
@ stub I_RpcNsBindingSetEntryNameW
|
||||||
|
@ -265,7 +265,7 @@
|
||||||
@ stdcall NdrRangeUnmarshall(ptr ptr ptr long)
|
@ stdcall NdrRangeUnmarshall(ptr ptr ptr long)
|
||||||
@ stub NdrRpcSmClientAllocate
|
@ stub NdrRpcSmClientAllocate
|
||||||
@ stub NdrRpcSmClientFree
|
@ stub NdrRpcSmClientFree
|
||||||
@ stub NdrRpcSmSetClientToOsf
|
@ stdcall NdrRpcSmSetClientToOsf(ptr)
|
||||||
@ stub NdrRpcSsDefaultAllocate
|
@ stub NdrRpcSsDefaultAllocate
|
||||||
@ stub NdrRpcSsDefaultFree
|
@ stub NdrRpcSsDefaultFree
|
||||||
@ stub NdrRpcSsDisableAllocate
|
@ stub NdrRpcSsDisableAllocate
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue