| Previous | Next |
| NS_E_BKGDOWNLOAD_CALLFUNCTIMEOUT | NS_E_BKGDOWNLOAD_WMDUNPACKFAILED |
NS_E_BKGDOWNLOAD_CALLFUNCENDED
Where this result occurs in the Player workflow
NS_E_BKGDOWNLOAD_CALLFUNCENDED (0xC00D1267) marks aborting a callback because the Player/download service is terminating. Preserve that boundary even when the visible Player message is broader than the producing operation.
Mechanism
At the checkpoint, the Player’s download manager coordinates an owner window, a plug-in, background job identity, temporary files and final completion or cancellation; A downloaded.wmd package adds an extraction and cataloguing phase after transfer. The page-specific boundary is aborting a callback because the Player/download service is terminating.
Receiving all network bytes is not the same as completing the job, moving the temporary file or successfully unpacking and cataloguing a Windows Media Download package. A representative way to reach this result is that a long callback is interrupted when the Player closes.
State snapshot
| Evidence | Why it matters for callfuncended |
|---|---|
| Producing object and operation | job GUID and Player signature, BITS/job state, expected and actual file count, remote and local names, temporary path, completion/cancel request, plug-in and callback identity, COM apartment, WMD extraction result and first underlying HRESULT |
| Decisive observation | shutdown generation, active function, job state and recovery marker |
| 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: allow shutdown cleanup and resume/recreate the job after the Player restarts. |
How to interpret the next test
| Observation | Interpretation |
|---|---|
| The recorded values match the boundary | The result is consistent with aborting a callback because the Player/download service is terminating; 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 it may be only the Player-level mapping. |
| The same call passes after one isolated change | The comparison supports the callfuncended 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 aborting a callback because the Player/download service is terminating.
Controlled diagnostic sequence
- Capture
0xC00D1267, it, the exact Player/API operation and the first timestamp at which it appears. - Save shutdown generation, active function, job state and recovery marker; do this before ejecting media, reconnecting a device, canceling a job or rebuilding the Player object.
- correlate the result with job GUID and Player signature, BITS/job state, expected and actual file count, remote and local names, temporary path, completion/cancel request, plug-in and callback identity, COM apartment, WMD extraction result and first underlying HRESULT.
- Reproduce once with the original source and destination, then apply only this change: allow shutdown cleanup and resume/recreate the job after the Player restarts.
- Create a fresh operation generation and verify that the original call advances beyond the callfuncended boundary.
Nearby codes with different owners
| Related result | Different diagnostic boundary |
|---|---|
NS_E_BKGDOWNLOAD_CALLFUNCTIMEOUT | waiting longer than allowed for a download plug-in callback |
NS_E_BKGDOWNLOAD_WMDUNPACKFAILED | extracting and validating a downloaded.wmd package after transfer |
NS_E_BKGDOWNLOAD_CALLFUNCFAILED | executing a requested plug-in function that returned a non-timeout failure |
Focused correction
For this occurrence, allow shutdown cleanup and resume/recreate the job after the Player restarts. Recreate only the object that produced it and repeat the original operation against the same controlled input.
When verifying it, do not delete the job or temporary file before recording its state, owner signature and file list; Completion and cancellation are terminal operations and must not be retried blindly.
Technical references
- BITS interfaces and job objects.
- Completing and canceling a BITS job.
- BITS return values and job-state failures.
- Windows Media Download packages.
- Creating the COM Global Interface Table.
Looking for a different code? Search another status or error code.
