Partager via


Éléments de travail d’E/S NDIS

Les pilotes peuvent mettre en file d’attente les fonctions de rappel d’élément de travail d’E/S pour une exécution ultérieure. NDIS appelle la fonction de rappel spécifiée par le pilote à l’adresse IRQL = PASSIVE_LEVEL. Cela améliore les performances du système en permettant à la fonction actuelle de revenir immédiatement et au pilote de travailler ultérieurement à un IRQL inférieur.

NDIS 6.0 et versions ultérieures fournissent des fonctions wrapper pour les routines d’éléments de travail d’E/S du noyau IoAllocateWorkItem, IoFreeWorkItem et IoQueueWorkItem. Au lieu de la structure de IO_WORKITEM privée, NDIS utilise la structure de NDIS_IO_WORKITEM privée.

Les pilotes NDIS 6.0 appellent la fonction NdisAllocateIoWorkItem pour allouer un élément de travail. Les pilotes de miniport NDIS passent NdisAllocateIoWorkItem le handle d’adaptateur que NDIS a transmis à la fonction MiniportInitializeEx . NdisAllocateIoWorkItem obtient l’objet d’appareil associé au handle et transmet l’objet d’appareil à la routine IoAllocateWorkItem . Les pilotes de filtre passent une poignée de filtre.

Note Les pilotes de protocole ne peuvent pas utiliser NdisAllocateIoWorkItem , car NDIS n’associe pas les pilotes de protocole aux objets de périphérique.

Les pilotes NDIS appellent la fonction NdisQueueIoWorkItem pour mettre en file d’attente les éléments de travail. Les éléments de travail NDIS utilisent le type de file d’attente CriticalWorkQueue .

Les pilotes NDIS doivent appeler la fonction NdisFreeIoWorkItem pour libérer les ressources associées à un élément de travail alloué par NdisAllocateIoWorkItem .

Threads de travail système