What does HRESULT 0x80660005 (E_HDAUDIO_NULL_LINKED_LIST_ENTRY) mean?

 
Previous Next
E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE

E_HDAUDIO_NULL_LINKED_LIST_ENTRY

E_HDAUDIO_NULL_LINKED_LIST_ENTRY identifies a failure in HD Audio driver object lifetime. The HD Audio driver path encountered a null entry while traversing an internal linked list that should contain valid objects. Investigation of E_HDAUDIO_NULL_LINKED_LIST_ENTRY should preserve the original object generation before cleanup, retry, or fallback creates a secondary result.

Capture before changing state

RecordWhy it matters here
List owner, operation, and element typeFor E_HDAUDIO_NULL_LINKED_LIST_ENTRY, recording list owner, operation, and element type separates the HD Audio driver object lifetime boundary from a later wrapper symptom.
Thread, IRQL, locks, and Plug and Play or power stateIn E_HDAUDIO_NULL_LINKED_LIST_ENTRY diagnostics, recording thread, IRQL, locks, and Plug and Play or power state ties the HRESULT to the HD Audio driver object lifetime boundary rather than to the final visible failure.
Allocation and insertion/removal history for neighboring entriesComparing allocation and insertion/removal history for neighboring entries shows whether E_HDAUDIO_NULL_LINKED_LIST_ENTRY follows input, object state, or environment.
Checked-build assertion, verifier report, or crash-adjacent stackPreserving checked-build assertion, verifier report, or crash-adjacent stack provides the evidence needed to test this distinction: this is a host-driver data-structure failure, not an HD Audio codec response and not evidence that an audio file is invalid.

Read the HRESULT in context

A null linked-list entry in a kernel audio path points to an internal ownership or teardown problem rather than an application stream format in the E_HDAUDIO_NULL_LINKED_LIST_ENTRY path. For E_HDAUDIO_NULL_LINKED_LIST_ENTRY, initialization, insertion, removal, power transitions, and Plug and Play callbacks must agree on who owns each list node and when traversal is allowed. When E_HDAUDIO_NULL_LINKED_LIST_ENTRY is returned, a later endpoint failure is only a consequence if the list was already damaged.

For E_HDAUDIO_NULL_LINKED_LIST_ENTRY, inspect the following boundary: the corruption can come from incomplete initialization, double removal, teardown racing with enumeration, allocation failure not handled at insertion, or a stale pointer after power or Plug and Play transitions.

A minimal test sequence

When E_HDAUDIO_NULL_LINKED_LIST_ENTRY is returned, tag allocations and list membership by generation, and serialize a reduced enumerate-remove-enumerate cycle. Driver Verifier and pool diagnostics are appropriate controls; reinstalling a media application does not exercise the list ownership contract in the E_HDAUDIO_NULL_LINKED_LIST_ENTRY path.

  1. Reproduce with Driver Verifier and pool diagnostics in a test system in the E_HDAUDIO_NULL_LINKED_LIST_ENTRY path.
  2. For E_HDAUDIO_NULL_LINKED_LIST_ENTRY, serialize enumeration against stop, remove, and power-down paths.
  3. When E_HDAUDIO_NULL_LINKED_LIST_ENTRY is returned, assert list invariants after every insertion and removal.
  4. Test repeated start/stop and sleep/resume cycles rather than only cold boot in the E_HDAUDIO_NULL_LINKED_LIST_ENTRY path.

Common wrong turns

This is a host-driver data-structure failure, not an HD Audio codec response and not evidence that an audio file is invalid. For E_HDAUDIO_NULL_LINKED_LIST_ENTRY, do not continue traversal after substituting an empty object for the null entry; that can turn a detectable invariant failure into memory corruption.

Three diagnostic branches

TestInterpretationHold constant
Same environment, reduced inputIf E_HDAUDIO_NULL_LINKED_LIST_ENTRY disappears with a smaller faithful case, complexity within HD Audio driver object lifetime is implicated.For E_HDAUDIO_NULL_LINKED_LIST_ENTRY, keep list owner, operation, and element type fixed while simplifying allocation and insertion/removal history for neighboring entries.
Same input, fresh object generationIf E_HDAUDIO_NULL_LINKED_LIST_ENTRY changes after rebuilding state, examine ownership across the codec parser, miniport, PortCls subdevice builder, and endpoint-construction layer.For E_HDAUDIO_NULL_LINKED_LIST_ENTRY, place thread, IRQL, locks, and Plug and Play or power state on the timeline of the last successful transition.
Same operation on a controlled second pathIf E_HDAUDIO_NULL_LINKED_LIST_ENTRY follows one environment, the failure is not explained by source data alone.For E_HDAUDIO_NULL_LINKED_LIST_ENTRY, compare PnP instance, codec revision, driver package, power state, and logical-device generation while preserving checked-build assertion, verifier report, or crash-adjacent stack.

Regression verification

A correction for E_HDAUDIO_NULL_LINKED_LIST_ENTRY should let the operation at the HD Audio driver object lifetime boundary complete repeatedly under the original supported conditions. Repeat the control that begins with “Reproduce with Driver Verifier and pool diagnostics in a test system” and confirm that the following lifecycle step also succeeds. For E_HDAUDIO_NULL_LINKED_LIST_ENTRY, keep the original failing sample and one deliberate negative case so fallback cannot be mistaken for repair.

Technical references

When E_HDAUDIO_NULL_LINKED_LIST_ENTRY is returned, these references define the public API family, object model, or error list used to interpret this status.


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