Partager via


Présentation de la notification du pilote

À compter de Windows Server 2008, le système d’exploitation peut notifier un pilote de périphérique lorsqu’un processeur ou un module mémoire est ajouté dynamiquement à une partition matérielle. Plusieurs notifications différentes se produisent à différentes étapes du processus d’une opération d’ajout à chaud. Chacune de ces notifications utilise une méthode de notification différente pour informer le pilote de périphérique de l’événement. Vous pouvez utiliser une ou plusieurs de ces méthodes de notification pour que le système d’exploitation notifie votre pilote lorsqu’une opération d’ajout à chaud se produit. Votre pilote peut ensuite répondre en fonction des besoins pour un fonctionnement sûr et optimal.

Le tableau suivant identifie les différentes méthodes de notification et indique si elles s’appliquent aux processeurs, à la mémoire ou aux processeurs et à la mémoire.

Méthode de notification Pour les processeurs Pour la mémoire

Notification de pilote synchrone

X

Notification de pilote asynchrone

X

X

Événement de notification mémoire

X

Rééquilibrage des ressources

X

Notification de pilote synchrone

Avec la notification du pilote synchrone, le système d’exploitation avertit de façon synchrone les pilotes de périphérique qu’un nouveau processeur a été ajouté à la partition matérielle. Il s’agit de la première notification qu’un pilote de périphérique reçoit à propos d’une modification du nombre de processeurs.

Lorsqu’un nouveau processeur est ajouté à la partition matérielle, le système d’exploitation envoie cette notification aux pilotes de périphérique une fois que le système d’exploitation a démarré le nouveau processeur, mais avant que le système d’exploitation commence à planifier les threads sur le processeur. Lorsqu’un pilote de périphérique reçoit cette notification, il peut allouer des structures de données par processeur et affecter d’autres ressources par processeur au nouveau processeur. Cela prépare le pilote de périphérique à exécuter ses routines de répartition, ses routines de service d’interruption (ISR), ses appels de procédure différée (DPC) et tout autre thread de pilote sur le nouveau processeur.

Un pilote de périphérique doit s’inscrire auprès du système d’exploitation pour recevoir une notification de pilote synchrone. Pour plus d’informations, consultez Inscription pour la notification de pilote synchrone.

Cette méthode de notification s’applique uniquement aux processeurs. Il n’existe aucun mécanisme de notification synchrone pour la mémoire.

Notification de pilote asynchrone

Avec la notification asynchrone du pilote, le système d’exploitation avertit de façon asynchrone les pilotes de périphérique qu’un nouveau processeur ou module de mémoire a été ajouté à la partition matérielle. À compter de Windows Server 2008, les processeurs et les modules de mémoire sont considérés comme des appareils Plug-and-Play (PnP). Par conséquent, le système d’exploitation utilise le mécanisme de notification PnP pour la notification de pilote asynchrone.

Lorsqu’un nouveau processeur ou module de mémoire est ajouté à la partition matérielle, le système d’exploitation envoie cette notification aux pilotes de périphérique une fois que le système d’exploitation a démarré le nouveau processeur ou le nouveau périphérique de mémoire. Dans le cas d’un nouveau processeur, le système d’exploitation n’envoie cette notification aux pilotes de périphérique qu’après avoir démarré la planification des threads sur le nouveau processeur.

Notes

Toutes les notifications PnP sont asynchrones. Par conséquent, ces notifications peuvent ne pas être reçues par un pilote de périphérique avant que le système d’exploitation ait démarré le processeur ou le module de mémoire.

Lorsqu’un pilote de périphérique reçoit cette notification, il peut ajuster tout ou partie des éléments suivants en conséquence :

  • Mémoire tampon et autres allocations de ressources

  • Affectation de ressources à des processeurs spécifiques

  • Planification des contrôleurs de base de données et d’autres threads sur des processeurs spécifiques

  • Algorithmes d’équilibrage de charge

Important

Lorsque vous ajoutez un nouveau processeur à une partition matérielle, le système d’exploitation n’envoie la notification PnP qu’après que le nouveau processeur a été démarré et que le système d’exploitation a commencé à planifier des threads sur celui-ci. Si un pilote de périphérique doit effectuer certaines tâches avant que le système d’exploitation commence à planifier des threads sur le nouveau processeur, comme l’allocation d’une structure de données par processeur, vous devez utiliser la méthode de notification synchrone pour le pilote.

