| Previous | Next |
| E_BLUETOOTH_ATT_UNKNOWN_ERROR | E_HDAUDIO_EMPTY_CONNECTION_LIST |
E_AUDIO_ENGINE_NODE_NOT_FOUND
E_AUDIO_ENGINE_NODE_NOT_FOUND belongs to PortCls audio-engine node discovery. A miniport claimed IMiniportAudioEngineNode support but PortCls could not locate the corresponding audio-engine node in its topology. The diagnostic goal for it is to identify the first rejecting object and transition, not merely the final high-level symptom.
Start with the returning API
An audio miniport that exposes the audio-engine interface must make its topology descriptor and node identifiers agree with that claim., PortCls cannot infer a missing engine node from friendly endpoint names. The node table, KS topology, miniport interfaces, and subdevice on which the interface is exposed must all describe the same logical engine.
Inspect the following boundary: the interface claim and the KS topology must describe the same node. A missing node can result from a wrong node ID, inconsistent descriptor tables, exposing the interface on the wrong subdevice, or failing to create the topology expected by PortCls.
Diagnostic evidence matrix
| Record | Why it matters here |
|---|---|
| Adapter and subdevice instance IDs | Comparing adapter and subdevice instance IDs shows whether this result follows input, object state, or environment. |
| Miniport interface query result and audio-engine node ID | Preserving miniport interface query result and audio-engine node ID provides the evidence needed to test this distinction: this differs from E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED: the current failure is a specific PortCls engine-node contract, not total failure to create codec subdevices. |
| KS filter node descriptors and automation tables | Recording KS filter node descriptors and automation tables separates the PortCls audio-engine node discovery boundary from a later wrapper symptom. |
| PortCls trace and the call that first asks for the engine node | In this result diagnostics, recording PortCls trace and the call that first asks for the engine node ties the HRESULT to the PortCls audio-engine node discovery boundary rather than to the final visible failure. |
Reproduce without destructive cleanup
Compare the descriptor tables used at registration with the node ID returned by the miniport. A minimal SysVAD-derived topology is a better control than an unrelated working USB or Bluetooth endpoint because those devices use different driver and topology paths.
- compare the node ID returned by the miniport with the published topology descriptors.
- When it is returned, run the same topology through the SysVAD sample structure as a control.
- Verify WaveRT and topology subdevices are paired as intended.
- check build-time descriptor counts and conditional feature flags.
Useful comparison axes
| Test | Interpretation | Hold constant |
|---|---|---|
| Same environment, reduced input | If this result disappears with a smaller faithful case, complexity within PortCls audio-engine node discovery is implicated. | Keep adapter and subdevice instance IDs fixed while simplifying KS filter node descriptors and automation tables. |
| Same input, fresh object generation | If this result changes after rebuilding state, examine ownership across the codec parser, miniport, PortCls subdevice builder, and endpoint-construction layer. | Place miniport interface query result and audio-engine node ID on the timeline of the last successful transition. |
| Same operation on a controlled second path | If this result 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 PortCls trace and the call that first asks for the engine node. |
Limits of this code
This differs from E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED: the current failure is a specific PortCls engine-node contract, not total failure to create codec subdevices. Do not remove IMiniportAudioEngineNode support merely to suppress the status if the driver still depends on engine-node properties.
What success must demonstrate
A correction for it should let the operation at the PortCls audio-engine node discovery boundary complete repeatedly under the original supported conditions. Repeat the control that begins with “Compare the node ID returned by the miniport with the published topology descriptors” and confirm that the following lifecycle step also succeeds. Keep the original failing sample and one deliberate negative case so fallback cannot be mistaken for repair.
Technical references
When it is returned, these references define the public API family, object model, or error list used to interpret this status.
- Microsoft: COM error codes for Input and graphics.
- Microsoft: PortCls interfaces and structures.
- Microsoft: Windows audio driver design guide.
- Microsoft: hdaudio.h header reference.
- Microsoft: SysVAD virtual audio driver sample.
Looking for a different code? Search another status or error code.
