What does HRESULT 0x8001010C (RPC_E_INVALID_CALLDATA) mean?

 
Previous Next
RPC_E_SERVERCALL_REJECTED RPC_E_CANTCALLOUT_ININPUTSYNCCALL

RPC_E_INVALID_CALLDATA

COM call-control interface received invalid data

RPC_E_INVALID_CALLDATA is HRESULT 2147549452 (0x8001010C) from winerror.h. The documented description is “A call control interfaces was called with invalid data.” The relevant context is the COM/RPC call control, message filtering, apartment routing, marshaling, security negotiation, or remote object lifetime.

Where it is encountered

  • Cross-apartment or cross-process COM method invocation and activation.
  • STA message filtering, reentrancy, call cancellation, timeout, or retry handling.
  • DCOM security initialization, proxy/stub marshaling, OBJREF processing, and server object lifetime.

The immediate focus is parameters or structures supplied to COM call-control facilities that violate size, version, pointer, flag, or sequence requirements.

What to verify

Verify that every structure size, reserved field, call category, and lifetime is validated at the boundary that invokes call control.

Correct handling and recovery

Correct the caller structure and version negotiation. Do not pass partially initialized memory or reinterpret newer layouts as older ones.

Reconcile partial output and server-side effects before attempting the operation again.

Difference from nearby HRESULTs

It faults call-control metadata; RPC_E_INVALID_OBJREF faults marshaled interface representation.

Practical scenario

A custom call-control hook passes a structure with the wrong cbSize. The hook initializes the documented version and adds ABI-size assertions.

References


Looking for a different code? Search another status or error code.