DPC_WATCHDOG_VIOLATION (0x00000133) sur Windows Server 2022 Hyper‑V : diagnostic, correctifs et prévention

Écran bleu DPC_WATCHDOG_VIOLATION (0x00000133) sur Windows Server 2022 Hyper‑V : ce guide pas‑à‑pas vous aide à diagnostiquer, corriger et prévenir ces redémarrages, en s’appuyant sur l’analyse de dumps, la mise à jour des pilotes/firmwares et la mesure des latences DPC/ISR.

Sommaire

Vue d’ensemble du problème

Sur Windows Server 2022 Standard jouant le rôle d’hôte Hyper‑V, l’écran bleu 0x00000133 – DPC_WATCHDOG_VIOLATION indique que le « watchdog » du noyau a détecté soit :

  • un Deferred Procedure Call (DPC) dont l’exécution a dépassé les seuils de sécurité,
  • ou une présence prolongée du système à un niveau d’interruption élevé (≥ DISPATCH_LEVEL), empêchant d’autres tâches critiques de s’exécuter.

En environnement serveur, la cause la plus fréquente est un pilote (stockage, réseau, HBA/RAID, parfois GPU) qui monopolise le CPU à IRQL élevé, suivi par un firmware ou un BIOS/UEFI obsolète. Lorsque le matériel a été testé sans anomalie, la priorité est donc de traiter la chaîne logiciel‑pilotes‑firmwares.

Symptômes observables

  • Redémarrages inopinés de l’hôte Hyper‑V, parfois sous charge I/O importante (sauvegardes, migration à chaud, opérations sur des VHDX, reconstruction RAID).
  • Événements système corrélés : Kernel‑Power 41 (arrêt inattendu) et BugCheck 1001 (détails du stop code), ainsi que storport 129/153 côté stockage (timeouts, réinitialisations d’un port ou d’un disque logique).
  • Pics de latence DPC/ISR visibles avec des outils de traçage (WPR/xperf) ou de monitoring (LatencyMon).
  • Sur l’hyperviseur, ralentissements transitoires dans les VM, pertes de paquets, Timeouts RDP ou iSCSI avant le crash.

Solutions, pistes de diagnostic et bonnes pratiques

ÉtapePourquoi ?Comment faire ?
1. Récupérer et analyser les minidumpsIdentifier le pilote ou le module fautif.Activez la création de minidumps (.dmp), puis ouvrez‑les avec WinDbg (!analyze -v).
2. Mettre à jour les pilotes critiquesLes pilotes de stockage, de contrôleur RAID/HBA, réseau et GPU (même sur un serveur) sont les plus souvent en cause.Téléchargez des versions certifiées WHQL et récentes, de préférence publiées après la sortie de Windows Server 2022.
3. Vérifier le firmware et le BIOS/UEFIUn microcode obsolète peut provoquer des délais anormaux dans les DPC.Installez le dernier BIOS/UEFI et le firmware des SSD/NVMe/RAID/HBA.
4. Contrôler les paramètres de stockageLes mauvais pilotes AHCI/StorAHCI/NVMe déclenchent fréquemment ce stop code.Désactivez les pilotes génériques au profit de ceux du fabricant ; exécutez chkdsk /scan et sfc /scannow.
5. Actualiser Hyper‑V et les composants d’intégrationDes versions non alignées hôte/VM accroissent la latence IRQ.Appliquez les CU Windows Server 2022 et redémarrez l’hôte et l’ensemble des VM.
6. Surveiller les temps d’exécution des DPC/ISRConfirme visuellement les pics de latence.Utilisez LatencyMon ou xperf -on latency pour localiser le pilote responsable.
7. Désactiver temporairement le matériel non indispensableIsole progressivement la source.Retirez les cartes d’extension non critiques, suspendez les services/agents tiers, vérifiez si les plantages cessent.
8. Vérifier l’espace libre et la santé du volume C:Un disque saturé ou défaillant allonge le traitement DPC.Maintenez ≥ 10 % d’espace libre ; surveillez les compteurs SMART et remplacez le disque en cas d’erreurs.

Mise en œuvre détaillée (pas‑à‑pas)

Activer et collecter des minidumps

Vérifiez que la pagination n’est pas désactivée et configurez l’écriture des minidumps (256 Ko) pour capturer le prochain crash :

SystemPropertiesAdvanced.exe
> Démarrage et récupération > Paramètres
> Écriture des informations de débogage : Petit vidage mémoire (256 Ko)
> Répertoire : %SystemRoot%\Minidump

