What does HRESULT 0x80660004 (E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED) mean?

 
Previous Next
E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED E_HDAUDIO_NULL_LINKED_LIST_ENTRY

E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED

The scope of E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED is HD Audio logical-device construction. HD Audio enumeration completed without successfully creating any logical audio subdevice. Keep 0x80660004 beside the returning method because a wrapper can replace this distinction with a generic subsystem message.

What the status establishes

When E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED is returned, creating no logical devices is an aggregate outcome reached after codec discovery. The root cause can precede endpoint registration by several stages: parsing widget routes, matching platform configuration, pairing topology and wave miniports, installing PortCls subdevices, or publishing device interfaces in the E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED path. For E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED, the earliest rejected node or subdevice is more useful than the final zero count.

For E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED, inspect the following boundary: this is an aggregate outcome. Earlier failures can occur while parsing the codec, matching endpoints, installing PortCls subdevices, creating topology and WaveRT pairs, registering interfaces, or applying platform configuration.

Keep neighboring failures separate

Unlike the other E_HDAUDIO codes, this one does not identify a single malformed widget field; it says the enumeration produced zero usable logical devices. For E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED, do not focus on the final aggregate code while discarding the earlier, more specific creation error.

Build a useful incident record

RecordWhy it matters here
Every per-node or per-endpoint failure before the aggregate HRESULTPreserving every per-node or per-endpoint failure before the aggregate HRESULT provides the evidence needed to test this distinction: unlike the other E_HDAUDIO codes, this one does not identify a single malformed widget field; it says the enumeration produced zero usable logical devices.
Codec topology, endpoint templates, and platform configurationFor E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED, recording codec topology, endpoint templates, and platform configuration separates the HD Audio logical-device construction boundary from a later wrapper symptom.
Subdevice creation and interface-registration resultsIn E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED diagnostics, recording subdevice creation and interface-registration results ties the HRESULT to the HD Audio logical-device construction boundary rather than to the final visible failure.
Plug and Play start sequence and rollback actionsComparing Plug and Play start sequence and rollback actions shows whether E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED follows input, object state, or environment.

Reduce the scenario safely

For E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED, instrument every candidate logical device with a stable identifier and a stage result. When E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED is returned, re-run enumeration with one endpoint definition at a time so a single malformed route cannot hide otherwise valid devices behind the aggregate failure.

  1. When E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED is returned, enable one minimal known-good render endpoint.
  2. Create topology and wave subdevices separately to locate the first failing half in the E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED path.
  3. For E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED, compare inbox and vendor endpoint configuration.
  4. When E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED is returned, verify partial creations are rolled back before the next start attempt.

Interpret the controls

TestInterpretationHold constant
Same environment, reduced inputIf E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED disappears with a smaller faithful case, complexity within HD Audio logical-device construction is implicated.For E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED, keep every per-node or per-endpoint failure before the aggregate HRESULT fixed while simplifying subdevice creation and interface-registration results.
Same input, fresh object generationIf E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED changes after rebuilding state, examine ownership across the codec parser, miniport, PortCls subdevice builder, and endpoint-construction layer.For E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED, place codec topology, endpoint templates, and platform configuration on the timeline of the last successful transition.
Same operation on a controlled second pathIf E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED follows one environment, the failure is not explained by source data alone.For E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED, compare PnP instance, codec revision, driver package, power state, and logical-device generation while preserving Plug and Play start sequence and rollback actions.

Prove the correction

A correction for E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED should let the operation at the HD Audio logical-device construction boundary complete repeatedly under the original supported conditions. Repeat the control that begins with “Enable one minimal known-good render endpoint” and confirm that the following lifecycle step also succeeds. For E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED, keep the original failing sample and one deliberate negative case so fallback cannot be mistaken for repair.

Technical references

When E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED 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.