Add stubs for NdrMapCommAndFaultStatus, conformant string marshaling

and context handle functions.
This commit is contained in:
Robert Shearman 2005-08-03 14:55:57 +00:00 committed by Alexandre Julliard
parent 4e7628ffb1
commit 037bbdaf24
5 changed files with 165 additions and 23 deletions

View File

@ -125,7 +125,8 @@ NDR_MARSHALL NdrMarshaller[NDR_TABLE_SIZE] = {
NdrComplexArrayMarshall, NdrComplexArrayMarshall,
/* 0x22 */ /* 0x22 */
NdrConformantStringMarshall, 0, 0, NdrConformantStringMarshall, 0, 0,
NdrConformantStringMarshall, 0, 0, 0, 0, NdrConformantStringMarshall,
NdrNonConformantStringMarshall, 0, 0, 0,
/* 0x2a */ /* 0x2a */
NdrEncapsulatedUnionMarshall, NdrEncapsulatedUnionMarshall,
NdrNonEncapsulatedUnionMarshall, NdrNonEncapsulatedUnionMarshall,
@ -158,7 +159,8 @@ NDR_UNMARSHALL NdrUnmarshaller[NDR_TABLE_SIZE] = {
NdrComplexArrayUnmarshall, NdrComplexArrayUnmarshall,
/* 0x22 */ /* 0x22 */
NdrConformantStringUnmarshall, 0, 0, NdrConformantStringUnmarshall, 0, 0,
NdrConformantStringUnmarshall, 0, 0, 0, 0, NdrConformantStringUnmarshall,
NdrNonConformantStringUnmarshall, 0, 0, 0,
/* 0x2a */ /* 0x2a */
NdrEncapsulatedUnionUnmarshall, NdrEncapsulatedUnionUnmarshall,
NdrNonEncapsulatedUnionUnmarshall, NdrNonEncapsulatedUnionUnmarshall,
@ -191,7 +193,8 @@ NDR_BUFFERSIZE NdrBufferSizer[NDR_TABLE_SIZE] = {
NdrComplexArrayBufferSize, NdrComplexArrayBufferSize,
/* 0x22 */ /* 0x22 */
NdrConformantStringBufferSize, 0, 0, NdrConformantStringBufferSize, 0, 0,
NdrConformantStringBufferSize, 0, 0, 0, 0, NdrConformantStringBufferSize,
NdrNonConformantStringBufferSize, 0, 0, 0,
/* 0x2a */ /* 0x2a */
NdrEncapsulatedUnionBufferSize, NdrEncapsulatedUnionBufferSize,
NdrNonEncapsulatedUnionBufferSize, NdrNonEncapsulatedUnionBufferSize,
@ -220,7 +223,8 @@ NDR_MEMORYSIZE NdrMemorySizer[NDR_TABLE_SIZE] = {
NdrComplexArrayMemorySize, NdrComplexArrayMemorySize,
/* 0x22 */ /* 0x22 */
NdrConformantStringMemorySize, 0, 0, NdrConformantStringMemorySize, 0, 0,
NdrConformantStringMemorySize, 0, 0, 0, 0, NdrConformantStringMemorySize,
NdrNonConformantStringMemorySize, 0, 0, 0,
/* 0x2a */ /* 0x2a */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x2f */ /* 0x2f */
@ -574,6 +578,49 @@ unsigned char *WINAPI NdrConformantStringUnmarshall( PMIDL_STUB_MESSAGE pStubMsg
return NULL; /* FIXME: is this always right? */ return NULL; /* FIXME: is this always right? */
} }
/***********************************************************************
* NdrNonConformantStringMarshall [RPCRT4.@]
*/
unsigned char * WINAPI NdrNonConformantStringMarshall(PMIDL_STUB_MESSAGE pStubMsg,
unsigned char *pMemory,
PFORMAT_STRING pFormat)
{
FIXME("stub\n");
return NULL;
}
/***********************************************************************
* NdrNonConformantStringUnmarshall [RPCRT4.@]
*/
unsigned char * WINAPI NdrNonConformantStringUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,
unsigned char **ppMemory,
PFORMAT_STRING pFormat,
unsigned char fMustAlloc)
{
FIXME("stub\n");
return NULL;
}
/***********************************************************************
* NdrNonConformantStringBufferSize [RPCRT4.@]
*/
void WINAPI NdrNonConformantStringBufferSize(PMIDL_STUB_MESSAGE pStubMsg,
unsigned char *pMemory,
PFORMAT_STRING pFormat)
{
FIXME("stub\n");
}
/***********************************************************************
* NdrNonConformantStringMemorySize [RPCRT4.@]
*/
unsigned long WINAPI NdrNonConformantStringMemorySize(PMIDL_STUB_MESSAGE pStubMsg,
PFORMAT_STRING pFormat)
{
FIXME("stub\n");
return 0;
}
static inline void dump_pointer_attr(unsigned char attr) static inline void dump_pointer_attr(unsigned char attr)
{ {
if (attr & RPC_FC_P_ALLOCALLNODES) if (attr & RPC_FC_P_ALLOCALLNODES)
@ -2621,21 +2668,67 @@ void WINAPI NdrXmitOrRepAsFree(PMIDL_STUB_MESSAGE pStubMsg,
/*********************************************************************** /***********************************************************************
* NdrClientContextMarshall * NdrClientContextMarshall
*/ */
unsigned char * WINAPI NdrClientContextMarshall(PMIDL_STUB_MESSAGE pStubMsg, void WINAPI NdrClientContextMarshall(PMIDL_STUB_MESSAGE pStubMsg,
NDR_CCONTEXT ContextHandle, NDR_CCONTEXT ContextHandle,
int fCheck) int fCheck)
{ {
FIXME("(%p, %p, %d): stub\n", pStubMsg, ContextHandle, fCheck); FIXME("(%p, %p, %d): stub\n", pStubMsg, ContextHandle, fCheck);
return NULL;
} }
/*********************************************************************** /***********************************************************************
* NdrClientContextUnmarshall * NdrClientContextUnmarshall
*/ */
unsigned char * WINAPI NdrClientContextUnmarshall(PMIDL_STUB_MESSAGE pStubMsg, void WINAPI NdrClientContextUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,
NDR_CCONTEXT * pContextHandle, NDR_CCONTEXT * pContextHandle,
RPC_BINDING_HANDLE BindHandle) RPC_BINDING_HANDLE BindHandle)
{ {
FIXME("(%p, %p, %p): stub\n", pStubMsg, pContextHandle, BindHandle); FIXME("(%p, %p, %p): stub\n", pStubMsg, pContextHandle, BindHandle);
}
void WINAPI NdrServerContextMarshall(PMIDL_STUB_MESSAGE pStubMsg,
NDR_SCONTEXT ContextHandle,
int fCheck )
{
FIXME("(%p, %p, %d): stub\n", pStubMsg, ContextHandle, fCheck);
}
NDR_SCONTEXT WINAPI NdrServerContextUnmarshall(PMIDL_STUB_MESSAGE pStubMsg)
{
FIXME("(%p): stub\n", pStubMsg);
return NULL;
}
void WINAPI NdrContextHandleSize(PMIDL_STUB_MESSAGE pStubMsg,
unsigned char* pMemory,
PFORMAT_STRING pFormat)
{
FIXME("(%p, %p, %p): stub\n", pStubMsg, pMemory, pFormat);
}
NDR_SCONTEXT WINAPI NdrContextHandleInitialize(PMIDL_STUB_MESSAGE pStubMsg,
PFORMAT_STRING pFormat)
{
FIXME("(%p, %p): stub\n", pStubMsg, pFormat);
return NULL;
}
void WINAPI NdrServerContextNewMarshall(PMIDL_STUB_MESSAGE pStubMsg,
NDR_SCONTEXT ContextHandle,
NDR_RUNDOWN RundownRoutine,
PFORMAT_STRING pFormat)
{
FIXME("(%p, %p, %p, %p): stub\n", pStubMsg, ContextHandle, RundownRoutine, pFormat);
}
NDR_SCONTEXT WINAPI NdrServerContextNewUnmarshall(PMIDL_STUB_MESSAGE pStubMsg,
PFORMAT_STRING pFormat)
{
FIXME("(%p, %p): stub\n", pStubMsg, pFormat);
return NULL;
}
RPC_BINDING_HANDLE WINAPI NDRCContextBinding(NDR_CCONTEXT CContext)
{
FIXME("(%p): stub\n", CContext);
return NULL; return NULL;
} }

View File

@ -285,3 +285,19 @@ unsigned char *WINAPI NdrSendReceive( MIDL_STUB_MESSAGE *stubmsg, unsigned char
/* FIXME: is this the right return value? */ /* FIXME: is this the right return value? */
return NULL; return NULL;
} }
/************************************************************************
* NdrMapCommAndFaultStatus [RPCRT4.@]
*/
RPC_STATUS RPC_ENTRY NdrMapCommAndFaultStatus( PMIDL_STUB_MESSAGE pStubMsg,
unsigned long *pCommStatus,
unsigned long *pFaultStatus,
RPC_STATUS Status )
{
FIXME("(%p, %p, %p, %ld): stub\n", pStubMsg, pCommStatus, pFaultStatus, Status);
*pCommStatus = 0;
*pFaultStatus = 0;
return RPC_S_OK;
}

View File

@ -137,7 +137,7 @@
@ stub MesInqProcEncodingId @ stub MesInqProcEncodingId
@ stub MqGetContext # win9x @ stub MqGetContext # win9x
@ stub MqRegisterQueue # win9x @ stub MqRegisterQueue # win9x
@ stub NDRCContextBinding @ stdcall NDRCContextBinding(ptr)
@ stub NDRCContextMarshall @ stub NDRCContextMarshall
@ stub NDRCContextUnmarshall @ stub NDRCContextUnmarshall
@ stub NDRSContextMarshall2 @ stub NDRSContextMarshall2
@ -197,8 +197,8 @@
@ stdcall NdrConformantVaryingStructMarshall(ptr ptr ptr) @ stdcall NdrConformantVaryingStructMarshall(ptr ptr ptr)
@ stdcall NdrConformantVaryingStructMemorySize(ptr ptr) @ stdcall NdrConformantVaryingStructMemorySize(ptr ptr)
@ stdcall NdrConformantVaryingStructUnmarshall(ptr ptr ptr long) @ stdcall NdrConformantVaryingStructUnmarshall(ptr ptr ptr long)
@ stub NdrContextHandleInitialize @ stdcall NdrContextHandleInitialize(ptr ptr)
@ stub NdrContextHandleSize @ stdcall NdrContextHandleSize(ptr ptr ptr)
@ stdcall NdrConvert2(ptr ptr long) @ stdcall NdrConvert2(ptr ptr long)
@ stdcall NdrConvert(ptr ptr) @ stdcall NdrConvert(ptr ptr)
@ stub NdrCorrelationFree @ stub NdrCorrelationFree
@ -261,10 +261,10 @@
@ stub NdrMesTypeEncode2 @ stub NdrMesTypeEncode2
@ stub NdrMesTypeEncode @ stub NdrMesTypeEncode
@ stub NdrMesTypeFree2 @ stub NdrMesTypeFree2
@ stub NdrNonConformantStringBufferSize #(ptr ptr ptr) @ stdcall NdrNonConformantStringBufferSize(ptr ptr ptr)
@ stub NdrNonConformantStringMarshall #(ptr ptr ptr) @ stdcall NdrNonConformantStringMarshall(ptr ptr ptr)
@ stub NdrNonConformantStringMemorySize #(ptr ptr) @ stdcall NdrNonConformantStringMemorySize(ptr ptr)
@ stub NdrNonConformantStringUnmarshall #(ptr ptr ptr long) @ stdcall NdrNonConformantStringUnmarshall(ptr ptr ptr long)
@ stdcall NdrNonEncapsulatedUnionBufferSize(ptr ptr ptr) @ stdcall NdrNonEncapsulatedUnionBufferSize(ptr ptr ptr)
@ stdcall NdrNonEncapsulatedUnionFree(ptr ptr ptr) @ stdcall NdrNonEncapsulatedUnionFree(ptr ptr ptr)
@ stdcall NdrNonEncapsulatedUnionMarshall(ptr ptr ptr) @ stdcall NdrNonEncapsulatedUnionMarshall(ptr ptr ptr)
@ -305,10 +305,10 @@
@ stdcall NdrSendReceive(ptr ptr) @ stdcall NdrSendReceive(ptr ptr)
@ stub NdrServerCall2 @ stub NdrServerCall2
@ stub NdrServerCall @ stub NdrServerCall
@ stub NdrServerContextMarshall @ stdcall NdrServerContextMarshall(ptr ptr long)
@ stub NdrServerContextNewMarshall # wxp @ stdcall NdrServerContextNewMarshall(ptr ptr ptr ptr) # wxp
@ stub NdrServerContextNewUnmarshall # wxp @ stdcall NdrServerContextNewUnmarshall(ptr ptr) # wxp
@ stub NdrServerContextUnmarshall @ stdcall NdrServerContextUnmarshall(ptr)
@ stub NdrServerInitialize @ stub NdrServerInitialize
@ stub NdrServerInitializeMarshall @ stub NdrServerInitializeMarshall
@ stdcall NdrServerInitializeNew(ptr ptr ptr) @ stdcall NdrServerInitializeNew(ptr ptr ptr)

View File

@ -404,6 +404,8 @@ typedef struct _SCONTEXT_QUEUE {
NDR_SCONTEXT *ArrayOfObjects; NDR_SCONTEXT *ArrayOfObjects;
} SCONTEXT_QUEUE, *PSCONTEXT_QUEUE; } SCONTEXT_QUEUE, *PSCONTEXT_QUEUE;
/* Context Handles */
RPCRTAPI RPC_BINDING_HANDLE RPC_ENTRY RPCRTAPI RPC_BINDING_HANDLE RPC_ENTRY
NDRCContextBinding( IN NDR_CCONTEXT CContext ); NDRCContextBinding( IN NDR_CCONTEXT CContext );
@ -438,6 +440,32 @@ RPCRTAPI NDR_SCONTEXT RPC_ENTRY
IN unsigned long DataRepresentation, IN void *CtxGuard, IN unsigned long DataRepresentation, IN void *CtxGuard,
IN unsigned long Flags ); IN unsigned long Flags );
RPCRTAPI void RPC_ENTRY
NdrClientContextMarshall ( PMIDL_STUB_MESSAGE pStubMsg, NDR_CCONTEXT ContextHandle, int fCheck );
RPCRTAPI void RPC_ENTRY
NdrClientContextUnmarshall( IN PMIDL_STUB_MESSAGE pStubMsg, OUT NDR_CCONTEXT* pContextHandle,
IN RPC_BINDING_HANDLE BindHandle );
RPCRTAPI void RPC_ENTRY
NdrServerContextMarshall ( PMIDL_STUB_MESSAGE pStubMsg, NDR_SCONTEXT ContextHandle, int fCheck );
RPCRTAPI NDR_SCONTEXT RPC_ENTRY
NdrServerContextUnmarshall( IN PMIDL_STUB_MESSAGE pStubMsg );
RPCRTAPI void RPC_ENTRY
NdrContextHandleSize( PMIDL_STUB_MESSAGE pStubMsg, unsigned char* pMemory, PFORMAT_STRING pFormat );
RPCRTAPI NDR_SCONTEXT RPC_ENTRY
NdrContextHandleInitialize( IN PMIDL_STUB_MESSAGE pStubMsg, IN PFORMAT_STRING pFormat );
RPCRTAPI void RPC_ENTRY
NdrServerContextNewMarshall( PMIDL_STUB_MESSAGE pStubMsg, NDR_SCONTEXT ContextHandle,
NDR_RUNDOWN RundownRoutine, PFORMAT_STRING pFormat );
RPCRTAPI NDR_SCONTEXT RPC_ENTRY
NdrServerContextNewUnmarshall( IN PMIDL_STUB_MESSAGE pStubMsg, IN PFORMAT_STRING pFormat );
RPCRTAPI void RPC_ENTRY RPCRTAPI void RPC_ENTRY
RpcSsDestroyClientContext( IN void **ContextHandle ); RpcSsDestroyClientContext( IN void **ContextHandle );
@ -512,7 +540,11 @@ RPCRTAPI void* RPC_ENTRY
RPCRTAPI void RPC_ENTRY RPCRTAPI void RPC_ENTRY
NdrClearOutParameters( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, void *ArgAddr ); NdrClearOutParameters( PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat, void *ArgAddr );
RPCRTAPI RPC_STATUS RPC_ENTRY
NdrMapCommAndFaultStatus( PMIDL_STUB_MESSAGE pStubMsg, unsigned long *pCommStatus,
unsigned long *pFaultStatus, RPC_STATUS Status_ );
RPCRTAPI void* RPC_ENTRY RPCRTAPI void* RPC_ENTRY
NdrOleAllocate( size_t Size ); NdrOleAllocate( size_t Size );
RPCRTAPI void RPC_ENTRY RPCRTAPI void RPC_ENTRY

View File

@ -67,6 +67,7 @@
#define RPC_FC_C_CSTRING 0x22 #define RPC_FC_C_CSTRING 0x22
#define RPC_FC_C_WSTRING 0x25 #define RPC_FC_C_WSTRING 0x25
#define RPC_FC_CSTRING 0x26
#define RPC_FC_ENCAPSULATED_UNION 0x2a #define RPC_FC_ENCAPSULATED_UNION 0x2a
#define RPC_FC_NON_ENCAPSULATED_UNION 0x2b #define RPC_FC_NON_ENCAPSULATED_UNION 0x2b