[framework] Help Understanding Stub for MS06-040

Alexander Sotirov asotirov at determina.com
Wed Mar 14 18:04:20 CDT 2007


Kyle Schatzle wrote:
> Does this function relate to the stub below?
> 
> If it doesn't relate, could you point me in the right direction to
> understand its format?

Here's how the IDL maps to the Pex::NDS functions:

#    [in] [unique] [string] wchar_t * arg_00,
     Pex::NDR::Long(int(rand(0xffffffff))).
     Pex::NDR::UnicodeConformantVaryingString('').
#    [in] [string] wchar_t * arg_01,
     Pex::NDR::UnicodeConformantVaryingStringPreBuilt($path).
#    [out] [size_is(arg_03)] char * arg_02 <- out parameters are not sent in the
request
#    [in] [range(0, 64000)] long arg_03,
     Pex::NDR::Long(int(rand(250)+1)).
#    [in] [string] wchar_t * arg_04,
     Pex::NDR::UnicodeConformantVaryingStringPreBuilt( "\xeb\x02\x00\x00").
#    [in,out] long * arg_05,
     Pex::NDR::Long(int(rand(250)+1)).
#    [in] long arg_06
     Pex::NDR::Long(0);


arg_00 is encoded with a Long followed by UnicodeConformantVaryingString. You
need the long because of the [unique] pointer modifier.

arg_02 is not included in the request, because it's an ouput parameter. It's
sent in the reply from the server.

The rest of the arguments are obvious.

The NDR transfer syntax is documented here:
http://www.opengroup.org/onlinepubs/9629399/chap14.htm

Alex



More information about the framework mailing list