hi,everyone
I`m trying to dissect the MAPI(also called ExchangeRPC)
PDUs and have encountered this problem,what is the order in which a RPC client
or server transfers a remote procedure actual paramters into a network octets
stream? As I known, a RPC
request/response PDU consists of a common header,a PDU body and the other
parts.The PDU body contains the input parameters required by a RPC and
maybe include some output parameters required by this Remote Procedure Call, but
in which order , the rpc runtime transfers these parameters into a PDU
body. For example, a remote
procedure of EcDoRpcExt2 was declared in Exchange protocol specification as
following: long __stdcall
EcDoRpcExt2( [in,out,ref] CXH
*pcxh, [in,out] unsigned long
*pulFlags,
[in,size_is(cbIn)], [in] unsigned
long cbIn,
[out,length_is(*pcbOut),size_is(*pcbOut)] unsigned char
rgbOut[], [in,out] BIG_RANGE_ULONG
*pcbOut, [in ,size_is(cbAuxIn)]
unsigned char rgbAuxIn[], [in]
unsigned long cbAuxIn,
[out,length_is(*pcbAuxOut),size_is (*pcbAuxOut)] unsigned char
rgbAuxOut[], [in,out]
SMALL_RANGE_ULONG *pcbAuxOut,
[out] unsigned long *pulTransTime )
What`s the order, in which these parameters(now,i don`t ensure whether out
parameters are serialized into a request PDU body) are transfered into a request
PDU body, isn`t the formal parameter declaration order ,the opposite order or
the others?
I have read the Transfer syntax NDR section in
DCE-RPC[C706] specification, but I can't get the answer.
Who can help me? any reply is appreciated!
Thanks very very much in advance!
2008-09-27
|