NdrConformantArrayUnmarshall function (rpcndr.h)

The NdrConformantArrayUnmarshall function unmarshals a conformant array.

Syntax

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

Parameters

[in] pStubMsg

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

[out] ppMemory

Address to a pointer to the buffer where the conformant array is unmarshalled. If set to null, or if the fMustAlloc 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 conformant array is to be marshalled. Specify TRUE if RPC must allocate ppMemory.

Return value

Returns null upon success. If an error occurs, the function throws one of the following exception codes.

Return code Description
RPC_BAD_STUB_DATA
The network is incorrect.
RPC_X_INVALID_BOUND
The network is incorrect.
RPC_S_OUT_OF_MEMORY
The system is out of memory.
STATUS_ACCESS_VIOLATION
An access violation occurred.
RPC_S_INTERNAL_ERROR
An error occurred in RPC.

Remarks

The NdrConformantArrayUnmarshall function is used by both the client- and server-side stub to unmarshall a conformant array. The stub might allocate memory as necessary. For example, pArray in the sample on this page points to a conformant array.

NdrConformantArrayUnmarshall should only be called in the context of an RPC stub, after the client or server stub has been initialized.

Examples

void  ConfArray([in] long size,
        [in,size_is(size)] long *pArray);         // conformant array

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 (include Rpc.h)
Library Rpcrt4.lib
DLL Rpcrt4.dll