Un pilote de périphérique doit s’inscrire auprès du système d’exploitation pour recevoir une notification de pilote asynchrone. Pour plus d’informations, consultez Inscription pour une notification de pilote asynchrone.

Événement de notification de mémoire

Avec la méthode d’événement de notification mémoire, votre pilote de périphérique peut planifier un thread qui attend que le système d’exploitation définisse l’objet d’événement \KernelObjects\HighMemoryCondition . Le système d’exploitation définit cet objet d’événement lorsque la quantité de mémoire physique disponible dépasse une certaine valeur. Cet événement avertit tous les threads en attente sur l’objet d’événement qu’une quantité importante de mémoire physique est actuellement disponible dans le système. Cet événement peut indiquer que vous avez ajouté dynamiquement un nouveau module de mémoire au système. Lorsque le système d’exploitation définit cet objet d’événement, votre pilote de périphérique peut répondre à l’événement en allouant des mémoires tampons supplémentaires.

Pour plus d’informations sur l’objet d’événement \KernelObjects\HighMemoryCondition , consultez Standard Event Objects.

Important

Si le système d’exploitation définit l’objet d’événement \KernelObjects\HighMemoryCondition , l’événement indique uniquement que vous avez peut-être ajouté dynamiquement un nouveau module de mémoire à la partition matérielle. Il existe d’autres situations qui peuvent amener le système d’exploitation à définir cet objet d’événement. Par conséquent, à compter de Windows Server 2008, nous ne recommandons pas que les pilotes de périphérique utilisent cette méthode de notification. Au lieu de cela, les pilotes de périphérique doivent utiliser la méthode de notification de pilote asynchrone.

Cette méthode s’applique uniquement à la mémoire. Il n’existe aucun mécanisme de notification correspondant pour les processeurs.

Rééquilibrage des ressources

À compter de Windows Server 2008, lorsque vous ajoutez un nouveau processeur à une partition matérielle, le système d’exploitation lance un rééquilibrage des ressources à l’échelle du système. Le fait qu’un appareil participe à un tel rééquilibrage des ressources est déterminé par la définition de la propriété DEVPKEY_Device_DHP_Rebalance_Policy’appareil pour l’appareil. Le comportement par défaut pour les appareils de la classe d’installation de l’appareil Carte réseau (Classe = Net) est qu’ils ne participent pas au rééquilibrage des ressources lorsqu’un nouveau processeur est ajouté dynamiquement au système. Le comportement par défaut pour les appareils de toutes les autres classes d’installation d’appareil est qu’ils participent au rééquilibrage des ressources lorsqu’un nouveau processeur est ajouté dynamiquement au système.

Si un appareil est un appareil Plug-and-Play (PnP) et qu’il participe à un tel rééquilibrage des ressources, le système d’exploitation envoie IRP_MN_QUERY_STOP_DEVICE, IRP_MN_STOP_DEVICE et IRP_MN_START_DEVICE IIP PnP au pilote de l’appareil pendant l’opération de rééquilibrage des ressources. Ces demandes PnP informent le pilote qu’une modification matérielle s’est produite dans la partition matérielle. Un pilote de périphérique doit prendre en charge le rééquilibrage des ressources en gérant correctement les requêtes PnP IRP_MN_QUERY_STOP_DEVICE et IRP_MN_STOP_DEVICE . Un pilote de périphérique ne doit jamais rejeter une requête PnP IRP_MN_QUERY_STOP_DEVICE .

Ces requêtes PnP permettent à un pilote de périphérique d’utiliser pleinement le nouvel ensemble de processeurs actifs dans la partition matérielle après avoir ajouté un nouveau processeur. Plus précisément, un pilote de périphérique qui prend en charge le rééquilibrage des ressources utilise les requêtes PnP qu’il reçoit pendant le rééquilibrage des ressources pour déconnecter ses routines de service d’interruption (ISR) et les reconnecter avec la valeur d’affinité processeur mise à jour. Cela permet au pilote de périphérique d’utiliser tous les processeurs actuellement actifs dans la partition matérielle, y compris les nouveaux processeurs, pour gérer les demandes d’interruption.

Les pilotes de périphérique doivent mettre en file d’attente toutes les demandes d’E/S pendant le rééquilibrage des ressources.

Pour plus d’informations sur le rééquilibrage des ressources, consultez Arrêt d’un appareil pour rééquilibrer les ressources.

Cette méthode s’applique uniquement aux processeurs. Le système d’exploitation ne lance pas de rééquilibrage des ressources à l’échelle du système lorsque vous ajoutez un nouveau module de mémoire à une partition matérielle.