Site icon EfmSoft

What does HRESULT 0xC0370014 (ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE) mean?

 
Could be also:
ConstantTypeOS
STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLENTSTATUSWindows
Previous Next
ERROR_VID_PAGE_RANGE_OVERFLOW ERROR_VID_INVALID_GPA_RANGE_HANDLE

ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE

ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE is HRESULT 0xC0370014 in the VID queue handle validation area of the Windows virtualization stack. It applies to an opaque message-queue handle passed to a VID queue operation.

Where the result originates

The handle is not valid in the current host, partition, or queue generation. Common causes are use-after-close, wrong object type, cross-partition reuse, and serialization of an opaque handle.

Neighboring result: MESSAGE_QUEUE_CLOSED can be returned for a known queue that reached closed state. INVALID_HANDLE indicates the supplied token cannot be accepted as the intended live queue object.

Build an incident record

EvidenceWhy it changes the diagnosis
Handle value and sourceRecord where it was obtained and whether it crossed process or IPC boundaries.
Owner identityKeep partition, worker, queue name, and generation.
Close/delete timelineLocate the first transition that invalidated the handle.
Type checksConfirm the wrapper did not confuse memory-block, GPA-range, or queue handles.

Run narrow checks

  1. Never persist or serialize opaque VID handles.
  2. Clear shared handle state before closing the queue.
  3. Use generation-tagged wrappers and reject cross-partition use.
  4. Race close against enqueue/dequeue under instrumentation.

Reproduce this condition with bounded producers and a fully instrumented consumer. Preserve message ordering, queue generation, handler ownership, target VP, and acknowledgement timestamps while changing only one concurrency condition.

Interpret three controls

ControlInterpretationHold constant
Single producer and consumerIf it disappears with serialized ownership, the queue, handler, acknowledgement, or delivery race is implicated.Preserve message type, partition, target VP, and queue capacity.
Fresh channel generationA new queue or handler generation changing it points to stale registration, backlog, or incomplete teardown.Keep payload, producer order, and host build unchanged in the test.
Controlled stall or burstDeliberately slow the consumer or bound the producer rate. The threshold at which it appears identifies backpressure versus lifecycle failure.Record queue depth, oldest-item age, and acknowledgement timing.

Keep neighboring states separate

A handle observed is generation-bound. Keep its parent partition and object type beside the token; never serialize it, copy it to another partition, or reuse it after the terminal transition.

Prove the correction

All queue operations use live current-generation handles, and deliberate stale or wrong-type handles fail before state mutation.

Technical references


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

Exit mobile version