ANAVEM
Languageen
Windows Event Viewer displaying application hang detection events on a system administrator's monitoring setup
Event ID 22WarningApplication ErrorWindows

ID d'événement Windows 22 – Erreur d'application : Détection de blocage d'application

L'ID d'événement 22 indique que Windows a détecté un blocage d'application ou un programme non réactif. Cet événement se déclenche lorsque les applications cessent de répondre aux entrées utilisateur ou aux messages système pendant de longues périodes.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
18 mars 20269 min de lecture 0
Event ID 22Application Error 5 méthodes 9 min
Référence événement

Signification de cet événement

L'ID d'événement Windows 22 représente la détection par le système d'exploitation des conditions de blocage des applications, un composant critique du système de surveillance de la réactivité des applications de Windows. Cet événement se produit lorsque le mécanisme de détection de blocage de Windows détermine qu'une application a cessé de traiter les messages de sa file d'attente de messages pendant une période prolongée, dépassant généralement le seuil par défaut de 5 secondes.

Le processus de détection de blocage fonctionne en envoyant des messages de test aux fenêtres des applications et en surveillant leurs temps de réponse. Lorsque les applications ne parviennent pas à traiter ces messages dans le délai configuré, Windows les considère comme bloquées et génère l'ID d'événement 22. Ce mécanisme aide à distinguer les applications qui sont légitimement occupées à effectuer des opérations de longue durée de celles qui sont réellement devenues non réactives en raison de blocages, de boucles infinies ou de contentions de ressources.

Les données de l'événement incluent des informations de diagnostic précieuses telles que le nom exécutable de l'application, l'identifiant du processus, les informations sur le thread et la durée du blocage. Ces données s'avèrent inestimables pour le dépannage des problèmes de stabilité des applications, l'identification des modèles de logiciels problématiques et la prise de décisions éclairées concernant le déploiement et la maintenance des applications. Dans les environnements Windows Server, cet événement aide les administrateurs à surveiller les applications de service critiques et à mettre en œuvre des mesures proactives pour maintenir la stabilité du système.

Les versions modernes de Windows ont amélioré les capacités de détection de blocage, y compris des calculs de délai d'attente améliorés et une meilleure intégration avec le rapport d'erreurs Windows. Les mises à jour de 2026 pour Windows 11 et Server 2025 incluent des algorithmes de détection de blocage affinés qui réduisent les faux positifs tout en maintenant une détection précise des véritables blocages d'applications.

S'applique à

Windows 10Windows 11Windows Server 2019/2022/2025
Analyse

Causes possibles

  • Verrouillages d'application où les threads attendent indéfiniment des ressources
  • Boucles infinies dans le code de l'application empêchant le traitement des messages
  • Utilisation élevée du CPU par les threads en arrière-plan bloquant le thread principal de l'interface utilisateur
  • Pression sur la mémoire causant un échange excessif et un ralentissement de l'application
  • Opérations d'E/S réseau ou disque bloquant le thread principal de l'application
  • Plugins ou extensions tiers causant une instabilité de l'application
  • Ressources système insuffisantes (RAM, CPU) pour les exigences de l'application
  • Conflits de pilotes affectant les performances de l'application
  • Logiciel antivirus interférant avec l'exécution de l'application
  • Corruption du registre Windows affectant le démarrage ou le fonctionnement de l'application
Méthodes de résolution

Étapes de dépannage

01

Vérifier le Visualiseur d'événements pour les détails de blocage

Commencez par examiner les entrées spécifiques de l'ID d'événement 22 pour identifier l'application problématique et les modèles de blocage.

  1. Ouvrez Observateur d'événements en appuyant sur Win + R, en tapant eventvwr.msc, et en appuyant sur Entrée
  2. Accédez à Journaux WindowsApplication
  3. Filtrez le journal en cliquant sur Filtrer le journal actuel dans le volet Actions
  4. Entrez 22 dans le champ ID d'événements et cliquez sur OK
  5. Examinez les entrées récentes de l'ID d'événement 22, en notant le nom de l'application, l'ID du processus et la durée du blocage
  6. Cherchez des modèles tels que des applications spécifiques se bloquant à plusieurs reprises ou des blocages se produisant à des moments particuliers

