Définition des indicateurs d’objet d’appareil pour la gestion de l’alimentation

Dans sa routine AddDevice , chaque pilote crée un objet de périphérique (objet de périphérique de filtre), un objet de périphérique fonctionnel (FDO) ou un objet de périphérique physique (PDO) et définit les indicateurs DO_XXX dans l’objet de périphérique pour décrire les attributs de périphérique et la configuration du pilote. Les indicateurs d’objet d’appareil suivants concernent la gestion de l’alimentation.

Indicateur Description
DO_POWER_INRUSH Indique que le courant dessiné par l’appareil se déclenche lorsque l’appareil est allumé pour la première fois. Cette surtension ou « inrush » dure une courte période, après quoi le courant tiré par l’appareil tombe à un niveau de fonctionnement inférieur.
DO_POWER_PAGABLE Indique que le pilote est paginable. À compter de Windows 2000, les pilotes qui peuvent être paginés doivent définir l’indicateur DO_POWER_PAGABLE. Le gestionnaire d’alimentation appelle ces pilotes à IRQL = PASSIVE_LEVEL. Pour plus d’informations sur les pilotes paginables, consultez Rendre les pilotes paginables.

Les indicateurs d’objet de périphérique sont généralement définis par le pilote de bus lorsqu’il crée l’AOP pour l’appareil. Toutefois, certains pilotes de fonction peuvent avoir besoin de modifier les valeurs de ces indicateurs dans le cadre de leurs routines AddDevice . À compter de Windows Vista, le système d’exploitation ne nécessite pas que tous les objets d’appareil au sein d’une pile d’appareils aient les mêmes indicateurs liés à l’alimentation. Toutefois, dans Windows Server 2003, Windows XP et Windows 2000, tous les objets d’appareil d’une pile d’appareils doivent avoir les mêmes indicateurs liés à l’alimentation.

À compter de Windows 2000, les pilotes des périphériques qui se trouvent dans le chemin d’accès de pagination ne doivent pas définir l’indicateur DO_POWER_PAGABLE. Un pilote se trouve dans le « chemin de pagination » s’il participe à des opérations d’E/S sur le fichier de pagination. Les pilotes qui ne définissent pas cet indicateur doivent être appelants dans IRQL = DISPATCH_LEVEL. Pour plus d’informations, consultez Contraintes sur les routines de répartition.

En général, les conducteurs ne doivent pas modifier la valeur du pilote de bus pour l’indicateur DO_POWER_PAGABLE, et un pilote ne doit jamais définir cet indicateur si un pilote de niveau inférieur l’a effacé. Lors de la gestion des transitions impliquant des demandes de pagination PnP (généralement en réponse à une IRP_MJ_PNP avec IRP_MN_DEVICE_USAGE_NOTIFICATION demande), un pilote de stockage doit séquencer soigneusement son paramètre et l’effacement de l’indicateur.

Les pilotes pour les appareils qui nécessitent une mise sous tension au démarrage doivent définir l’indicateur de DO_POWER_INRUSH dans l’objet de périphérique avant d’effacer l’indicateur DO_DEVICE_INITIALIZING. Un seul pilote dans la pile de périphériques, généralement le pilote de bus (PDO), doit définir l’indicateur DO_POWER_INRUSH pour l’appareil. L’indicateur avertit le gestionnaire d’alimentation que ces appareils doivent être mis sous tension un par un, en séquence avec d’autres appareils de ce type, pour éviter de surcharger l’alimentation. Le gestionnaire d’alimentation garantit qu’une seule IRP d’inrush d’alimentation est active n’importe où dans le système à un moment donné.

À compter de Windows Vista, les pilotes peuvent définir l’indicateur DO_POWER_PAGABLE et l’indicateur DO_POWER_INRUSH. Dans Windows Server 2003, Windows XP et Windows 2000, les pilotes ne peuvent pas définir à la fois l’indicateur DO_POWER_PAGABLE et l’indicateur DO_POWER_INRUSH.