Trucs & Astuces Windows

 

Tenter de résoudre un problême de pilote (W2000)

Avec Windows2000, est livré un exécutable qui permet de surveiller un pilote : verifier.exe
Que permet-il de faire ?
- Surveiller toutes les allocations mémoire demandées par un pilote.
- Détecter les problêmes intermittents d'un pilote sans affecter les autres.(DRIVER_IRQL..)
- Détecter les désallocations de mémoire ainsi que les mémoires non libérées.

Pour l'utiliser, il faut ajouter une entrée dans la base de registres.
- exécutez Regedt32.
- localisez ou créez la clef HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDrivers
le type est REG_SZ
- mettez comme valeur chaine le nom des pilotes à tester.
Par exemple :
Ntfs.sys
Win32k.sys ftdisk.sys
*.sys
Néanmoins, il est conseillé de ne mettre qu'un nom afin de bien isoler la source du problême.

- localisez ou créez la clef HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDriverLevel
le type est DWORD
Vous pouvez mettre comme valeur une seule ou une combinaison des valeurs suivantes ( champ de bits )

0x01: Tente de satisfaire toutes les allocations mémoire.
0x02: Surveille la mémoire pour valider l'utilisation IRQL en considérant la pagination du code et des données.
0x04: Fait échouer de façon aléatoire les demandes d'allocation. (au démarrage)
0x08: Active le suivi des demandes d'allocation. Chaque allocation doit être libérée avant que le pilotes soit déchargé.
0x10: Active la vérification I/O

Par défaut, la valeur est 3 si la clef n'existe pas.
Elle est de 0x1B si on utilise les préférences de Verifier.exe.
Conseil :
Pour traquer les pertes de mémoire (memory leakage), utiliser 0xB en cochant "preferred setting" et en décochant I/O verification

- redémarrez l'ordinateur

Les violations les plus courantes sont :
IRQL_NOT_LESS_OR_EQUAL 0xA
PAGE_FAULT_IN_NONPAGED_AREA 0x50
PAGE_FAULT_IN_NONPAGED_AREA 0x50
ATTEMPTED_WRITE_TO_READONLY_MEMORY 0xBE
SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION 0xC1
DRIVER_VERIFIER_DETECTED_VIOLATION 0xC4
DRIVER_CAUGHT_MODIFYING_FREED_POOL 0xC6
TIMER_OR_DPC_INVALID 0xC7
DRIVER_VERIFIER_IOMANAGER_VIOLATION 0xC9

Pour une vérification immédiate, on peut utiliser la ligne de commande dont la syntaxe est verifier.exe /flags valeur [/iolevel 2]
Paramêtres de valeur :
0 - Special pool checking
1 - Force IRQL checking
2 - Low resources simulation
3 - Pool tracking
4 - I/O verification
5 - Deadlock Detection
6 - Enhanced I/O verification
7 - DMA verification
Par exemple, entrer c:\ verifier /flags 3 /iolevel 2

verifier.exe /all vérifie tous les pilotes du système
verifier.exe /volatile /flags valeur change immédiatement la valeur
verifier.exe /reset efface tous les paramêtres de vérification
verifier /query Vide le statut du vérificateur dans la sortie courante
verifier.exe /log LOG_FILE_NAME [/interval seconds ]
écrit à intervalle régulier le statut du vérificateur dans un fichier

 

Retour Menu page 3

 


Page chargée en 0.001 sec.

Dernière Modification : Lun 20 Septembre 2021 12:37
Copyright © 1999-2021 Jean-Paul Molina Tous droits réservés.

 

vers Google