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) |