| Previous | Next |
| NS_E_MEMSTORAGE_BAD_DATA | NS_E_PDA_FAIL_READ_WAVE_FILE |
NS_E_PDA_FAIL_SELECT_DEVICE
Failure boundary and ownership
NS_E_PDA_FAIL_SELECT_DEVICE with value 0xC00D117C records binding the operation to the user-selected device from the current enumeration. The producing call and its state are more diagnostic than a later aggregate Player failure.
Underlying mechanism
At the checkpoint, windows Media Device Manager brokers between the Player, a device service provider and MTP, mass-storage or legacy device transports; Enumeration, Plug and Play identity, storage availability, format support and individual file operations are distinct checks. The page-specific boundary is binding the operation to the user-selected device from the current enumeration.
A device shown in Explorer can still disappear from the Player’s WMDM session or reject a media format, filename, directory operation or storage request. The condition can be reproduced when the UI index refers to a different entry after a device reconnect.
Trace fields worth keeping
| Evidence | Why it matters for fail select device |
|---|---|
| Producing object and operation | PnP instance and interface path, WMDM service-provider CLSID, device/partnership ID, connection generation, storage object and capacity, format-support result, firmware version, operation callback and first device or transport HRESULT |
| Decisive observation | selected index/ID, device array generation, connection state and selection callback |
| Generation identity | Record the same disc, device, job or Player operation generation that returned this result; a reconnect or media change creates a different test. |
| Underlying result | Keep the first device, filesystem, COM, codec, DirectShow, IMAPI or BITS result seen before the Player mapped it to this result. |
| Controlled comparison | Repeat the producing call after changing only this condition: re-enumerate and select by stable device identity rather than a stale index. |
What the comparison proves
| Observation | Interpretation |
|---|---|
| The recorded values match the boundary | The result is consistent with binding the operation to the user-selected device from the current enumeration; correct that state before changing unrelated codecs, drivers or playlists. |
| A lower layer failed before this result | Preserve that earlier HRESULT or device result because this result may be only the Player-level mapping. |
| The same call passes after one isolated change | The comparison supports the fail select device diagnosis rather than a broad installation failure. |
| The code changes after retesting it | The boundary was passed; diagnose the new HRESULT as the next independent stage. |
It scopes the failure to binding the operation to the user-selected device from the current enumeration.
Decision path
- Capture
0xC00D117C, it, the exact Player/API operation and the first timestamp at which it appears. - Save selected index/ID, device array generation, connection state and selection callback; do this before ejecting media, reconnecting a device, canceling a job or rebuilding the Player object.
- correlate the result with PnP instance and interface path, WMDM service-provider CLSID, device/partnership ID, connection generation, storage object and capacity, format-support result, firmware version, operation callback and first device or transport HRESULT.
- Reproduce once with the original source and destination, then apply only this change: re-enumerate and select by stable device identity rather than a stale index.
- Create a fresh operation generation and verify that the original call advances beyond the fail select device boundary.
Close alternatives
| Related result | Different diagnostic boundary |
|---|---|
NS_E_PDA_FAIL_READ_WAVE_FILE | opening and parsing a WAV source used for device transfer or conversion |
NS_E_PDA_UNSPECIFIED_ERROR | receiving a device/service-provider failure without a more specific Player mapping |
NS_E_NO_PDA | enumerating a portable device for the requested Player operation |
Safe correction
Correct this boundary by making sure you re-enumerate and select by stable device identity rather than a stale index. Then reacquire the interface or media state that produced it and repeat that call.
When verifying it, do not assume the old interface pointer remains valid after reconnect; Re-enumerate the device and storage objects and correlate the failure with the same connection generation.
Source material
- Windows Media Device Manager SDK.
- Enabling Plug and Play for WMDM devices.
- Portable-device capabilities and shell requirements.
- WMDM connection and storage notifications.
Looking for a different code? Search another status or error code.