Partager via


NdisAllocateIoWorkItem, fonction (ndis.h)

Les pilotes NDIS appellent la fonction NdisAllocateIoWorkItem pour allouer un élément de travail. Pour plus d’informations, consultez éléments de travail NDIS I/O.

Syntaxe

NDIS_HANDLE NdisAllocateIoWorkItem(
  [in] NDIS_HANDLE NdisObjectHandle
);

Paramètres

[in] NdisObjectHandle

Handle d’un objet NDIS associé à un objet de périphérique ou à un objet de pilote.

Valeur de retour

Si NdisAllocateIoWorkItem alloue correctement un élément de travail, il retourne un handle à l’élément de travail. En cas d’échec, NdisAllocateIoWorkItem retourne NULL.

Remarques

Les pilotes miniport NDIS passent NdisAllocateIoWorkItem l’une des deux poignées : la poignée d’adaptateur transmise à la fonction MiniportInitializeEx ou le handle de pilote miniport retourné par NDIS lorsque le pilote miniport appelé NdisMRegisterMiniportDriver.

Les pilotes de filtre NDIS peuvent passer NdisAllocateIoWorkItem le handle du pilote de filtre retourné par NDIS lorsque le pilote de filtre appelé NdisFRegisterFilterDriver.

Les pilotes miniport NDIS et les pilotes de filtre peuvent également passer NdisAllocateIoWorkItem le handle de périphérique NDIS retourné par NDIS lorsque le pilote appelé NdisRegisterDeviceEx. NdisAllocateIoWorkItem obtient l’objet de périphérique ou l’objet de pilote associé au handle et transmet l’objet de périphérique ou le pilote à la fonction IoAllocateWorkItem.

Remarque Les pilotes de protocole ne peuvent pas utiliser NdisAllocateIoWorkItem, car NDIS n’associe pas les pilotes de protocole aux objets de périphérique ou aux objets de pilote.
 
Les pilotes NDIS appellent la fonction NdisQueueIoWorkItem pour mettre en file d’attente les éléments de travail. Après qu’un pilote appelle NdisQueueIoWorkItem, NDIS appelle la fonction de rappel spécifiée par le pilote à IRQL = PASSIVE_LEVEL. Cela peut améliorer les performances du système en permettant à la fonction actuelle de se terminer immédiatement et au pilote de fonctionner ultérieurement à un irQL inférieur.

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

Les pilotes peuvent appeler NdisFreeIoWorkItem dans la routine de rappel transmise à NdisQueueIoWorkItem.

Si un pilote miniport a utilisé le handle passé à MiniportInitializeEx lorsqu’il a appelé NdisAllocateIoWorkItem, l’élément de travail doit être libéré avant ou dans l’appel aux pilotes MiniportHaltEx fonction.

Si un pilote miniport a utilisé le handle qui NdisMRegisterMiniportDriver retourné lorsque le pilote appelé NdisAllocateIoWorkItem, le pilote doit libérer l’élément de travail avant le déchargement du pilote.

En général, un pilote doit libérer l’élément de travail avant le déchargement du pilote.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.0 et versions ultérieures.
plateforme cible Universel
d’en-tête ndis.h (include Ndis.h)
bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL
règles de conformité DDI Init_NdisAllocateIoWorkItem(ndis), Irql_Miscellaneous_Function(ndis)

Voir aussi

IoAllocateWorkItem

MiniportHaltEx

MiniportInitializeEx

éléments de travail NDIS E/S

NdisFRegisterFilterDriver

NdisFreeIoWorkItem

NdisMRegisterMiniportDriver

NdisQueueIoWorkItem

NdisRegisterDeviceEx