Automatisez en PowerShell :

# Activer minidumps et définir le dossier
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl" -Force | Out-Null
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' CrashDumpEnabled 3
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' MinidumpDir '%SystemRoot%\Minidump'
# S'assurer que le fichier d'échange existe
wmic pagefile list /format:list

Après redémarrage sur BSOD, ouvrez le .dmp dans WinDbg :

!analyze -v
lmv m <nom_du_pilote_suspect>
!thread
!irql

Interprétation rapide : si !analyze -v mentionne un module tiers (ex. stornvme.sys couplé à un pilote NVMe du fabricant, ixn52x64.sys pour une carte réseau, hpcisss2.sys pour un HBA, fltmgr.sys avec un filtre de sauvegarde), traitez en priorité ce composant.

Mettre à jour les pilotes critiques (stockage, HBA/RAID, réseau, GPU)

Inventoriez les versions actuellement chargées :

# Liste des pilotes PnP signés, triés par date
Get-CimInstance Win32_PnPSignedDriver |
  Select-Object DeviceName, DriverVersion, DriverDate, Manufacturer |
  Sort-Object DriverDate -Descending | Format-Table -Auto

# Pilotes réseau et infos RSS/SR-IOV

Get-NetAdapter | Format-Table Name, InterfaceDescription, DriverVersion, DriverInformation

# Pilotes de stockage (storport/miniport)

Get-WmiObject -Class Win32_SCSIController | Select Name, Manufacturer 

Bonnes pratiques :

  • Privilégiez des pilotes WHQL fournis par l’OEM du serveur (HPE, Dell, Lenovo…) ou par l’éditeur de la carte (Broadcom, Intel, Marvell…).
  • Mettre à jour les filtres liés aux antivirus/EDR, sauvegardes, chiffrement (les pilotes *.sys de type fltmgr peuvent retenir des IRP trop longtemps en I/O intense).
  • Sur hôtes RDS/RemoteApp avec GPU, installez un pilote stable (Studio/LTSB si disponible) même si l’accélération n’est pas cœur de métier.

Mettre à jour UEFI/BIOS et firmwares

  • Appliquez les mises à jour BIOS/UEFI, microcodes CPU (via BIOS) et firmwares de contrôleurs RAID/HBA, SSD/NVMe et cartes réseau.
  • Après mise à jour, réinitialisez l’alimentation (mise hors tension complète) pour garantir le rechargement des microcodes.
  • Évitez, à titre permanent, les ajustements agressifs d’économie d’énergie (ex. C‑States profonds) sur un hyperviseur ; si vous testez, documentez et revenez à des profils Performances élevées en production.

Paramétrage et santé du stockage

Alignez les pilotes et validez l’intégrité du volume système :

# Vérifier et réparer les fichiers système
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

# Vérifier les volumes (mode online)

chkdsk C: /scan

# Espace disque et fiabilité

fsutil volume diskfree C:
Get-Volume | Format-Table DriveLetter, FileSystemLabel, AllocationUnitSize, SizeRemaining
Get-PhysicalDisk | Get-StorageReliabilityCounter | `
Select-Object FriendlyName, Wear, ReadErrorsTotal, WriteErrorsTotal, Temperature 

Recommandations de pilotes :

  • Préférez le miniport du fabricant pour RAID/HBA (au lieu du générique) quand l’OEM le recommande pour votre plate‑forme.
  • Pour NVMe : validez la combinaison stornvme.sys (Microsoft) vs pilote NVMe OEM selon le firmware du SSD ; n’utilisez jamais un pilote « hérité » non supporté.

Hyper‑V : hôte, VM et composants d’intégration

Alignez versions et correctifs pour réduire la latence IRQ et les pics DPC :

# Niveau de configuration des VM
Get-VM | Select-Object Name, Version

# Services d'intégration par VM (Windows & Linux)

Get-VM | Get-VMIntegrationService | `
Select-Object VMName, Name, Enabled, PrimaryStatusDescription | Format-Table -Auto

# Migrations à chaud et trafic storage

Get-VMHost | fl *Storage* 
  • Appliquez les mises à jour cumulatives de Windows Server 2022 sur l’hôte et les VM.
  • Redémarrez toutes les VM après mise à jour de l’hôte pour recharger les services d’intégration.
  • Pensez à Update-VMVersion (sur les VM compatibles) pour profiter des optimisations récentes de l’hyperviseur.

Mesurer les latences DPC/ISR

