mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +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.def)
|
||||
|
||||
if(MSVC)
|
||||
list(APPEND SOURCE msvc.S)
|
||||
endif()
|
||||
|
||||
remove_definitions(-D_WIN32_WINNT=0x502)
|
||||
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)
|
||||
{
|
||||
switch (GetExceptionCode())
|
||||
switch (__eptr->ExceptionRecord->ExceptionCode)
|
||||
{
|
||||
case EXCEPTION_ACCESS_VIOLATION:
|
||||
case EXCEPTION_ILLEGAL_INSTRUCTION:
|
||||
|
@ -396,7 +396,7 @@ RPC_STATUS WINAPI RpcEpResolveBinding( RPC_BINDING_HANDLE Binding, RPC_IF_HANDLE
|
|||
|
||||
status = get_epm_handle_client(Binding, &handle);
|
||||
if (status != RPC_S_OK) return status;
|
||||
|
||||
|
||||
status = TowerConstruct(&If->InterfaceId, &If->TransferSyntax, bind->Protseq,
|
||||
((RpcBinding *)handle)->Endpoint,
|
||||
bind->NetworkAddr, &tower);
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
@ stub I_RpcIfInqTransferSyntaxes
|
||||
@ stub I_RpcLogEvent
|
||||
@ stdcall I_RpcMapWin32Status(long)
|
||||
@ stub I_RpcNegotiateTransferSyntax # wxp
|
||||
@ stdcall I_RpcNegotiateTransferSyntax(ptr) # wxp
|
||||
@ stub I_RpcNsBindingSetEntryName
|
||||
@ stub I_RpcNsBindingSetEntryNameA
|
||||
@ stub I_RpcNsBindingSetEntryNameW
|
||||
|
@ -194,7 +194,7 @@
|
|||
@ stdcall NdrFullPointerQueryPointer(ptr ptr long ptr)
|
||||
@ stdcall NdrFullPointerQueryRefId(ptr long long ptr)
|
||||
@ stdcall NdrFullPointerXlatFree(ptr)
|
||||
@ stdcall NdrFullPointerXlatInit(long long)
|
||||
@ stdcall NdrFullPointerXlatInit(long long)
|
||||
@ stdcall NdrGetBuffer(ptr long ptr)
|
||||
@ stub NdrGetDcomProtocolVersion
|
||||
@ stub NdrGetPartialBuffer
|
||||
|
@ -265,7 +265,7 @@
|
|||
@ stdcall NdrRangeUnmarshall(ptr ptr ptr long)
|
||||
@ stub NdrRpcSmClientAllocate
|
||||
@ stub NdrRpcSmClientFree
|
||||
@ stub NdrRpcSmSetClientToOsf
|
||||
@ stdcall NdrRpcSmSetClientToOsf(ptr)
|
||||
@ stub NdrRpcSsDefaultAllocate
|
||||
@ stub NdrRpcSsDefaultFree
|
||||
@ stub NdrRpcSsDisableAllocate
|
||||
|
|
Loading…
Reference in a new issue