| Previous | Next |
| ERROR_VID_INVALID_NUMA_NODE_INDEX | ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE |
ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED
ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED is HRESULT 0xC0370011 in the VID memory notification binding area of the Windows virtualization stack. It applies to association between a VID memory block and its notification message queue.
Why this result is specific
The memory block already has a queue association, so a second binding would create ambiguous notification ownership. Identify whether the request duplicates the same queue or tries to replace it while active.
Neighboring result: NO_MEMORY_BLOCK_NOTIFICATION_QUEUE means the required association is absent. ALREADY_ASSOCIATED means one exists and must be examined before rebinding.
Records worth collecting
| Evidence | Why it changes the diagnosis |
|---|---|
| Memory block identity | Record handle, partition, GPA extent, and object instance. |
| Current queue | Capture associated queue handle/name, owner, and active notification types. |
| New request | Keep proposed queue identity and reason for rebinding. |
| Outstanding notifications | Record queued or unacknowledged events before teardown. |
A reproducible test plan
- Reuse the existing association only when owner and format match.
- Quiesce notifications before changing queue ownership.
- Make association state atomic with memory-block lifecycle.
- Test replacement during VM stop and migration.
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.
Comparison matrix
| Control | Interpretation | Hold constant |
|---|---|---|
| Controlled stall or burst | Deliberately 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. |
| Single producer and consumer | If 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 generation | A 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. |
Misleading shortcuts
Verification after repair
Each memory block has one unambiguous current queue, and association changes lose neither notifications nor ownership state.
Technical references
- Microsoft Open Specifications: HRESULT values — used to interpret this result.
- Microsoft TLFS: inter-partition communication — used to interpret this result.
- Microsoft TLFS: HV_MESSAGE — used to interpret this result.
- Microsoft: Hyper-V architecture — used to interpret this result.
Looking for a different code? Search another status or error code.