Modified: trunk/reactos/lib/rpcrt4/cproxy.c
Modified: trunk/reactos/lib/rpcrt4/cpsf.c
Modified: trunk/reactos/lib/rpcrt4/ndr_marshall.c
Modified: trunk/reactos/lib/rpcrt4/ndr_midl.c
Modified: trunk/reactos/lib/rpcrt4/ndr_ole.c
Modified: trunk/reactos/lib/rpcrt4/rpc_binding.c
Modified: trunk/reactos/lib/rpcrt4/rpc_server.c
Modified: trunk/reactos/lib/rpcrt4/rpcrt4.spec
--- trunk/reactos/lib/rpcrt4/cproxy.c 2005-08-04 18:11:03 UTC (rev 17047)
+++ trunk/reactos/lib/rpcrt4/cproxy.c 2005-08-04 21:35:00 UTC (rev 17048)
@@ -43,7 +43,7 @@
/* I don't know what MS's std proxy structure looks like,
so this probably doesn't match, but that shouldn't matter */
typedef struct {
- IRpcProxyBufferVtbl *lpVtbl;
+ const IRpcProxyBufferVtbl *lpVtbl;
LPVOID *PVtbl;
DWORD RefCount;
const MIDL_STUBLESS_PROXY_INFO *stubless;
@@ -55,7 +55,7 @@
struct StublessThunk *thunks;
} StdProxyImpl;
-static IRpcProxyBufferVtbl StdProxy_Vtbl;
+static const IRpcProxyBufferVtbl StdProxy_Vtbl;
#define ICOM_THIS_MULTI(impl,field,iface) impl* const This=(impl*)((char*)(iface) - offsetof(impl,field))
@@ -269,7 +269,7 @@
This->pChannel = NULL;
}
-static IRpcProxyBufferVtbl StdProxy_Vtbl =
+static const IRpcProxyBufferVtbl StdProxy_Vtbl =
{
StdProxy_QueryInterface,
StdProxy_AddRef,
--- trunk/reactos/lib/rpcrt4/cpsf.c 2005-08-04 18:11:03 UTC (rev 17047)
+++ trunk/reactos/lib/rpcrt4/cpsf.c 2005-08-04 21:35:00 UTC (rev 17048)
@@ -116,7 +116,7 @@
ProxyInfo->pStubVtblList[Index], iface, ppStub);
}
-static IPSFactoryBufferVtbl CStdPSFactory_Vtbl =
+static const IPSFactoryBufferVtbl CStdPSFactory_Vtbl =
{
CStdPSFactory_QueryInterface,
CStdPSFactory_AddRef,
--- trunk/reactos/lib/rpcrt4/ndr_marshall.c 2005-08-04 18:11:03 UTC (rev 17047)
+++ trunk/reactos/lib/rpcrt4/ndr_marshall.c 2005-08-04 21:35:00 UTC (rev 17048)
@@ -562,6 +562,21 @@
return NULL; /* FIXME: is this always right? */
}
+static inline void dump_pointer_attr(unsigned char attr)
+{
+ if (attr & RPC_FC_P_ALLOCALLNODES)
+ TRACE(" RPC_FC_P_ALLOCALLNODES");
+ if (attr & RPC_FC_P_DONTFREE)
+ TRACE(" RPC_FC_P_DONTFREE");
+ if (attr & RPC_FC_P_ONSTACK)
+ TRACE(" RPC_FC_P_ONSTACK");
+ if (attr & RPC_FC_P_SIMPLEPOINTER)
+ TRACE(" RPC_FC_P_SIMPLEPOINTER");
+ if (attr & RPC_FC_P_DEREF)
+ TRACE(" RPC_FC_P_DEREF");
+ TRACE("\n");
+}
+
/***********************************************************************
* PointerMarshall
*/
@@ -575,7 +590,7 @@
NDR_MARSHALL m;
TRACE("(%p,%p,%p,%p)\n", pStubMsg, Buffer, Pointer, pFormat);
- TRACE("type=%d, attr=%d\n", type, attr);
+ TRACE("type=0x%x, attr=", type); dump_pointer_attr(attr);
pFormat += 2;
if (attr & RPC_FC_P_SIMPLEPOINTER) desc = pFormat;
else desc = pFormat + *(const SHORT*)pFormat;
@@ -584,21 +599,33 @@
TRACE("deref => %p\n", Pointer);
}
- *(LPVOID*)Buffer = 0;
-
switch (type) {
case RPC_FC_RP: /* ref pointer (always non-null) */
+#if 0 /* this causes problems for InstallShield so is disabled - we need more tests */
+ if (!Pointer)
+ RpcRaiseException(RPC_X_NULL_REF_POINTER);
+#endif
break;
case RPC_FC_UP: /* unique pointer */
+ case RPC_FC_OP: /* object pointer - same as unique here */
+ TRACE("writing %p to buffer\n", Pointer);
+ NDR_LOCAL_UINT32_WRITE(pStubMsg->Buffer, (unsigned long)Pointer);
+ pStubMsg->Buffer += 4;
break;
+ case RPC_FC_FP:
default:
FIXME("unhandled ptr type=%02x\n", type);
+ RpcRaiseException(RPC_X_BAD_STUB_DATA);
}
- m = NdrMarshaller[*desc & NDR_TABLE_MASK];
- if (m) m(pStubMsg, Pointer, desc);
- else FIXME("no marshaller for data type=%02x\n", *desc);
+ TRACE("calling marshaller for type 0x%x\n", (int)*desc);
+ if (Pointer) {
+ m = NdrMarshaller[*desc & NDR_TABLE_MASK];
+ if (m) m(pStubMsg, Pointer, desc);
+ else FIXME("no marshaller for data type=%02x\n", *desc);
+ }
+
STD_OVERFLOW_CHECK(pStubMsg);
}
@@ -614,9 +641,10 @@
unsigned type = pFormat[0], attr = pFormat[1];
PFORMAT_STRING desc;
NDR_UNMARSHALL m;
+ DWORD pointer_id = 0;
TRACE("(%p,%p,%p,%p,%d)\n", pStubMsg, Buffer, pPointer, pFormat, fMustAlloc);
- TRACE("type=%d, attr=%d\n", type, attr);
+ TRACE("type=0x%x, attr=", type); dump_pointer_attr(attr);
pFormat += 2;
if (attr & RPC_FC_P_SIMPLEPOINTER) desc = pFormat;
else desc = pFormat + *(const SHORT*)pFormat;
@@ -627,18 +655,27 @@
switch (type) {
case RPC_FC_RP: /* ref pointer (always non-null) */
+ pointer_id = ~0UL;
break;
case RPC_FC_UP: /* unique pointer */
+ pointer_id = NDR_LOCAL_UINT32_READ(pStubMsg->Buffer);
+ pStubMsg->Buffer += 4;
break;
+ case RPC_FC_OP: /* object pointer - we must free data before overwriting it */
+ case RPC_FC_FP:
default:
FIXME("unhandled ptr type=%02x\n", type);
+ RpcRaiseException(RPC_X_BAD_STUB_DATA);
}
*pPointer = NULL;
- m = NdrUnmarshaller[*desc & NDR_TABLE_MASK];
- if (m) m(pStubMsg, pPointer, desc, fMustAlloc);
- else FIXME("no unmarshaller for data type=%02x\n", *desc);
+ if (pointer_id) {
+ m = NdrUnmarshaller[*desc & NDR_TABLE_MASK];
+ if (m) m(pStubMsg, pPointer, desc, fMustAlloc);
+ else FIXME("no unmarshaller for data type=%02x\n", *desc);
+ }
+
TRACE("pointer=%p\n", *pPointer);
}
@@ -666,10 +703,17 @@
switch (type) {
case RPC_FC_RP: /* ref pointer (always non-null) */
break;
- case RPC_FC_UP: /* unique pointer */
+ case RPC_FC_OP:
+ case RPC_FC_UP:
+ pStubMsg->BufferLength += 4;
+ /* NULL pointer has no further representation */
+ if (!Pointer)
+ return;
break;
+ case RPC_FC_FP:
default:
FIXME("unhandled ptr type=%02x\n", type);
+ RpcRaiseException(RPC_X_BAD_STUB_DATA);
}
m = NdrBufferSizer[*desc & NDR_TABLE_MASK];
@@ -689,7 +733,7 @@
NDR_MEMORYSIZE m;
FIXME("(%p,%p,%p): stub\n", pStubMsg, Buffer, pFormat);
- TRACE("type=%d, attr=%d\n", type, attr);
+ TRACE("type=%d, attr=", type); dump_pointer_attr(attr);
pFormat += 2;
if (attr & RPC_FC_P_SIMPLEPOINTER) desc = pFormat;
else desc = pFormat + *(const SHORT*)pFormat;
@@ -702,6 +746,7 @@
break;
default:
FIXME("unhandled ptr type=%02x\n", type);
+ RpcRaiseException(RPC_X_BAD_STUB_DATA);
}
m = NdrMemorySizer[*desc & NDR_TABLE_MASK];
@@ -723,7 +768,7 @@
NDR_FREE m;
TRACE("(%p,%p,%p)\n", pStubMsg, Pointer, pFormat);
- TRACE("type=%d, attr=%d\n", type, attr);
+ TRACE("type=%d, attr=", type); dump_pointer_attr(attr);
if (attr & RPC_FC_P_DONTFREE) return;
pFormat += 2;
if (attr & RPC_FC_P_SIMPLEPOINTER) desc = pFormat;
@@ -1085,7 +1130,6 @@
pStubMsg->BufferMark = pStubMsg->Buffer;
PointerMarshall(pStubMsg, pStubMsg->Buffer, pMemory, pFormat);
- pStubMsg->Buffer += 4;
STD_OVERFLOW_CHECK(pStubMsg);
@@ -1104,7 +1148,6 @@
pStubMsg->BufferMark = pStubMsg->Buffer;
PointerUnmarshall(pStubMsg, pStubMsg->Buffer, ppMemory, pFormat, fMustAlloc);
- pStubMsg->Buffer += 4;
return NULL;
}
@@ -1117,7 +1160,6 @@
PFORMAT_STRING pFormat)
{
TRACE("(%p,%p,%p)\n", pStubMsg, pMemory, pFormat);
- pStubMsg->BufferLength += 4;
PointerBufferSize(pStubMsg, pMemory, pFormat);
}
--- trunk/reactos/lib/rpcrt4/ndr_midl.c 2005-08-04 18:11:03 UTC (rev 17047)
+++ trunk/reactos/lib/rpcrt4/ndr_midl.c 2005-08-04 21:35:00 UTC (rev 17048)
@@ -185,6 +185,7 @@
assert( pRpcMessage && pStubMsg && pStubDesc );
memset(pRpcMessage, 0, sizeof(RPC_MESSAGE));
+ pRpcMessage->DataRepresentation = NDR_LOCAL_DATA_REPRESENTATION;
/* not everyone allocates stack space for w2kReserved */
memset(pStubMsg, 0, FIELD_OFFSET(MIDL_STUB_MESSAGE,pCSInfo));
@@ -277,9 +278,6 @@
return NULL;
}
- /* FIXME: Seems wrong. Where should this really come from, and when? */
- pStubMsg->RpcMsg->DataRepresentation = NDR_LOCAL_DATA_REPRESENTATION;
-
if (I_RpcSendReceive(pStubMsg->RpcMsg) != RPC_S_OK) {
WARN("I_RpcSendReceive did not return success.\n");
/* FIXME: raise exception? */
--- trunk/reactos/lib/rpcrt4/ndr_ole.c 2005-08-04 18:11:03 UTC (rev 17047)
+++ trunk/reactos/lib/rpcrt4/ndr_ole.c 2005-08-04 21:35:00 UTC (rev 17048)
@@ -79,7 +79,7 @@
* (which also implements the MInterfacePointer structure) */
typedef struct RpcStreamImpl
{
- IStreamVtbl *lpVtbl;
+ const IStreamVtbl *lpVtbl;
DWORD RefCount;
PMIDL_STUB_MESSAGE pMsg;
LPDWORD size;
@@ -126,13 +126,18 @@
ULONG *pcbRead)
{
RpcStreamImpl *This = (RpcStreamImpl *)iface;
- if (This->pos + cb > *This->size) cb = *This->size - This->pos;
+ HRESULT hr = S_OK;
+ if (This->pos + cb > *This->size)
+ {
+ cb = *This->size - This->pos;
+ hr = S_FALSE;
+ }
if (cb) {
memcpy(pv, This->data + This->pos, cb);
This->pos += cb;
}
if (pcbRead) *pcbRead = cb;
- return S_OK;
+ return hr;
}
static HRESULT WINAPI RpcStream_Write(LPSTREAM iface,
@@ -141,6 +146,8 @@
ULONG *pcbWritten)
{
RpcStreamImpl *This = (RpcStreamImpl *)iface;
+ if (This->data + cb > (char *)This->pMsg->BufferEnd)
+ return STG_E_MEDIUMFULL;
memcpy(This->data + This->pos, pv, cb);
This->pos += cb;
if (This->pos > *This->size) *This->size = This->pos;
@@ -182,7 +189,7 @@
return S_OK;
}
-static IStreamVtbl RpcStream_Vtbl =
+static const IStreamVtbl RpcStream_Vtbl =
{
RpcStream_QueryInterface,
RpcStream_AddRef,
@@ -247,11 +254,15 @@
TRACE("(%p,%p,%p)\n", pStubMsg, pMemory, pFormat);
pStubMsg->MaxCount = 0;
if (!LoadCOM()) return NULL;
- stream = RpcStream_Create(pStubMsg, TRUE);
- hr = COM_MarshalInterface(stream, riid, (LPUNKNOWN)pMemory,
- pStubMsg->dwDestContext, pStubMsg->pvDestContext,
- MSHLFLAGS_NORMAL);
- IStream_Release(stream);
+ if (pStubMsg->Buffer + sizeof(DWORD) < pStubMsg->BufferEnd) {
+ stream = RpcStream_Create(pStubMsg, TRUE);
+ if (stream) {
+ hr = COM_MarshalInterface(stream, riid, (LPUNKNOWN)pMemory,
+ pStubMsg->dwDestContext, pStubMsg->pvDestContext,
+ MSHLFLAGS_NORMAL);
+ IStream_Release(stream);
+ }
+ }
return NULL;
}
@@ -269,9 +280,13 @@
TRACE("(%p,%p,%p,%d)\n", pStubMsg, ppMemory, pFormat, fMustAlloc);
if (!LoadCOM()) return NULL;
*(LPVOID*)ppMemory = NULL;
- stream = RpcStream_Create(pStubMsg, FALSE);
- hr = COM_UnmarshalInterface(stream, &IID_NULL, (LPVOID*)ppMemory);
- IStream_Release(stream);
+ if (pStubMsg->Buffer + sizeof(DWORD) < pStubMsg->BufferEnd) {
+ stream = RpcStream_Create(pStubMsg, FALSE);
+ if (stream) {
+ hr = COM_UnmarshalInterface(stream, &IID_NULL, (LPVOID*)ppMemory);
+ IStream_Release(stream);
+ }
+ }
return NULL;
}
@@ -292,7 +307,7 @@
pStubMsg->dwDestContext, pStubMsg->pvDestContext,
MSHLFLAGS_NORMAL);
TRACE("size=%ld\n", size);
- pStubMsg->BufferLength += sizeof(DWORD) + size;
+ if (size) pStubMsg->BufferLength += sizeof(DWORD) + size;
}
/***********************************************************************
--- trunk/reactos/lib/rpcrt4/rpc_binding.c 2005-08-04 18:11:03 UTC (rev 17047)
+++ trunk/reactos/lib/rpcrt4/rpc_binding.c 2005-08-04 21:35:00 UTC (rev 17048)
@@ -142,7 +142,7 @@
pname = HeapAlloc(GetProcessHeap(), 0, strlen(prefix) + strlen(Connection->Endpoint) + 1);
strcat(strcpy(pname, prefix), Connection->Endpoint);
TRACE("listening on %s\n", pname);
- Connection->conn = CreateNamedPipeA(pname, PROFILE_SERVER | PIPE_ACCESS_DUPLEX,
+ Connection->conn = CreateNamedPipeA(pname, PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE, PIPE_UNLIMITED_INSTANCES,
RPC_MAX_PACKET_SIZE, RPC_MAX_PACKET_SIZE, 5000, NULL);
HeapFree(GetProcessHeap(), 0, pname);
@@ -167,7 +167,7 @@
pname = HeapAlloc(GetProcessHeap(), 0, strlen(prefix) + strlen(Connection->Endpoint) + 1);
strcat(strcpy(pname, prefix), Connection->Endpoint);
TRACE("listening on %s\n", pname);
- Connection->conn = CreateNamedPipeA(pname, PROFILE_SERVER | PIPE_ACCESS_DUPLEX,
+ Connection->conn = CreateNamedPipeA(pname, PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES,
RPC_MAX_PACKET_SIZE, RPC_MAX_PACKET_SIZE, 5000, NULL);
HeapFree(GetProcessHeap(), 0, pname);
@@ -278,7 +278,7 @@
{
TRACE("(Connection == ^%p)\n", Connection);
if (Connection->conn) {
- CancelIo(Connection->conn);
+ FlushFileBuffers(Connection->conn);
CloseHandle(Connection->conn);
Connection->conn = 0;
}
--- trunk/reactos/lib/rpcrt4/rpc_server.c 2005-08-04 18:11:03 UTC (rev 17047)
+++ trunk/reactos/lib/rpcrt4/rpc_server.c 2005-08-04 21:35:00 UTC (rev 17048)
@@ -858,8 +858,11 @@
LeaveCriticalSection(&server_cs);
if (sif->Flags & RPC_IF_AUTOLISTEN) {
- /* well, start listening, I think... */
RPCRT4_start_listen(TRUE);
+
+ /* make sure server is actually listening on the interface before
+ * returning */
+ RPCRT4_sync_with_server_thread();
}
return RPC_S_OK;
--- trunk/reactos/lib/rpcrt4/rpcrt4.spec 2005-08-04 18:11:03 UTC (rev 17047)
+++ trunk/reactos/lib/rpcrt4/rpcrt4.spec 2005-08-04 21:35:00 UTC (rev 17048)
@@ -1,7 +1,131 @@
+@ stdcall CreateProxyFromTypeInfo(ptr ptr ptr ptr ptr)
+@ stub CreateStubFromTypeInfo
+@ stdcall CStdStubBuffer_AddRef(ptr)
+@ stdcall CStdStubBuffer_Connect(ptr ptr)
+@ stdcall CStdStubBuffer_CountRefs(ptr)
+@ stdcall CStdStubBuffer_DebugServerQueryInterface(ptr ptr)
+@ stdcall CStdStubBuffer_DebugServerRelease(ptr ptr)
+@ stdcall CStdStubBuffer_Disconnect(ptr)
+@ stdcall CStdStubBuffer_Invoke(ptr ptr ptr)
+@ stdcall CStdStubBuffer_IsIIDSupported(ptr ptr)
+@ stdcall CStdStubBuffer_QueryInterface(ptr ptr ptr)
+@ stub CreateServerInterfaceFromStub # wxp
@ stdcall DceErrorInqTextA (long ptr)
@ stdcall DceErrorInqTextW (long ptr)
@ stdcall -private DllRegisterServer() RPCRT4_DllRegisterServer
-
+@ stub GlobalMutexClearExternal
+@ stub GlobalMutexRequestExternal
+@ stdcall IUnknown_AddRef_Proxy(ptr)
+@ stdcall IUnknown_QueryInterface_Proxy(ptr ptr ptr)
+@ stdcall IUnknown_Release_Proxy(ptr)
+@ stub I_RpcAbortAsyncCall
+@ stub I_RpcAllocate
+@ stub I_RpcAsyncAbortCall
+@ stub I_RpcAsyncSendReceive # NT4
+@ stub I_RpcAsyncSetHandle
+@ stub I_RpcBCacheAllocate
+@ stub I_RpcBCacheFree
+@ stub I_RpcBindingCopy
+@ stub I_RpcBindingInqConnId
+@ stub I_RpcBindingInqDynamicEndPoint
+@ stub I_RpcBindingInqDynamicEndPointA
+@ stub I_RpcBindingInqDynamicEndPointW
+@ stub I_RpcBindingInqLocalClientPID # wxp
+@ stub I_RpcBindingInqSecurityContext
+@ stub I_RpcBindingInqTransportType
+@ stub I_RpcBindingInqWireIdForSnego
+@ stub I_RpcBindingIsClientLocal
+# 9x version of I_RpcBindingSetAsync has 3 arguments, not 2
+@ stdcall I_RpcBindingSetAsync(ptr ptr)
+@ stub I_RpcBindingToStaticStringBindingW
+@ stub I_RpcClearMutex
+@ stub I_RpcConnectionInqSockBuffSize2
+@ stub I_RpcConnectionInqSockBuffSize
+@ stub I_RpcConnectionSetSockBuffSize
+@ stub I_RpcDeleteMutex
+@ stub I_RpcEnableWmiTrace # wxp
+@ stub I_RpcExceptionFilter # wxp
+@ stub I_RpcFree
+@ stdcall I_RpcFreeBuffer(ptr)
+@ stub I_RpcFreePipeBuffer
+@ stub I_RpcGetAssociationContext
+@ stdcall I_RpcGetBuffer(ptr)
+@ stub I_RpcGetBufferWithObject
+@ stub I_RpcGetCurrentCallHandle
+@ stub I_RpcGetExtendedError
+@ stub I_RpcGetServerContextList
+@ stub I_RpcGetThreadEvent # win9x
+@ stub I_RpcGetThreadWindowHandle # win9x
+@ stub I_RpcIfInqTransferSyntaxes
+@ stub I_RpcLaunchDatagramReceiveThread # win9x
+@ stub I_RpcLogEvent
+@ stub I_RpcMapWin32Status
+@ stub I_RpcMonitorAssociation
+@ stub I_RpcNegotiateTransferSyntax # wxp
+@ stub I_RpcNsBindingSetEntryName
+@ stub I_RpcNsBindingSetEntryNameA
+@ stub I_RpcNsBindingSetEntryNameW
+@ stub I_RpcNsInterfaceExported
+@ stub I_RpcNsInterfaceUnexported
+@ stub I_RpcParseSecurity
+@ stub I_RpcPauseExecution
+@ stub I_RpcProxyNewConnection # wxp
+@ stub I_RpcReallocPipeBuffer
+@ stdcall I_RpcReceive(ptr)
+@ stub I_RpcRequestMutex
+@ stdcall I_RpcSend(ptr)
+@ stdcall I_RpcSendReceive(ptr)
+@ stub I_RpcServerAllocateIpPort
+@ stub I_RpcServerInqAddressChangeFn
+@ stub I_RpcServerInqLocalConnAddress # wxp
+@ stub I_RpcServerInqTransportType
+@ stub I_RpcServerRegisterForwardFunction
+@ stub I_RpcServerSetAddressChangeFn
+@ stdcall I_RpcServerStartListening(ptr) # win9x
+@ stdcall I_RpcServerStopListening() # win9x
+@ stub I_RpcServerUnregisterEndpointA # win9x
+@ stub I_RpcServerUnregisterEndpointW # win9x
+@ stub I_RpcServerUseProtseq2A
+@ stub I_RpcServerUseProtseq2W
+@ stub I_RpcServerUseProtseqEp2A
+@ stub I_RpcServerUseProtseqEp2W
+@ stub I_RpcSetAssociationContext # win9x
+@ stub I_RpcSetAsyncHandle
+@ stub I_RpcSetServerContextList
+@ stub I_RpcSetThreadParams # win9x
+@ stub I_RpcSetWMsgEndpoint # NT4
+@ stub I_RpcSsDontSerializeContext
+@ stub I_RpcStopMonitorAssociation
+@ stub I_RpcSystemFunction001 # wxp (oh, brother!)
+@ stub I_RpcTransCancelMigration # win9x
+@ stub I_RpcTransClientMaxFrag # win9x
+@ stub I_RpcTransClientReallocBuffer # win9x
+@ stub I_RpcTransConnectionAllocatePacket
+@ stub I_RpcTransConnectionFreePacket
+@ stub I_RpcTransConnectionReallocPacket
+@ stub I_RpcTransDatagramAllocate2
+@ stub I_RpcTransDatagramAllocate
+@ stub I_RpcTransDatagramFree
+@ stub I_RpcTransGetAddressList
+@ stub I_RpcTransGetThreadEvent
+@ stub I_RpcTransIoCancelled
+@ stub I_RpcTransMaybeMakeReceiveAny # win9x
+@ stub I_RpcTransMaybeMakeReceiveDirect # win9x
+@ stub I_RpcTransPingServer # win9x
+@ stub I_RpcTransServerFindConnection # win9x
+@ stub I_RpcTransServerFreeBuffer # win9x
+@ stub I_RpcTransServerMaxFrag # win9x
+@ stub I_RpcTransServerNewConnection
+@ stub I_RpcTransServerProtectThread # win9x
+@ stub I_RpcTransServerReallocBuffer # win9x
+@ stub I_RpcTransServerReceiveDirectReady # win9x
+@ stub I_RpcTransServerUnprotectThread # win9x
+@ stub I_RpcTurnOnEEInfoPropagation # wxp
+@ stdcall I_RpcWindowProc(ptr long long long) # win9x
+@ stub I_RpcltDebugSetPDUFilter
+@ stub I_UuidCreate
+@ stub MIDL_wchar_strcpy
+@ stub MIDL_wchar_strlen
@ stub MesBufferHandleReset
@ stub MesDecodeBufferHandleCreate
@ stub MesDecodeIncrementalHandleCreate
@@ -11,10 +135,233 @@
@ stub MesHandleFree
@ stub MesIncrementalHandleReset
@ stub MesInqProcEncodingId
-
@ stub MqGetContext # win9x
@ stub MqRegisterQueue # win9x
-
+@ stub NDRCContextBinding
+@ stub NDRCContextMarshall
+@ stub NDRCContextUnmarshall
+@ stub NDRSContextMarshall2
+@ stub NDRSContextMarshall
+@ stub NDRSContextMarshallEx
+@ stub NDRSContextUnmarshall2
+@ stub NDRSContextUnmarshall
+@ stub NDRSContextUnmarshallEx
+@ stub NDRcopy
+@ stdcall NdrAllocate(ptr long)
+@ stub NdrAsyncClientCall
+@ stub NdrAsyncServerCall
+@ stub NdrByteCountPointerBufferSize
+@ stub NdrByteCountPointerFree
+@ stub NdrByteCountPointerMarshall
+@ stub NdrByteCountPointerUnmarshall
+@ stub NdrCStdStubBuffer2_Release
+@ stdcall NdrCStdStubBuffer_Release(ptr ptr)
+@ stdcall NdrClearOutParameters(ptr ptr ptr)
+@ varargs NdrClientCall2(ptr ptr)
+@ stub NdrClientCall
+@ stub NdrClientContextMarshall
+@ stub NdrClientContextUnmarshall
+@ stub NdrClientInitialize
+@ stdcall NdrClientInitializeNew(ptr ptr ptr long)
+@ stdcall NdrComplexArrayBufferSize(ptr ptr ptr)
+@ stdcall NdrComplexArrayFree(ptr ptr ptr)
+@ stdcall NdrComplexArrayMarshall(ptr ptr ptr)
+@ stdcall NdrComplexArrayMemorySize(ptr ptr)
+@ stdcall NdrComplexArrayUnmarshall(ptr ptr ptr long)
+@ stdcall NdrComplexStructBufferSize(ptr ptr ptr)
+@ stdcall NdrComplexStructFree(ptr ptr ptr)
+@ stdcall NdrComplexStructMarshall(ptr ptr ptr)
+@ stdcall NdrComplexStructMemorySize(ptr ptr)
+@ stdcall NdrComplexStructUnmarshall(ptr ptr ptr long)
+@ stdcall NdrConformantArrayBufferSize(ptr ptr ptr)
+@ stdcall NdrConformantArrayFree(ptr ptr ptr)
+@ stdcall NdrConformantArrayMarshall(ptr ptr ptr)
+@ stdcall NdrConformantArrayMemorySize(ptr ptr)
+@ stdcall NdrConformantArrayUnmarshall(ptr ptr ptr long)
+@ stdcall NdrConformantStringBufferSize(ptr ptr ptr)
+@ stdcall NdrConformantStringMarshall(ptr ptr ptr)
+@ stdcall NdrConformantStringMemorySize(ptr ptr)
+@ stdcall NdrConformantStringUnmarshall(ptr ptr ptr long)
+@ stub NdrConformantStructBufferSize
+@ stub NdrConformantStructFree
+@ stub NdrConformantStructMarshall
+@ stub NdrConformantStructMemorySize
+@ stub NdrConformantStructUnmarshall
+@ stdcall NdrConformantVaryingArrayBufferSize(ptr ptr ptr)
+@ stdcall NdrConformantVaryingArrayFree(ptr ptr ptr)
+@ stdcall NdrConformantVaryingArrayMarshall(ptr ptr ptr)
+@ stdcall NdrConformantVaryingArrayMemorySize(ptr ptr)
+@ stdcall NdrConformantVaryingArrayUnmarshall(ptr ptr ptr long)
+@ stub NdrConformantVaryingStructBufferSize
+@ stub NdrConformantVaryingStructFree
+@ stub NdrConformantVaryingStructMarshall
+@ stub NdrConformantVaryingStructMemorySize
+@ stub NdrConformantVaryingStructUnmarshall
+@ stub NdrContextHandleInitialize
+@ stub NdrContextHandleSize
+@ stdcall NdrConvert2(ptr ptr long)
+@ stdcall NdrConvert(ptr ptr)
+@ stub NdrCorrelationFree
+@ stub NdrCorrelationInitialize
+@ stub NdrCorrelationPass
+@ stub NdrDcomAsyncClientCall
+@ stub NdrDcomAsyncStubCall
+@ stdcall NdrDllCanUnloadNow(ptr)
+@ stdcall NdrDllGetClassObject(ptr ptr ptr ptr ptr ptr)
+@ stdcall NdrDllRegisterProxy(long ptr ptr)
+@ stdcall NdrDllUnregisterProxy(long ptr ptr)
+@ stub NdrEncapsulatedUnionBufferSize
+@ stub NdrEncapsulatedUnionFree
+@ stub NdrEncapsulatedUnionMarshall
+@ stub NdrEncapsulatedUnionMemorySize
+@ stub NdrEncapsulatedUnionUnmarshall
+@ stub NdrFixedArrayBufferSize
+@ stub NdrFixedArrayFree
+@ stub NdrFixedArrayMarshall
+@ stub NdrFixedArrayMemorySize
+@ stub NdrFixedArrayUnmarshall
+@ stdcall NdrFreeBuffer(ptr)
+@ stub NdrFullPointerFree
+@ stub NdrFullPointerInsertRefId
+@ stub NdrFullPointerQueryPointer
+@ stub NdrFullPointerQueryRefId
+@ stub NdrFullPointerXlatFree
+@ stub NdrFullPointerXlatInit
+@ stdcall NdrGetBuffer(ptr long ptr)
+@ stub NdrGetDcomProtocolVersion
+@ stub NdrGetPartialBuffer
+@ stub NdrGetPipeBuffer
+@ stub NdrGetSimpleTypeBufferAlignment # wxp
+@ stub NdrGetSimpleTypeBufferSize # wxp
+@ stub NdrGetSimpleTypeMemorySize # wxp
+@ stub NdrGetTypeFlags # wxp
+@ stub NdrGetUserMarshallInfo
+@ stub NdrHardStructBufferSize
+@ stub NdrHardStructFree
+@ stub NdrHardStructMarshall
+@ stub NdrHardStructMemorySize
+@ stub NdrHardStructUnmarshall
+@ stdcall NdrInterfacePointerBufferSize(ptr ptr ptr)
+@ stdcall NdrInterfacePointerFree(ptr ptr ptr)
+@ stdcall NdrInterfacePointerMarshall(ptr ptr ptr)
+@ stdcall NdrInterfacePointerMemorySize(ptr ptr)
+@ stdcall NdrInterfacePointerUnmarshall(ptr ptr ptr long)
+@ stub NdrIsAppDoneWithPipes
+@ stub NdrMapCommAndFaultStatus
+@ stub NdrMarkNextActivePipe
+@ stub NdrMesProcEncodeDecode2
+@ stub NdrMesProcEncodeDecode
+@ stub NdrMesSimpleTypeAlignSize
+@ stub NdrMesSimpleTypeDecode
+@ stub NdrMesSimpleTypeEncode
+@ stub NdrMesTypeAlignSize2
+@ stub NdrMesTypeAlignSize
+@ stub NdrMesTypeDecode2
+@ stub NdrMesTypeDecode
+@ stub NdrMesTypeEncode2
+@ stub NdrMesTypeEncode
+@ stub NdrMesTypeFree2
+@ stub NdrNonConformantStringBufferSize
+@ stub NdrNonConformantStringMarshall
+@ stub NdrNonConformantStringMemorySize
+@ stub NdrNonConformantStringUnmarshall
+@ stub NdrNonEncapsulatedUnionBufferSize
+@ stub NdrNonEncapsulatedUnionFree
+@ stub NdrNonEncapsulatedUnionMarshall
+@ stub NdrNonEncapsulatedUnionMemorySize
+@ stub NdrNonEncapsulatedUnionUnmarshall
+@ stub NdrNsGetBuffer
+@ stub NdrNsSendReceive
+@ stdcall NdrOleAllocate(long)
+@ stdcall NdrOleFree(ptr)
+@ stub NdrOutInit # wxp
+@ stub NdrPartialIgnoreClientBufferSize # wxp
+@ stub NdrPartialIgnoreClientMarshall # wxp
+@ stub NdrPartialIgnoreServerInitialize # wxp
+@ stub NdrPartialIgnoreServerUnmarshall # wxp
+@ stub NdrPipePull
+@ stub NdrPipePush
+@ stub NdrPipeSendReceive
+@ stub NdrPipesDone
+@ stub NdrPipesInitialize
+@ stdcall NdrPointerBufferSize(ptr ptr ptr)
+@ stdcall NdrPointerFree(ptr ptr ptr)
+@ stdcall NdrPointerMarshall(ptr ptr ptr)
+@ stdcall NdrPointerMemorySize(ptr ptr)
+@ stdcall NdrPointerUnmarshall(ptr ptr ptr long)
+@ stdcall NdrProxyErrorHandler(long)
+@ stdcall NdrProxyFreeBuffer(ptr ptr)
+@ stdcall NdrProxyGetBuffer(ptr ptr)
+@ stdcall NdrProxyInitialize(ptr ptr ptr ptr long)
+@ stdcall NdrProxySendReceive(ptr ptr)
+@ stub NdrRangeUnmarshall
+@ stub NdrRpcSmClientAllocate
+@ stub NdrRpcSmClientFree
+@ stub NdrRpcSmSetClientToOsf
+@ stub NdrRpcSsDefaultAllocate
+@ stub NdrRpcSsDefaultFree
+@ stub NdrRpcSsDisableAllocate
+@ stub NdrRpcSsEnableAllocate
+@ stdcall NdrSendReceive(ptr ptr)
+@ stub NdrServerCall2
+@ stub NdrServerCall
+@ stub NdrServerContextMarshall
+@ stub NdrServerContextNewMarshall # wxp
+@ stub NdrServerContextNewUnmarshall # wxp
+@ stub NdrServerContextUnmarshall
+@ stub NdrServerInitialize
+@ stub NdrServerInitializeMarshall
+@ stdcall NdrServerInitializeNew(ptr ptr ptr)
+@ stub NdrServerInitializePartial # wxp
+@ stub NdrServerInitializeUnmarshall
+@ stub NdrServerMarshall
+@ stub NdrServerUnmarshall
+@ stdcall NdrSimpleStructBufferSize(ptr ptr ptr)
+@ stdcall NdrSimpleStructFree(ptr ptr ptr)
+@ stdcall NdrSimpleStructMarshall(ptr ptr ptr)
+@ stdcall NdrSimpleStructMemorySize(ptr ptr)
+@ stdcall NdrSimpleStructUnmarshall(ptr ptr ptr long)
+@ stdcall NdrSimpleTypeMarshall(ptr ptr long)
+@ stdcall NdrSimpleTypeUnmarshall(ptr ptr long)
+@ stub NdrStubCall2
+@ stub NdrStubCall
+@ stub NdrStubForwardingFunction
+@ stdcall NdrStubGetBuffer(ptr ptr ptr)
+@ stdcall NdrStubInitialize(ptr ptr ptr ptr)
+@ stub NdrStubInitializeMarshall
+@ stub NdrTypeFlags # wxp
+@ stub NdrTypeFree # wxp
+@ stub NdrTypeMarshall # wxp
+@ stub NdrTypeSize # wxp
+@ stub NdrTypeUnmarshall # wxp
+@ stub NdrUnmarshallBasetypeInline # wxp
+@ stdcall NdrUserMarshalBufferSize(ptr ptr ptr)
+@ stdcall NdrUserMarshalFree(ptr ptr ptr)
+@ stdcall NdrUserMarshalMarshall(ptr ptr ptr)
+@ stdcall NdrUserMarshalMemorySize(ptr ptr)
+@ stub NdrUserMarshalSimpleTypeConvert
+@ stdcall NdrUserMarshalUnmarshall(ptr ptr ptr long)
+@ stub NdrVaryingArrayBufferSize
+@ stub NdrVaryingArrayFree
+@ stub NdrVaryingArrayMarshall
+@ stub NdrVaryingArrayMemorySize
+@ stub NdrVaryingArrayUnmarshall
+@ stub NdrXmitOrRepAsBufferSize
+@ stub NdrXmitOrRepAsFree
+@ stub NdrXmitOrRepAsMarshall
+@ stub NdrXmitOrRepAsMemorySize
+@ stub NdrXmitOrRepAsUnmarshall
+@ stub NdrpCreateProxy # wxp
+@ stub NdrpCreateStub # wxp
+@ stub NdrpGetProcFormatString # wxp
+@ stub NdrpGetTypeFormatString # wxp
+@ stub NdrpGetTypeGenCookie # wxp
+@ stub NdrpMemoryIncrement # wxp
+@ stub NdrpReleaseTypeFormatString # wxp
+@ stub NdrpReleaseTypeGenCookie # wxp
+@ stub NdrpSetRpcSsDefaults
+@ stub NdrpVarVtOfTypeDesc # wxp
+@ stub PerformRpcInitialization
@ stub RpcAbortAsyncCall
@ stub RpcAsyncAbortCall
@ stub RpcAsyncCancelCall
@@ -27,21 +374,21 @@
@ stdcall RpcBindingFromStringBindingA(str ptr)
@ stdcall RpcBindingFromStringBindingW(wstr ptr)
@ stub RpcBindingInqAuthClientA
-@ stub RpcBindingInqAuthClientW
@ stub RpcBindingInqAuthClientExA
@ stub RpcBindingInqAuthClientExW
+@ stub RpcBindingInqAuthClientW
@ stub RpcBindingInqAuthInfoA
-@ stub RpcBindingInqAuthInfoW
@ stub RpcBindingInqAuthInfoExA
@ stub RpcBindingInqAuthInfoExW
+@ stub RpcBindingInqAuthInfoW
@ stdcall RpcBindingInqObject(ptr ptr)
@ stub RpcBindingInqOption
@ stub RpcBindingReset
@ stub RpcBindingServerFromClient
@ stub RpcBindingSetAuthInfoA
-@ stub RpcBindingSetAuthInfoW
@ stub RpcBindingSetAuthInfoExA
@ stub RpcBindingSetAuthInfoExW
+@ stub RpcBindingSetAuthInfoW
@ stdcall RpcBindingSetObject(ptr ptr)
@ stub RpcBindingSetOption
@ stdcall RpcBindingToStringBindingA(ptr ptr)
@@ -54,17 +401,17 @@
@ stub RpcCertGeneratePrincipalNameW
@ stub RpcCompleteAsyncCall
@ stdcall RpcEpRegisterA(ptr ptr ptr str)
-@ stub RpcEpRegisterW
@ stub RpcEpRegisterNoReplaceA
@ stub RpcEpRegisterNoReplaceW
+@ stub RpcEpRegisterW
@ stdcall RpcEpResolveBinding(ptr ptr)
@ stdcall RpcEpUnregister(ptr ptr ptr)
@ stub RpcErrorAddRecord # wxp
@ stub RpcErrorClearInformation # wxp
@ stub RpcErrorEndEnumeration # wxp
@ stub RpcErrorGetNextRecord # wxp
-@ stub RpcErrorNumberOfRecords # wxp
@ stub RpcErrorLoadErrorInfo # wxp
+@ stub RpcErrorNumberOfRecords # wxp
@ stub RpcErrorResetEnumeration # wxp
@ stub RpcErrorSaveErrorInfo # wxp
@ stub RpcErrorStartEnumeration # wxp
@@ -122,9 +469,9 @@
@ stdcall RpcServerListen(long long long)
@ stdcall RpcServerRegisterAuthInfoA(str long ptr ptr)
@ stdcall RpcServerRegisterAuthInfoW(wstr long ptr ptr)
+@ stdcall RpcServerRegisterIf2(ptr ptr ptr long long long ptr)
@ stdcall RpcServerRegisterIf(ptr ptr ptr)
@ stdcall RpcServerRegisterIfEx(ptr ptr ptr long long ptr)
-@ stdcall RpcServerRegisterIf2(ptr ptr ptr long long long ptr)
@ stub RpcServerTestCancel
@ stdcall RpcServerUnregisterIf(ptr ptr long)
@ stdcall RpcServerUnregisterIfEx(ptr ptr long)
@@ -133,17 +480,17 @@
@ stub RpcServerUseAllProtseqsIf
@ stub RpcServerUseAllProtseqsIfEx
@ stdcall RpcServerUseProtseqA(str long ptr)
-@ stdcall RpcServerUseProtseqW(wstr long ptr)
-@ stub RpcServerUseProtseqExA
-@ stub RpcServerUseProtseqExW
@ stdcall RpcServerUseProtseqEpA(str long str ptr)
-@ stdcall RpcServerUseProtseqEpW(wstr long wstr ptr)
@ stdcall RpcServerUseProtseqEpExA(str long str ptr ptr)
@ stdcall RpcServerUseProtseqEpExW(wstr long wstr ptr ptr)
+@ stdcall RpcServerUseProtseqEpW(wstr long wstr ptr)
+@ stub RpcServerUseProtseqExA
+@ stub RpcServerUseProtseqExW
@ stub RpcServerUseProtseqIfA
-@ stub RpcServerUseProtseqIfW
@ stub RpcServerUseProtseqIfExA
@ stub RpcServerUseProtseqIfExW
+@ stub RpcServerUseProtseqIfW
+@ stdcall RpcServerUseProtseqW(wstr long ptr)
@ stub RpcServerYield
@ stub RpcSmAllocate
@ stub RpcSmClientFree
@@ -176,23 +523,16 @@
@ stdcall RpcStringFreeW(ptr)
@ stub RpcTestCancel
@ stub RpcUserFree # wxp
-
-@ stub TowerConstruct
-@ stub TowerExplode
-
@ stub SimpleTypeAlignment # wxp
@ stub SimpleTypeBufferSize # wxp
@ stub SimpleTypeMemorySize # wxp
-
-@ stub pfnFreeRoutines # wxp
-@ stub pfnMarshallRouteines # wxp
-@ stub pfnSizeRoutines # wxp
-@ stub pfnUnmarshallRouteines # wxp
-
+@ stub StartServiceIfNecessary # win9x
+@ stub TowerConstruct
+@ stub TowerExplode
@ stdcall UuidCompare(ptr ptr ptr)
@ stdcall UuidCreate(ptr)
-@ stdcall UuidCreateSequential(ptr) # win 2000
@ stdcall UuidCreateNil(ptr)
+@ stdcall UuidCreateSequential(ptr) # win 2000
@ stdcall UuidEqual(ptr ptr ptr)
@ stdcall UuidFromStringA(str ptr)
@ stdcall UuidFromStringW(wstr ptr)
@@ -200,252 +540,6 @@
@ stdcall UuidIsNil(ptr ptr)
@ stdcall UuidToStringA(ptr ptr)
@ stdcall UuidToStringW(ptr ptr)
-
-@ stdcall CStdStubBuffer_QueryInterface(ptr ptr ptr)
-@ stdcall CStdStubBuffer_AddRef(ptr)
-@ stdcall CStdStubBuffer_Connect(ptr ptr)
-@ stdcall CStdStubBuffer_Disconnect(ptr)
-@ stdcall CStdStubBuffer_Invoke(ptr ptr ptr)
-@ stdcall CStdStubBuffer_IsIIDSupported(ptr ptr)
-@ stdcall CStdStubBuffer_CountRefs(ptr)
-@ stdcall CStdStubBuffer_DebugServerQueryInterface(ptr ptr)
-@ stdcall CStdStubBuffer_DebugServerRelease(ptr ptr)
-@ stdcall NdrCStdStubBuffer_Release(ptr ptr)
-@ stub NdrCStdStubBuffer2_Release
-
-@ stdcall IUnknown_QueryInterface_Proxy(ptr ptr ptr)
-@ stdcall IUnknown_AddRef_Proxy(ptr)
-@ stdcall IUnknown_Release_Proxy(ptr)
-
-@ stdcall NdrDllCanUnloadNow(ptr)
-@ stdcall NdrDllGetClassObject(ptr ptr ptr ptr ptr ptr)
-@ stdcall NdrDllRegisterProxy(long ptr ptr)
-@ stdcall NdrDllUnregisterProxy(long ptr ptr)
-
-@ stdcall NdrAllocate(ptr long)
-@ stub NdrAsyncClientCall
-@ stub NdrAsyncServerCall
-@ stdcall NdrClearOutParameters(ptr ptr ptr)
-@ stub NdrClientCall
-@ varargs NdrClientCall2(ptr ptr)
-@ stub NdrClientInitialize
-@ stdcall NdrClientInitializeNew(ptr ptr ptr long)
-@ stub NdrContextHandleInitialize
-@ stub NdrContextHandleSize
-@ stdcall NdrConvert(ptr ptr)
-@ stdcall NdrConvert2(ptr ptr long)
-@ stub NdrCorrelationFree
-@ stub NdrCorrelationInitialize
-@ stub NdrCorrelationPass
-@ stub CreateServerInterfaceFromStub # wxp
-@ stub NdrDcomAsyncClientCall
-@ stub NdrDcomAsyncStubCall
-@ stdcall NdrFreeBuffer(ptr)
-@ stub NdrFullPointerFree
-@ stub NdrFullPointerInsertRefId
-@ stub NdrFullPointerQueryPointer
-@ stub NdrFullPointerQueryRefId
-@ stub NdrFullPointerXlatFree
-@ stub NdrFullPointerXlatInit
-@ stdcall NdrGetBuffer(ptr long ptr)
-@ stub NdrGetDcomProtocolVersion
-@ stub NdrGetSimpleTypeBufferAlignment # wxp
-@ stub NdrGetSimpleTypeBufferSize # wxp
-@ stub NdrGetSimpleTypeMemorySize # wxp
-@ stub NdrGetTypeFlags # wxp
-@ stub NdrGetPartialBuffer
-@ stub NdrGetPipeBuffer
-@ stub NdrGetUserMarshallInfo
-@ stub NdrIsAppDoneWithPipes
-@ stub NdrMapCommAndFaultStatus
-@ stub NdrMarkNextActivePipe
-@ stub NdrMesProcEncodeDecode
-@ stub NdrMesProcEncodeDecode2
-@ stub NdrMesSimpleTypeAlignSize
-@ stub NdrMesSimpleTypeDecode
-@ stub NdrMesSimpleTypeEncode
-@ stub NdrMesTypeAlignSize
-@ stub NdrMesTypeAlignSize2
-@ stub NdrMesTypeDecode
-@ stub NdrMesTypeDecode2
-@ stub NdrMesTypeEncode
-@ stub NdrMesTypeEncode2
-@ stub NdrMesTypeFree2
-@ stub NdrNsGetBuffer
-@ stub NdrNsSendReceive
-@ stdcall NdrOleAllocate(long)
-@ stdcall NdrOleFree(ptr)
-@ stub NdrOutInit # wxp
-@ stub NdrPartialIgnoreClientBufferSize # wxp
-@ stub NdrPartialIgnoreClientMarshall # wxp
-@ stub NdrPartialIgnoreServerInitialize # wxp
-@ stub NdrPartialIgnoreServerUnmarshall # wxp
-@ stub NdrPipePull
-@ stub NdrPipePush
-@ stub NdrPipeSendReceive
-@ stub NdrPipesDone
-@ stub NdrPipesInitialize
-@ stdcall NdrProxyErrorHandler(long)
-@ stdcall NdrProxyFreeBuffer(ptr ptr)
-@ stdcall NdrProxyGetBuffer(ptr ptr)
-@ stdcall NdrProxyInitialize(ptr ptr ptr ptr long)
-@ stdcall NdrProxySendReceive(ptr ptr)
-@ stub NdrRangeUnmarshall
-@ stub NdrRpcSmClientAllocate
-@ stub NdrRpcSmClientFree
-@ stub NdrRpcSmSetClientToOsf
-@ stub NdrRpcSsDefaultAllocate
-@ stub NdrRpcSsDefaultFree
-@ stub NdrRpcSsDisableAllocate
-@ stub NdrRpcSsEnableAllocate
-@ stdcall NdrSendReceive(ptr ptr)
-@ stub NdrServerCall
-@ stub NdrServerCall2
-@ stub NdrStubCall
-@ stub NdrStubCall2
-@ stub NdrStubForwardingFunction
-@ stdcall NdrStubGetBuffer(ptr ptr ptr)
-@ stdcall NdrStubInitialize(ptr ptr ptr ptr)
-@ stub NdrStubInitializeMarshall
-@ stub NdrpCreateProxy # wxp
-@ stub NdrpCreateStub # wxp
-@ stub NdrpGetProcFormatString # wxp
-@ stub NdrpGetTypeFormatString # wxp
-@ stub NdrpGetTypeGenCookie # wxp
-@ stub NdrpMemoryIncrement # wxp
-@ stub NdrpReleaseTypeFormatString # wxp
-@ stub NdrpReleaseTypeGenCookie # wxp
-@ stub NdrpSetRpcSsDefaults
-@ stub NdrpVarVtOfTypeDesc # wxp
[truncated at 1000 lines; 260 more skipped]