Partager via


Écriture de routines SynchCritSection

Les pilotes utilisent leurs routines SynchCritSection à l’une des deux fins de base :

Programmation d’un appareil pour une opération d’E/S

Accès aux informations d’état partagé

Comme un ISR, une routine SynchCritSection doit s’exécuter aussi rapidement que possible, en faisant uniquement ce qui est nécessaire pour configurer les registres d’appareils ou mettre à jour les données de contexte, avant de retourner.

Étant donné que KeSynchronizeExecution contient le verrou de rotation d’interruption d’un pilote de périphérique pendant l’exécution de sa routine SynchCritSection , l’ISR du pilote ne peut pas s’exécuter tant que la routine SynchCritSection ne retourne pas le contrôle.

Pour tous les IRP reçus, un pilote de périphérique doit effectuer autant de traitement d’E/S que possible au niveau de l’IRQL PASSIVE_LEVEL dans ses routines de répartition (ou éventuellement des threads dédiés à l’appareil), ou à IRQL DISPATCH_LEVEL dans ses routines StartIo et DPC.

Pour plus d’informations sur la synchronisation des sections critiques, consultez Utilisation des verrous de rotation : exemple.