Partager via


NdisCancelSendNetBufferLists, fonction (ndis.h)

Les pilotes de protocole appellent la fonction NdisCancelSendNetBufferLists pour annuler la transmission des données réseau.

Syntaxe

void NdisCancelSendNetBufferLists(
  [in] NDIS_HANDLE NdisBindingHandle,
  [in] PVOID       CancelId
);

Paramètres

[in] NdisBindingHandle

Handle retourné par la fonction NdisOpenAdapterEx qui identifie le pilote de miniport ou le miniport virtuel auquel l’annulation s’applique.

[in] CancelId

Identificateur d’annulation. Cet identificateur spécifie les données réseau pour lesquelles la transmission est annulée.

Valeur de retour

None

Remarques

Un pilote de protocole mappe les IRP qu’il reçoit des logiciels de niveau supérieur aux données réseau NDIS. Une liste de structures NET_BUFFER_LIST décrit les données réseau que le pilote de protocole envoie aux pilotes de niveau inférieur pour la transmission. Si une IRP est annulée, un pilote de protocole peut appeler la fonction NdisCancelSendNetBufferLists pour annuler la transmission en attente des données réseau NDIS correspondantes.

Appelez le NDIS_SET_NET_BUFFER_LIST_CANCEL_ID macro pour chaque structure NET_BUFFER_LIST passée aux pilotes de niveau inférieur pour la transmission. La macro NDIS_SET_NET_BUFFER_LIST_CANCEL_ID marque le paquet spécifié avec un identificateur d’annulation.

NdisCancelSendNetBufferLists annule la transmission de toutes les données marquées avec l’identificateur d’annulation spécifié et associées au pilote miniport spécifié. Le handle de liaison spécifié dans le paramètre NdisBindingHandle identifie le pilote miniport.

La fonction NdisCancelSendNetBufferLists annule les transmissions de données réseau sur une seule liaison. Pour annuler les transmissions de données réseau sur plusieurs liaisons, un pilote de protocole doit appeler la fonction NdisCancelSendNetBufferLists une fois pour chaque liaison.

Le pilote de protocole doit s’assurer que le handle spécifié par le paramètre NdisBindingHandle reste valide pendant la durée de l’appel à NdisCancelSendNetBufferLists. Autrement dit, le pilote de protocole ne doit pas appeler la fonction NdisCloseAdapterEx pour fermer la liaison avant que NdisCancelSendNetBufferLists ne retourne.

Il n’existe aucune garantie que l’appel de NdisCancelSendNetBufferLists annule la transmission en attente de toutes les données réseau avec l’identificateur d’annulation spécifié. Par exemple, si le pilote inférieur suivant auquel le pilote de protocole est lié ne fournit pas de fonction MiniportCancelSend , un appel à NdisCancelSendNetBufferLists ne fait rien.

Dans tous les cas, NDIS retourne les données réseau qui ont été envoyées pour transmission au pilote de protocole d’origine Fonction ProtocolSendNetBufferListsComplete . NDIS retourne des données d’envoi annulées avec une status d’achèvement de NDIS_STATUS_SEND_ABORTED. Le délai entre l’appel de NdisCancelSendNetBufferLists et le retour des structures NET_BUFFER_LIST annulées peut varier et ne peut donc pas être spécifié exactement.

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 Irql_SendRcv_Function(ndis)

Voir aussi

MiniportCancelSend

NDIS_SET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER_LIST

NdisCloseAdapterEx

NdisOpenAdapterEx

ProtocolSendNetBufferListsComplete