Partager via


Exigences de routine du pilote standard

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 et ressources de données à 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 demande d’E/S (IRP). Chaque pilote doit placer le point d’entrée d’une routine de distribution dans sa structure DRIVER_OBJECT , pour chaque code de fonction principal IRP que le pilote peut recevoir. Un pilote peut avoir une routine de répartition distincte pour chaque code de fonction principal 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 Unload. Le pilote doit placer le point d'entrée de la routine Décharger dans l'objet de pilote. Les responsabilités de la routine de déchargement d’un pilote PnP sont minimales, mais la routine de déchargement d’un pilote Non PnP est chargée de libérer toutes les 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 de périphérique 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 IRPs que le pilote a mises 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 configurer et gérer des files d’attente internes pour les irPs qu’il reçoit, ou il doit 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 irPs à des pilotes de niveau inférieur directement à partir de leurs routines de répartition.

  • Certains pilotes miniports sont des exceptions aux exigences précédentes. Consultez la documentation spécifique au type d’appareil dans le Kit de pilotes Windows (WDK) pour plus d’informations sur la configuration requise pour les pilotes miniports.

  • Si un pilote a 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 interopérait avec les pilotes fournis par le système). Pour plus d’informations, consultez la documentation spécifique du type d’appareil dans wdK.