Exigences de routine standard pour les pilotes
Gardez à l’esprit les points suivants lors de la conception d’un pilote en mode noyau :
Chaque pilote doit avoir une routine DriverEntry , qui initialise les structures de données et les ressources à l’échelle du pilote. Le gestionnaire d’E/S appelle la routine DriverEntry lorsqu’il charge le pilote.
Chaque pilote doit avoir au moins une routine de distribution qui reçoit et traite les paquets de demandes d’E/S (IRPs). Chaque pilote doit placer le point d’entrée d’une routine de répartition dans sa structure DRIVER_OBJECT , pour chaque code de fonction principale IRP que le pilote peut recevoir. Un pilote peut avoir une routine de répartition distincte pour chaque code de fonction principale IRP, ou il peut avoir une ou plusieurs routines de répartition qui gèrent plusieurs codes de fonction.
Chaque pilote WDM doit avoir une routine de déchargement . Le pilote doit placer le point d’entrée de la routine de déchargement dans l’objet pilote du pilote du pilote. Les responsabilités de la routine de déchargement d’un pilote PnP sont minimes, mais la routine de déchargement d’un pilote non PnP est responsable de la libération des ressources système que le pilote utilise.
Chaque pilote WDM doit avoir une routine AddDevice et définir son point d’entrée dans l’extension du pilote de l’objet pilote. Une routine AddDevice est chargée de créer et d’initialiser des objets d’appareil pour chaque périphérique PnP que le pilote contrôle.
Un pilote peut avoir une routine StartIo , que le gestionnaire d’E/S appelle pour démarrer les opérations d’E/S pour les IRP que le pilote a mis en file d’attente dans une file d’attente IRP fournie par le système. Tout pilote qui n’a pas de routine StartIo doit soit configurer et gérer les files d’attente internes pour les IRP qu’il reçoit, soit effectuer chaque IRP dans ses routines de distribution. Les pilotes de niveau supérieur peuvent ne pas avoir de routine StartIo , s’ils passent simplement des IIP aux pilotes de niveau inférieur directement à partir de leurs routines de distribution.
Certains pilotes miniport sont des exceptions aux exigences précédentes. Pour plus d’informations sur la configuration requise pour les pilotes miniport, consultez la documentation spécifique au type d’appareil du Kit de pilotes Windows (WDK).
Le fait qu’un pilote ait un autre type de routine standard dépend de ses fonctionnalités et de la façon dont ce pilote s’intègre dans le système (par exemple, s’il interagit avec les pilotes fournis par le système). Pour plus d’informations, consultez la documentation spécifique au type d’appareil dans le WDK.