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 D’E/S NDIS.

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 pilote.

Valeur retournée

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 de miniport NDIS transmettent NdisAllocateIoWorkItem l’une ou l’autre des deux poignées : le handle d’adaptateur que NDIS a transmis à la fonction MiniportInitializeEx ou le handle de pilote miniport que NDIS a retourné lorsque le pilote miniport appelé NdisMRegisterMiniportDriver.

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

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

Note Les pilotes de protocole ne peuvent pas utiliser NdisAllocateIoWorkItem , car NDIS n’associe pas de pilotes de protocole à des objets de périphérique ou à des objets de pilote.
 
Les pilotes NDIS appellent la fonction NdisQueueIoWorkItem pour mettre en file d’attente les éléments de travail. Une fois qu’un pilote appelle NdisQueueIoWorkItem, NDIS appelle la fonction de rappel spécifiée par le pilote à l’adresse 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 alloué par NdisAllocateIoWorkItem .

Les pilotes peuvent appeler NdisFreeIoWorkItem dans la routine de rappel passée à NdisQueueIoWorkItem.

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

Si un pilote miniport a utilisé le handle que NdisMRegisterMiniportDriver a 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
Plateforme cible Universal
En-tête ndis.h (inclure 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 D’E/S NDIS

NdisFRegisterFilterDriver

NdisFreeIoWorkItem

NdisMRegisterMiniportDriver

NdisQueueIoWorkItem

NdisRegisterDeviceEx