Deux approches complémentaires :

  1. Windows Performance Recorder/Analyzer (WPR/WPA) – très précis et natif.
  2. LatencyMon – lecture rapide et orientée pilotes.

Traçage WPR/xperf :

# Capturer une trace centrée latence DPC/ISR (xperf)
xperf -on latency -stackwalk profile
REM Reproduisez la charge pendant ~2-5 minutes
xperf -d C:\Temp\DPC-ISR.etl

Ouvrez le fichier ETL dans WPA et inspectez : « CPU Usage (Precise) », « DPC/ISR », « Call Stacks ». Le pilote qui concentre le temps en DPC (ou ISR) pendant le pic est le principal suspect.

Désactivation progressive pour isoler

  • Désactivez temporairement les cartes d’extension non critiques (2ᵉ NIC, carte HBA secondaire, capture, etc.).
  • Arrêtez les services d’agents tiers (sauvegarde, supervision, EDR) un à un pour tester l’impact.
  • Si possible, testez sans SR‑IOV/vRSS, puis réactivez prudemment en cas d’innocence.

Espace libre et santé du volume C:

Gardez ≥ 10 % de libre pour les MAJ et les dumps. Surveillez :

  • Les compteurs SMART (usure, erreurs de lecture/écriture, température).
  • Les événements Disk/Storport 129/153 (réinitialisations/temps d’attente).

Check‑list « runbook » d’une heure

FenêtreActionsObjectif
0–15 minCollecte : minidumps, MSInfo32, dxdiag, Get-CimInstance Win32_PnPSignedDriver, journaux SystèmePoser les bases d’analyse
15–30 minVérif. stockage (chkdsk /scan, SMART), espace libre, mises à jour en attenteÉcarter corruption et saturation
30–50 minTrace WPR/xperf sous charge ; désactivation ciblée (NIC/HBA secondaires, filtres)Identifier le pilote fautif
50–60 minMise à jour pilote/firmware ciblée, redémarrage contrôlé, validationCorriger et stabiliser

Scénarios typiques et correctifs rapides

Timeouts de stockage sous charge

Symptômes : événements 129/153, pics DPC sur storport.sys ou miniport RAID/NVMe, BSOD 0x133 lors de sauvegardes.

Correctifs : mettre à jour miniport RAID/NVMe, firmware SSD/contrôleur, vérifier câblage/backplane, basculer en plan d’alimentation « Performances élevées », désactiver temporairement la mise en veille des disques.

Pilote réseau provoquant des DPC longs

Symptômes : latence DPC dans ndis.sys relayée par un pilote NIC tiers, pertes de paquets, VM qui « gèlent ».

Correctifs : pilote NIC à jour (WHQL), firmware NIC, test sans SR‑IOV/vRSS/VMQ, ajustement coalescence d’interruptions au profil recommandé par l’OEM serveur.

Filtres tiers (sauvegarde, EDR, chiffrement)

Symptômes : pile fltmgr.sys en tête du temps DPC, BSOD lors des snapshots VSS ou de la déduplication.

Correctifs : mettez à jour l’agent, excluez les répertoires VM/VHDX selon les recommandations éditeur, validez la compatibilité build de l’OS.

GPU ou pilote vidéo côté hôte RDS

Symptômes : DPC longs déclenchés par le pilote vidéo lors de pics graphiques (accélération RDP, WPF, rendu 3D).

Correctifs : canal stable (LTSB/Studio), désactiver temporairement l’accélération matérielle pour valider, revoir l’allocation GPU aux VM (si GPU partagé).

Script d’aide au diagnostic (PowerShell)

Le script ci‑dessous collecte l’essentiel (versions de pilotes critiques, événements pertinents, espace disque, fiabilité stockage) et prépare un paquet de support dans C:\Temp\Support-DPC.

$out = "C:\Temp\Support-DPC"; New-Item -ItemType Directory -Path $out -Force | Out-Null

# 1) Pilotes critiques (stockage, réseau, filtres)

Get-CimInstance Win32_PnPSignedDriver |
Where-Object { $_.DeviceName -match "RAID|SAS|NVMe|Storage|Ethernet|Network|Display|HDX|Audio|Filter" } |
Select DeviceName, DriverVersion, DriverDate, Manufacturer, InfName |
Sort-Object DriverDate -Descending |
Export-Csv "$out\drivers.csv" -NoTypeInformation -Encoding UTF8

# 2) Espace disque et volumes

