Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Par défaut, les versions 64 bits de Windows Vista et ultérieures de Windows chargeront un pilote en mode noyau uniquement si le noyau peut vérifier la signature du pilote. Toutefois, ce comportement par défaut peut être désactivé pendant le développement précoce du pilote et pour les tests non automatisés. Les développeurs peuvent utiliser l’un des mécanismes suivants pour désactiver temporairement l’application, au chargement, d’une signature de pilote valide. Toutefois, pour automatiser entièrement le test d’un pilote installé par Plug-and-Play (PnP), le fichier catalogue du pilote doit être signé. La signature du pilote est nécessaire, car Windows Vista et les versions ultérieures de Windows affichent une boîte de dialogue de signature de pilote pour les pilotes non signés qui nécessitent un administrateur système pour autoriser l’installation du pilote, ce qui empêche potentiellement tout utilisateur sans les privilèges nécessaires d’installer le pilote et d’utiliser l’appareil. Ce comportement d’installation du pilote PnP ne peut pas être désactivé sur Windows Vista et les versions ultérieures de Windows.
Utiliser l’option de démarrage avancé F8
Windows Vista et les versions ultérieures de Windows prennent en charge l’option de démarrage avancée F8 — « Désactiver le contrôle obligatoire des signatures de pilotes » — qui désactive l’application de la signature au moment du chargement pour un pilote en mode noyau, uniquement pour la session système en cours. Ce paramètre n’est pas conservé après les redémarrages du système.
Attacher un débogueur de noyau pour désactiver la vérification de signature
L’attachement d’un débogueur de noyau actif à un ordinateur de développement ou de test désactive l’application de la signature au moment de la charge pour les pilotes en mode noyau. Pour utiliser cette configuration de débogage, attachez un ordinateur de débogage à un ordinateur de développement ou de test et activez le débogage du noyau sur l’ordinateur de développement ou de test en exécutant la commande suivante :
bcdedit -debug on
Pour utiliser BCDEdit, l’utilisateur doit être membre du groupe Administrateurs sur le système et exécuter la commande à partir d’une invite de commandes avec élévation de privilèges. Pour ouvrir une fenêtre d’invite de commandes avec élévation de privilèges, créez un raccourci de bureau pour Cmd.exe, sélectionnez et maintenez enfoncé (ou cliquez avec le bouton droit) le raccourci, puis sélectionnez Exécuter en tant qu’administrateur.
Appliquer la vérification de la signature en mode noyau en mode de débogage du noyau
Toutefois, il existe des situations dans lesquelles un développeur peut avoir besoin d’un débogueur du noyau connecté, mais doit également conserver l’application des signatures au chargement. Par exemple, lorsqu’une pile de pilotes comporte un pilote non signé (tel qu’un pilote de filtre) qui ne se charge pas, cela peut invalider toute la pile. Étant donné que l’attachement d’un débogueur permet au pilote non signé de se charger, le problème semble disparaître dès que le débogueur est attaché. Le débogage de ce type de problème peut être difficile.
Pour faciliter le débogage de ces problèmes, la stratégie de signature de code en mode noyau prend en charge la valeur de Registre suivante :
HKLM\SYSTEM\CurrentControlSet\Control\CI\DebugFlags
Cette valeur de Registre est de type REG_DWORD et peut se voir attribuer une valeur en fonction d’un OU binaire d’un ou de plusieurs des indicateurs suivants :
0x00000001
Cette valeur d’indicateur configure le noyau pour qu’il s'arrête dans le débogueur si un pilote n’est pas signé. Le développeur ou le testeur peut ensuite choisir de charger le pilote non signé en entrant g à l’invite du débogueur.
0x00000010
Cette valeur d’indicateur configure le noyau pour ignorer la présence du débogueur et à toujours empêcher le chargement d’un pilote non signé.
Si cette valeur de Registre n’existe pas dans le Registre ou a une valeur qui n’est pas basée sur les indicateurs décrits précédemment, le noyau charge toujours un pilote en mode débogage du noyau, qu’il soit signé ou non.
Remarque Cette valeur de Registre n’existe pas dans le Registre par défaut. Vous devez créer la valeur pour déboguer la vérification de signature en mode noyau.