Utilisez PowerShell pour interroger les événements de blocage de manière programmatique :

Get-WinEvent -FilterHashtable @{LogName='Application'; Id=22} -MaxEvents 50 | Select-Object TimeCreated, Id, LevelDisplayName, Message | Format-Table -Wrap
Astuce pro : Exportez les événements de blocage vers un fichier CSV pour une analyse des tendances en utilisant Export-Csv -Path C:\temp\hangs.csv -NoTypeInformation
02

Surveiller les performances des applications avec le Gestionnaire des tâches

Utilisez le Gestionnaire des tâches et le Moniteur de performances pour identifier les contraintes de ressources causant des blocages d'application.

  1. Ouvrez Gestionnaire des tâches en appuyant sur Ctrl + Maj + Échap
  2. Cliquez sur l'onglet Processus et triez par utilisation du CPU pour identifier les applications à forte utilisation
  3. Surveillez la colonne Mémoire pour vérifier les applications consommant trop de RAM
  4. Passez à l'onglet Performances pour voir l'utilisation globale des ressources système
  5. Si l'utilisation de la mémoire dépasse constamment 80 %, envisagez d'ajouter de la RAM ou de fermer les applications inutiles
  6. Utilisez le Moniteur de ressources (accessible depuis l'onglet Performances du Gestionnaire des tâches) pour une analyse détaillée des E/S

Créez un script PowerShell pour surveiller les processus problématiques :

# Surveiller la performance d'une application spécifique
$ProcessName = "YourAppName"
while ($true) {
    $Process = Get-Process -Name $ProcessName -ErrorAction SilentlyContinue
    if ($Process) {
        $CPUTime = $Process.CPU
        $Memory = [math]::Round($Process.WorkingSet64/1MB, 2)
        Write-Host "$(Get-Date): CPU: $CPUTime, Memory: ${Memory}MB"
    }
    Start-Sleep -Seconds 5
}
Avertissement : Une utilisation élevée du CPU ou de la mémoire n'indique pas toujours la cause des blocages. Recherchez les applications qui affichent 0 % de CPU mais restent non réactives.
03

Configurer les paramètres de délai d'attente d'application

Ajustez les délais de détection de blocage de Windows pour réduire les faux positifs ou augmenter la sensibilité en fonction des besoins de votre environnement.

  1. Ouvrez l'Éditeur du Registre en appuyant sur Win + R, en tapant regedit, et en appuyant sur Entrée
  2. Accédez à HKEY_CURRENT_USER\Control Panel\Desktop
  3. Cherchez ou créez les valeurs DWORD suivantes :
    • HungAppTimeout - Temps en millisecondes avant de considérer qu'une application est bloquée (par défaut : 5000)
    • WaitToKillAppTimeout - Temps d'attente avant de forcer la fermeture des applications bloquées (par défaut : 20000)
  4. Double-cliquez sur chaque valeur pour modifier les périodes de délai
  5. Redémarrez les applications concernées ou déconnectez-vous et reconnectez-vous pour que les modifications prennent effet

Utilisez PowerShell pour vérifier les paramètres de délai actuels :

# Vérifiez les paramètres de délai de blocage actuels
$DesktopKey = "HKCU:\Control Panel\Desktop"
Get-ItemProperty -Path $DesktopKey -Name "HungAppTimeout", "WaitToKillAppTimeout" -ErrorAction SilentlyContinue

Définissez les délais par programmation :

# Augmentez le délai de blocage à 10 secondes
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "HungAppTimeout" -Value 10000 -Type DWord
# Augmentez le délai de fermeture à 30 secondes
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "WaitToKillAppTimeout" -Value 30000 -Type DWord
Astuce pro : Augmenter les délais réduit la détection de faux blocages mais peut rendre le système moins réactif. Testez les modifications dans un environnement non productif d'abord.
04

Analyser les vidages d'application et le rapport d'erreurs Windows

Générez et analysez les vidages mémoire des applications bloquées pour identifier les causes profondes.

  1. Activez la collecte automatique de vidages en naviguant vers Panneau de configurationSystème et sécuritéSystèmeParamètres système avancés
  2. Cliquez sur Paramètres sous Démarrage et récupération
  3. Assurez-vous que Écrire les informations de débogage est réglé sur Petit vidage mémoire ou Vidage mémoire du noyau
  4. Configurez le Rapport d'erreurs Windows pour collecter les vidages de blocage :
    • Naviguez vers HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
    • Créez une nouvelle clé nommée d'après votre application problématique (par exemple, "notepad.exe")
    • Ajoutez des valeurs DWORD : DumpType (2 pour vidage complet), DumpCount (10), DumpFolder (REG_EXPAND_SZ pointant vers l'emplacement du vidage)

Utilisez PowerShell pour configurer la collecte de vidages :

# Configurez la collecte de vidages pour une application spécifique
$AppName = "problematic-app.exe"
$DumpPath = "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\$AppName"
New-Item -Path $DumpPath -Force
Set-ItemProperty -Path $DumpPath -Name "DumpType" -Value 2 -Type DWord
Set-ItemProperty -Path $DumpPath -Name "DumpCount" -Value 10 -Type DWord
Set-ItemProperty -Path $DumpPath -Name "DumpFolder" -Value "C:\CrashDumps" -Type ExpandString

Créez manuellement un vidage d'un processus bloqué :

# Créez un vidage en utilisant ProcDump (outil SysInternals)
procdump.exe -ma -h notepad.exe C:\dumps\notepad_hang.dmp
Avertissement : Les vidages mémoire complets peuvent être très volumineux. Assurez-vous d'avoir suffisamment d'espace disque et considérez les implications en matière de confidentialité lors de la collecte de vidages.
05

Mettre en œuvre une surveillance proactive et des alertes

Configurez une surveillance automatisée pour détecter et répondre aux modèles de blocage d'application avant qu'ils n'affectent les utilisateurs.

  1. Créez un script PowerShell pour surveiller les occurrences de l'ID d'événement 22 et envoyer des alertes :
# Script de surveillance des blocages
param(
    [int]$ThresholdMinutes = 60,
    [int]$MaxHangs = 5,
    [string]$EmailTo = "admin@company.com",
    [string]$SMTPServer = "mail.company.com"
)

$StartTime = (Get-Date).AddMinutes(-$ThresholdMinutes)
$HangEvents = Get-WinEvent -FilterHashtable @{
    LogName='Application'
    Id=22
    StartTime=$StartTime
} -ErrorAction SilentlyContinue

if ($HangEvents.Count -ge $MaxHangs) {
    $Subject = "Alerte : $($HangEvents.Count) blocages d'application détectés sur $env:COMPUTERNAME"
    $Body = $HangEvents | Select-Object TimeCreated, Message | ConvertTo-Html | Out-String
    Send-MailMessage -To $EmailTo -Subject $Subject -Body $Body -SmtpServer $SMTPServer -BodyAsHtml
}
  1. Planifiez le script à l'aide du Planificateur de tâches :
    • Ouvrez Planificateur de tâches et créez une nouvelle tâche
    • Définissez le déclencheur pour s'exécuter toutes les 30 minutes
    • Configurez l'action pour exécuter PowerShell avec votre script de surveillance
  2. Utilisez Windows Performance Toolkit (WPT) pour une analyse avancée des blocages :
# Installez WPT et créez une détection de blocage personnalisée
wpa.exe -i hang_trace.etl -profile hang_analysis.wpaProfile

Créez une vue personnalisée du journal des événements pour le suivi des blocages :

<QueryList>
  <Query Id="0" Path="Application">
    <Select Path="Application">*[System[(EventID=22) and TimeCreated[timediff(@SystemTime) &lt;= 86400000]]]</Select>
  </Query>
</QueryList>
Astuce pro : Combinez la surveillance des blocages avec l'automatisation du redémarrage des applications pour minimiser l'impact sur les utilisateurs. Utilisez des outils comme SCOM ou des configurations PowerShell DSC personnalisées pour les environnements d'entreprise.

Aperçu

L'ID d'événement 22 de la source d'erreur d'application se déclenche lorsque Windows détecte qu'une application est devenue non réactive ou bloquée. Cet événement fait partie du mécanisme de détection de blocage d'application de Windows, qui surveille les processus en cours pour leur réactivité aux messages de l'interface utilisateur et aux appels système. Lorsqu'une application ne répond pas dans le délai d'attente configuré (généralement 5 secondes pour les opérations de l'interface utilisateur), Windows génère cet événement et peut afficher la boîte de dialogue familière "Programme ne répond pas".

Cet événement apparaît dans le journal des applications et fournit des informations de diagnostic cruciales, y compris le nom du processus de l'application bloquée, l'ID du processus et la durée du blocage. L'événement aide les administrateurs à identifier les applications problématiques, à suivre les modèles de stabilité des applications et à résoudre les problèmes de performance dans les environnements Windows. Dans les environnements d'entreprise, la surveillance des modèles d'ID d'événement 22 peut révéler des applications qui se bloquent systématiquement, aidant à prioriser les mises à jour ou les remplacements de logiciels.

Le système de détection de blocage fonctionne au niveau de la boucle de messages Windows, surveillant les applications qui ont enregistré des fenêtres avec le système. Les applications qui ne répondent pas aux messages WM_NULL ou à d'autres requêtes système dans le délai d'attente déclenchent cet événement. Comprendre cet événement est essentiel pour maintenir la stabilité des applications et l'expérience utilisateur dans les environnements Windows.

Questions Fréquentes

Que signifie l'ID d'événement Windows 22 et quand devrais-je m'en inquiéter ?+
L'ID d'événement 22 indique que Windows a détecté un blocage d'application - lorsqu'un programme cesse de répondre aux entrées utilisateur ou aux messages système pendant plus de 5 secondes (délai d'attente par défaut). Vous devriez vous inquiéter lorsque vous voyez des entrées fréquentes de l'ID d'événement 22 pour la même application, car cela suggère des problèmes de stabilité sous-jacents. Des blocages occasionnels peuvent être normaux pour les applications gourmandes en ressources, mais des schémas de blocages répétés indiquent des problèmes nécessitant une enquête. Surveillez les applications qui se bloquent plusieurs fois par jour ou qui causent une dégradation des performances à l'échelle du système.
Comment puis-je empêcher les applications de déclencher la détection de blocage de l'ID d'événement 22 ?+
Prévenez les blocages d'application en garantissant des ressources système adéquates (RAM, CPU), en maintenant les applications à jour et en évitant les opérations gourmandes en ressources sur le fil principal de l'interface utilisateur. Configurez les applications pour effectuer des tâches de longue durée sur des fils d'arrière-plan tout en gardant l'interface utilisateur réactive. Augmentez les valeurs de délai d'attente des blocages dans le registre si des opérations légitimes prennent plus de 5 secondes. Pour les applications personnalisées, implémentez un threading approprié, utilisez des modèles async/await et ajoutez des indicateurs de progression pour les opérations longues. Un entretien régulier du système, y compris le nettoyage du disque, le nettoyage du registre et les mises à jour des pilotes, aide également à prévenir les conditions de blocage.
L'ID d'événement 22 peut-il provoquer des plantages système ou une perte de données ?+
L'ID d'événement 22 en lui-même ne provoque pas de plantages système - c'est un avertissement qu'une application est devenue non réactive. Cependant, les conditions sous-jacentes causant les blocages (fuites de mémoire, épuisement des ressources, interblocages) peuvent potentiellement conduire à une instabilité du système si elles ne sont pas résolues. Les applications bloquées peuvent empêcher les procédures d'arrêt correctes, ce qui peut entraîner une perte de données dans le travail non sauvegardé. Windows peut forcer la fermeture des applications bloquées après le délai d'attente configuré, ce qui pourrait entraîner une perte de données si l'application n'a pas enregistré les modifications récentes. Sauvegardez toujours le travail fréquemment et enquêtez sur les modèles de blocage récurrents pour éviter des problèmes plus graves.
Pourquoi vois-je l'ID d'événement 22 pour des applications qui semblent fonctionner normalement ?+
Les applications peuvent sembler fonctionnelles tout en déclenchant l'ID d'événement 22 car la détection de blocage fonctionne au niveau de la boucle de messages Windows, qui est distincte de la fonctionnalité principale de l'application. Une application peut continuer à traiter des données ou des requêtes réseau tout en ne répondant pas aux messages de l'interface utilisateur, créant ainsi une condition de blocage. Cela se produit couramment lorsque les applications effectuent des opérations de blocage sur le thread principal, utilisent des mises à jour inefficaces de l'interface utilisateur ou ont une gestion des messages mal conçue. L'application peut reprendre son fonctionnement normal après le délai d'attente du blocage, rendant le problème moins visible pour les utilisateurs mais toujours détectable par la surveillance de Windows.
Comment puis-je corréler l'ID d'événement 22 avec d'autres événements système pour identifier les causes profondes ?+
Corrélez l'ID d'événement 22 avec d'autres événements en examinant les horodatages et en recherchant des événements système connexes. Vérifiez l'ID d'événement 1000 (Erreur d'application) ou l'ID d'événement 1001 (Rapport d'erreurs Windows) se produisant à peu près au même moment, ce qui pourrait indiquer des plantages d'application après des blocages. Recherchez l'ID d'événement 2004 (Épuisement des ressources) ou des événements de compteur de performance indiquant une pression sur la mémoire ou le CPU. Examinez l'ID d'événement 7034 (Gestionnaire de contrôle des services) pour les échecs de service qui pourraient affecter la stabilité de l'application. Utilisez PowerShell pour interroger plusieurs journaux d'événements simultanément et créer une analyse chronologique. Des outils comme Windows Performance Analyzer peuvent aider à corréler les métriques de performance système avec les événements de blocage pour une analyse approfondie des causes profondes.
Documentation

Références (2)

Emanuel DE ALMEIDA
Écrit par

Emanuel DE ALMEIDA

Senior IT Journalist & Cloud Architect

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Événements Windows associés

Windows system administrator analyzing application crash data and Event ID 24580 in a professional IT environment
Event 24580
Application Error
Windows EventError

ID d'événement Windows 24580 – Erreur d'application : Échec critique de l'application

L'ID d'événement 24580 indique une défaillance critique de l'application ou une terminaison inattendue. Cette erreur se produit généralement lorsque les applications plantent en raison de violations de mémoire, de fichiers corrompus ou d'épuisement des ressources système.

18 mars12 min
Windows Event Viewer displaying critical application error logs on a system administrator's monitoring setup
Event 16394
Application Error
Windows EventError

ID d'événement Windows 16394 – Erreur d'application : Crash critique de l'application avec violation d'accès mémoire

L'ID d'événement 16394 indique un crash critique de l'application causé par des violations d'accès à la mémoire ou des données d'application corrompues, nécessitant une enquête immédiate pour prévenir l'instabilité du système.

18 mars12 min
Windows Event Viewer displaying Event ID 1026 application crash logs on a system administrator's monitoring setup
Event 1026
Application Error
Windows EventError

ID d'événement Windows 1026 – Erreur d'application : Détection de plantage ou de blocage d'application

L'ID d'événement 1026 indique qu'une application s'est écrasée, suspendue ou a rencontré une erreur critique. Cet événement aide les administrateurs à suivre la stabilité des applications et à identifier les composants logiciels problématiques.

18 mars12 min
Windows Event Viewer displaying application crash logs and system diagnostics on multiple monitors
Event 1004
Application Error
Windows EventError

ID d'événement Windows 1004 – Erreur d'application : Détection de plantage ou de blocage de l'application

L'ID d'événement 1004 indique qu'une application s'est écrasée, suspendue ou a rencontré une erreur critique. Cet événement aide les administrateurs à suivre la stabilité des applications et à identifier les logiciels problématiques sur les systèmes Windows.

18 mars9 min

Discussion

Partagez vos réflexions et analyses

Vous devez être connecté pour commenter.

Chargement des commentaires...