| 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.
Capture before changing state
| Record | Why it matters here |
|---|---|
| List owner, operation, and element type | 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 state | 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 entries | Comparing allocation and insertion/removal history for neighboring entries shows whether this result follows input, object state, or environment. |
| Checked-build assertion, verifier report, or crash-adjacent stack | Preserving 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. Initialization, insertion, removal, power transitions, and Plug and Play callbacks must agree on who owns each list node and when traversal is allowed. A later endpoint failure is only a consequence if the list was already damaged.
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
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.
- Reproduce with Driver Verifier and pool diagnostics in a test system.
- serialize enumeration against stop, remove, and power-down paths.
- Assert list invariants after every insertion and removal.
- Test repeated start/stop and sleep/resume cycles rather than only cold boot.
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. 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
| Test | Interpretation | Hold constant |
|---|---|---|
| Same environment, reduced input | If this result disappears with a smaller faithful case, complexity within HD Audio driver object lifetime is implicated. | Keep list owner, operation, and element type fixed while simplifying allocation and insertion/removal history for neighboring entries. |
| Same input, fresh object instance | If it changes after rebuilding state, examine ownership across the codec parser, miniport, PortCls subdevice builder, and endpoint-construction layer. | 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 path | If it follows one environment, the failure is not explained by source data alone. | 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 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.
Technical references
Looking for a different code? Search another status or error code.