Get-Volume | Select DriveLetter, FileSystem, SizeRemaining, Size |
Export-Csv "$out\volumes.csv" -NoTypeInformation -Encoding UTF8
Get-PhysicalDisk | Get-StorageReliabilityCounter |
Select FriendlyName, Wear, ReadErrorsTotal, WriteErrorsTotal, Temperature |
Export-Csv "$out\storage_reliability.csv" -NoTypeInformation -Encoding UTF8

# 3) Événements clés (24 h)

$since = (Get-Date).AddDays(-1)
Get-WinEvent -FilterHashtable @{LogName='System'; StartTime=$since; Id=@(41,1001,129,153)} |
Select TimeCreated, Id, ProviderName, LevelDisplayName, Message |
Export-Csv "$out\events_system.csv" -NoTypeInformation -Encoding UTF8

# 4) Infos Hyper-V

if (Get-WindowsFeature Hyper-V -ErrorAction SilentlyContinue) {
Get-VM | Select Name, State, Version | Export-Csv "$out\vms.csv" -NoTypeInformation -Encoding UTF8
Get-VM | Get-VMIntegrationService |
Select VMName, Name, Enabled, PrimaryStatusDescription |
Export-Csv "$out\vm_integration.csv" -NoTypeInformation -Encoding UTF8
}

Compress-Archive -Path "$out*" -DestinationPath "$out.zip" -Force
Write-Host "Paquet collecté : $out.zip" 

Conseils de prévention

  • Politique pilotes/firmwares : définissez un cycle de mise à jour trimestriel aligné sur l’OEM du serveur. Conservez un rollback documenté.
  • Baseline performance : enregistrez une trace WPR « saine » après chaque changement majeur pour faciliter les comparaisons.
  • Surveillance : ajoutez aux tableaux de bord les compteurs DPC/ISR (Processor Information\% DPC Time, % Interrupt Time) et le suivi des événements 129/153/41/1001.
  • Capacité stockage : gardez ≥ 20 % de marge sur les volumes hébergeant des VHDX et temp/swap.
  • Conception Hyper‑V : isolez trafic stockage et live‑migration, évitez la sur‑abonnement des files RSS/VMQ, testez SR‑IOV avant production.

FAQ & points d’attention

« WinDbg pointe ntoskrnl.exe. Est‑ce la cause ? »
Généralement non. Le noyau apparaît car il orchestre les interruptions. Cherchez le module tiers dans la pile d’appels, les symboles de fonction et les drivers fortement actifs en DPC.

« Puis‑je augmenter le délai du watchdog ? »
Non recommandé. Le watchdog protège l’intégrité du système ; augmenter ses seuils masque le problème et peut aggraver la corruption I/O.

« Le matériel est‑il en cause ? »
Possible mais moins fréquent si les diagnostics OEM sont OK. Commencez par les correctifs pilotes/firmwares ; remplacez les composants qui remontent des erreurs SMART/fiabilité.

Compléments utiles

  • Journaux : vérifiez Observateur d’événements ▸ Journaux Windows ▸ Système pour 129/153 (stockage), 41 (Kernel‑Power) et 1001 (BugCheck). Les textes des messages contiennent souvent le port ou le périphérique concerné.
  • Pilotes signés : évitez les pilotes « NTAMD64 Non‑WHQL ». Préférez des packages certifiés adaptés à Windows Server 2022.
  • Collecte automatique : si vous manquez d’un environnement de pré‑production, laissez la collecte de dumps activée pour capturer le prochain incident.
  • Escalade support : si l’analyse n’isole qu’ntoskrnl.exe, fournisseur ou éditeur peuvent demander des symboles privés et une trace WPR reproduisant le pic.

Résumé opérationnel

  1. Analyser les dumps pour identifier le pilote fautif (ou la pile impliquée).
  2. Mettre à jour/remplacer le pilote/firmware concerné et valider côté stockage/réseau.
  3. Installer les dernières mises à jour Windows Server 2022 (hôte et VM), puis redémarrer.
  4. Valider par monitoring (WPR/LatencyMon/PerfMon/Observateur d’événements) l’absence de pics DPC/ISR et d’événements 129/153/41/1001.

Cette démarche priorise les causes logicielles les plus probables (pilotes, filtres, firmwares). Une fois stabilisé, formalisez un plan de maintenance (pilotes/firmwares/Windows Update), gardez des baselines de performance et contrôlez régulièrement l’état du stockage et des files DPC/ISR. Vous réduirez significativement le risque de récurrence du DPC_WATCHDOG_VIOLATION sur vos hôtes Hyper‑V.

Sommaire