Démarrage d’un appareil

Le gestionnaire PnP envoie une demande de IRP_MN_START_DEVICE aux pilotes pour démarrer un appareil nouvellement énuméré ou pour redémarrer un appareil existant qui a été arrêté pour le rééquilibrage des ressources.

Les pilotes de fonction et de filtre doivent définir une routine IoCompletion , passer le IRP_MN_START_DEVICE demander dans la pile des appareils et reporter leurs opérations de démarrage jusqu’à ce que tous les pilotes inférieurs aient terminé l’IRP. Le pilote de bus parent, le pilote inférieur de la pile de périphériques, doit être le premier pilote à effectuer ses opérations de démarrage sur un appareil avant que d’autres pilotes n’accèdent à l’appareil.

Pour garantir un séquencement correct des opérations de démarrage, le gestionnaire PnP sur Windows 2000 et les versions ultérieures de Windows reporte l’exposition des interfaces d’appareil et bloque la création de demandes pour l’appareil jusqu’à ce que l’IRP de démarrage réussisse.

Si un pilote d’un appareil échoue à la demande de IRP_MN_START_DEVICE , le gestionnaire PnP envoie une demande de IRP_MN_REMOVE_DEVICE à la pile de périphériques (sur Windows 2000 et versions ultérieures de Windows). En réponse à cette IRP, les pilotes de l’appareil annulent leurs opérations de démarrage (s’ils ont réussi l’IRP de démarrage), annulent leurs opérations AddDevice et se détachent de la pile de périphériques. Le gestionnaire PnP marque un tel appareil « échec du démarrage ».

Cette section couvre les sujets suivants :

Démarrage d’un appareil dans un pilote de fonction

Démarrage d’un appareil dans un pilote de filtre

Démarrage d’un périphérique dans un pilote de bus

Instructions de conception pour le démarrage d’appareils