| Previous | Next |
| NS_E_BKGDOWNLOAD_FAILEDINITIALIZE | NS_E_BKGDOWNLOAD_INVALID_FILE_NAME |
NS_E_INTERFACE_NOT_REGISTERED_IN_GIT
How to investigate NS_E_INTERFACE_NOT_REGISTERED_IN_GIT
The code 0xC00D126A narrows the event to retrieving a COM interface from the Global Interface Table in another apartment. Treat this result as a checkpoint in background download jobs and windows media packages and retain its first lower-level error.
What the Player is doing
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 retrieving a COM interface from the Global Interface Table in another apartment.
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 realistic trigger is that a worker uses a cookie after shutdown code revoked the interface.
Capture before changing state
| Evidence | Why it matters for interface not registered in git |
|---|---|
| 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 | GIT cookie, requested IID, register/revoke sequence and callback apartment |
| 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: register the live interface before cross-apartment use and revoke it only after callbacks finish. |
Interpretation guide
| Observation | Interpretation |
|---|---|
| The recorded values match the boundary | The result is consistent with retrieving a COM interface from the Global Interface Table in another apartment; 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 interface not registered in git 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 retrieving a COM interface from the Global Interface Table in another apartment.
Five-step isolation test
- Capture
0xC00D126A, it, the exact Player/API operation and the first timestamp at which it appears. - Save GIT cookie, requested IID, register/revoke sequence and callback apartment; 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: register the live interface before cross-apartment use and revoke it only after callbacks finish.
- Create a fresh operation generation and verify that the original call advances beyond the interface not registered in git boundary.
Different boundaries in the same family
| Related result | Different diagnostic boundary |
|---|---|
NS_E_BKGDOWNLOAD_FAILEDINITIALIZE | starting the overall background-download manager and job database |
NS_E_BKGDOWNLOAD_INVALID_FILE_NAME | deriving a valid final filename for the requested download |
NS_E_BKGDOWNLOAD_WMDUNPACKFAILED | extracting and validating a downloaded.wmd package after transfer |
Correction criteria
The test is successful when you register the live interface before cross-apartment use and revoke it only after callbacks finish, recreate the owning operation, and the original call no longer returns it.
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.
COM apartment lifetime is part of the failure
A pointer that was valid in the registering apartment is not a substitute for a valid Global Interface Table cookie. Record the thread/apartment that called RegisterInterfaceInGlobal, the cookie, requested IID and the point at which RevokeInterfaceFromGlobal ran. A shutdown race can make a later worker callback look like a missing Player component.
Documentation
- 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.