NdrComplexStructUnmarshall function (rpcndr.h)

The NdrComplexStructUnmarshall function unmarshals the complex structure from the network buffer to memory.

Syntax

unsigned char * NdrComplexStructUnmarshall(
  [in, out] PMIDL_STUB_MESSAGE pStubMsg,
  [out]     unsigned char      **ppMemory,
  [in]      PFORMAT_STRING     pFormat,
  [in]      unsigned char      fMustAlloc
);

Parameters

[in, out] pStubMsg

Pointer to a MIDL_STUB_MESSAGE structure that maintains the current status of the RPC stub. The MIDL_STUB_MESSAGE structure is for internal use only, and must not be modified.

[out] ppMemory

Address to a pointer to the unmarshalled complex structure. If set to null, or if the fMustAlloc parameter is set to TRUE, the stub will allocate the memory.

[in] pFormat

Pointer to the format string description.

[in] fMustAlloc

Flag that specifies whether the stub must allocate the memory into which the complex structure is to be marshaled. Specify TRUE if RPC must allocate ppMemory.

Return value

Returns null upon success. Raises one of the following exceptions upon failure.

Error Description
RPC_BAD_STUB_DATA or RPC_X_INVALID_BOUND The network is incorrect.
RPC_S_OUT_OF_MEMORY Out of memory.
STATUS_ACCESS_VIOLATION An access violation occurred.
RPC_S_INTERNAL_ERROR An error occurred in RPC.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps | UWP apps]
Minimum supported server Windows 2000 Server [desktop apps | UWP apps]
Target Platform Windows
Header rpcndr.h
Library Rpcrt4.lib
DLL Rpcrt4.dll

See also

MIDL_STUB_MESSAGE