DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 837643 - Dernière mise à jour: samedi 29 mai 2004 - Version: 1.0

 

Résumé

Cet article explique comment déterminer si le système exécute en mode sans échec à partir d'un pilote de périphérique.

Plus d'informations

Le noyau du système d'exploitation Windows exporte un pointeur vers une variable ULONG qui est nommée InitSafeBootMode . Cette variable contient les paramètres de mode sans échec.

Un pilote de périphérique peut déterminer si le système exécute en mode sans échec par la valeur de la variable InitSafeBootMode . La valeur 0 signifie que le système ne fonctionne pas en mode sans échec.

Le tableau suivant répertorie les modes pour les autres valeurs.
Réduire ce tableauAgrandir ce tableau
valeur mode
1 SAFEBOOT_MINIMAL
2 SAFEBOOT_NETWORK
3 * SAFEBOOT_DSREPAIR
* Remarque La valeur de 3 s'applique aux contrôleurs de domaine Windows uniquement.

Vous devez déclarer suivantes de votre pilote.
extern PULONG InitSafeBootMode; 
Vous devez vérifier la valeur de InitSafeBootMode pour déterminer si le système est en cours d'exécution en mode sans échec.
if (*InitSafeBootMode > 0){ 

     // The system is in Safe Mode. 
     // Take appropriate action. 
     //     
} 
Par exemple, pour empêcher un pilote de travailler dans le mode sans échec, appliquez l'une des méthodes suivantes :
  • pilotes de fonction

    Si votre pilote de fonction comporte type service début de SERVICE_BOOT_START, vérifier la valeur de la variable InitSafeBootMode de la routine AddDevice et renvoyer Échec.

    note Vous devez jamais renvoyer Échec de la routine DriverEntry .
  • pilotes de filtre

    Si votre pilote de filtre commence au moment du démarrage, vérifiez la valeur de la variable InitSafeBootMode de la routine AddDevice . N'attachez pas à la pile de périphériques. Renvoyer la réussite de la routine AddDevice .
  • d'autres pilotes

    Pour les pilotes qui ne sont pas mentionnés précédemment, vérifiez la valeur de la variable InitSafeBootMode de la routine DriverEntry . Renvoyer Échec si le système est en mode sans échec.

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows Server 2003 Driver Development Kit (DDK)
  • Microsoft Windows XP Driver Development Kit
  • Microsoft Win32 Device Driver Kit for Windows 2000
Mots-clés : 
kbmt kbinfo kbdev kbhardware kbdriver kbddk kbwdm KB837643 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 837643  (http://support.microsoft.com/kb/837643/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store