Anavem
Languageen
CritiqueCOM / DCOM

0x8000FFFF

E_UNEXPECTED

Unexpected COM failure — catastrophic error.

Code hex

0x8000FFFF

Décimal

-2147418113

Sévérité

Critique

Catégorie

COM / DCOM

Description

E_UNEXPECTED (code hexadécimal 0x8000FFFF, décimal -2147418113) est un code d'erreur Windows de niveau critique appartenant à la famille Erreurs COM et DCOM. Microsoft remonte ce code via l'API Win32, le runtime CLR, le noyau, le journal d'événements, PowerShell, les outils en ligne de commande (sfc, dism, gpupdate, sc) et les applications Windows telles qu'Outlook, Teams, Office ou System Center.

Unexpected COM failure — catastrophic error.

Cette page documente ce qui déclenche 0x8000FFFF, les scénarios les plus courants où il apparaît, les causes racines probables et un workflow de diagnostic pas-à-pas applicable sur les postes concernés. Elle s'adresse aux administrateurs système, techniciens MSP, ingénieurs helpdesk et à toute personne diagnostiquant le comportement de Windows en environnement managé.

Explication détaillée

Il s'agit d'une erreur Windows de niveau critique. Elle signale typiquement une défaillance noyau, une violation de sécurité non récupérable, une panne matérielle ou un bug fatal de driver. Toute occurrence doit être traitée comme un incident P1 : isolez l'hôte, capturez un dump mémoire si disponible et récupérez le dernier minidump dans C:\Windows\Minidump pour analyse.

Il fait partie de l'espace d'erreurs COM / DCOM / OLE. Il apparaît typiquement lors de l'activation COM (CoCreateInstance), des événements de durcissement DCOM (10016) ou des échecs de marshalling OLE-DB / RPC.

Le code peut être recherché par programmation en PowerShell avec [ComponentModel.Win32Exception]::new(-2147418113).Message (pour les codes Win32 / NTSTATUS qui se mappent proprement), ou avec net helpmsg <decimal> pour la plage décimale historique. Pour les codes de type HRESULT, décodez la facility et le code via err.exe du SDK ou la commande !error de WinDbg.

Causes courantes

  • Classe COM non enregistrée (regsvr32 manquant ou mismatch 32-bit / 64-bit).
  • Permissions DCOM Launch / Activation dépouillées par stratégie de groupe ou durcissement.
  • Serveur COM crashé et ne répondant plus aux proxies existants.
  • Modèle d'apartment threading incohérent entre appelant et serveur.
  • DLL de dépendance manquante ou corrompue référencée par le serveur COM.

Étapes de diagnostic

  1. Identifiez le CLSID/AppID fautif depuis l'entrée du journal (Event 10016 dans System log) ou la trace de l'application appelante.
  2. Ouvrez dcomcnfg, repérez l'AppID dans Services de composants > Ordinateurs > Poste de travail > Configuration DCOM, et vérifiez les permissions Lancement / Activation / Accès.
  3. Réenregistrez le serveur COM fautif : regsvr32 <server.dll> (utilisez %WINDIR%\SysWOW64\regsvr32.exe pour le 32-bit sur Windows x64).
  4. Vérifiez les dépendances avec Dependency Walker ou dumpbin /dependents — une DLL manquante est une cause racine fréquente.
  5. Validez que le processus appelant correspond au modèle de threading attendu par le serveur COM (STA vs MTA).

Décoder en PowerShell

# Decode 0x8000FFFF (-2147418113) in PowerShell
[ComponentModel.Win32Exception]::new(-2147418113).Message

# Or via WinDbg / err.exe (Windows SDK)
# err 0x8000FFFF

# Or net helpmsg (legacy decimal range only)
# net helpmsg <decimal>

Questions fréquentes

Que signifie le code d'erreur Windows 0x8000FFFF ?
Il s'agit du code Win32 / NTSTATUS E_UNEXPECTED (décimal -2147418113). Unexpected COM failure — catastrophic error.
Comment décoder 0x8000FFFF en PowerShell ?
Lancez [ComponentModel.Win32Exception]::new(-2147418113).Message dans n'importe quelle session PowerShell. Pour les codes de type HRESULT, utilisez err.exe du SDK Windows ou la commande !error de WinDbg.
Où Windows journalise-t-il typiquement cette erreur ?
Cela dépend du sous-système d'origine (Windows Update → %WinDir%\WindowsUpdate.log ; AD/Kerberos → journal Sécurité sur le DC ; BSOD → minidump dans C:\Windows\Minidump ; MSI → %TEMP%\msi*.log ; WMI → Microsoft-Windows-WMI-Activity). Croisez toujours l'horodatage et le nom du module avec les journaux Application et Système.
Ce code est-il récupérable ?
Les codes de niveau critique exigent généralement une investigation noyau (driver, matériel, réparation de fichiers système). Les codes erreur et avertissement sont typiquement récupérables via le workflow de cette page — commencez par les étapes shell élevé + revue des journaux.
Dois-je ouvrir un ticket support Microsoft pour cela ?
Ouvrez un ticket si l'erreur se reproduit après application des étapes de diagnostic, particulièrement si elle bloque des charges de production, se produit sur plusieurs endpoints ou est associée à une frontière de sécurité (récupération BitLocker, échec Kerberos, durcissement DCOM, SmartScreen / WDAC). Préparez un CBS log frais, un minidump ou un export Get-WinEvent avant d'ouvrir le ticket.