Fonction NdisMSendNetBufferListsComplete (ndis.h)

Les pilotes miniport appellent la fonction NdisMSendNetBufferListsComplete pour renvoyer une liste liée de structures NET_BUFFER_LIST à un pilote qui se superpose et pour retourner la status finale d’une demande d’envoi.

Syntaxe

void NdisMSendNetBufferListsComplete(
  [in] NDIS_HANDLE      MiniportAdapterHandle,
       PNET_BUFFER_LIST NetBufferList,
  [in] ULONG            SendCompleteFlags
);

Paramètres

[in] MiniportAdapterHandle

Poignée de miniport que NDIS a passée à la fonction MiniportInitializeEx .

NetBufferList

Pointeur vers une liste liée de structures NET_BUFFER_LIST. Le pilote miniport a reçu les structures NET_BUFFER_LIST lors des appels précédents à sa fonction MiniportSendNetBufferLists .

[in] SendCompleteFlags

Indicateurs NDIS pouvant être combinés à une opération OR. Pour effacer tous les indicateurs, définissez ce membre sur zéro. Cette fonction prend en charge l’indicateur NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL qui ; si défini, indique que l’IRQL actuel est DISPATCH_LEVEL. Pour plus d’informations sur cet indicateur, consultez Dispatch IRQL Tracking.

Valeur de retour

None

Remarques

Un pilote miniport appelle NdisMSendNetBufferListsComplete pour effectuer les requêtes effectuées par NDIS à la fonction MiniportSendNetBufferLists du pilote. Le pilote miniport spécifie une liste liée de structures NET_BUFFER_LIST associées aux demandes d’envoi terminées. Tant que la status des demandes d’envoi est en attente, le pilote miniport conserve la propriété des structures NET_BUFFER_LIST et de toutes les ressources allouées au protocole associées aux structures NET_BUFFER_LIST.

Une fois qu’un pilote miniport appelle NdisMSendNetBufferListsComplete, NDIS appelle la fonction ProtocolSendNetBufferListsComplete du pilote qui a appelé la fonction NdisSendNetBufferLists pour lancer la demande d’envoi.

Le pilote miniport peut effectuer les requêtes d’envoi dans n’importe quel ordre. Par exemple, le pilote miniport peut concaténer les listes de structure NET_BUFFER_LIST de plusieurs appels MiniportSendNetBufferLists ou fractionner une liste à partir d’un appel MiniportSendNetBufferLists . Toutefois, le pilote miniport ne doit pas modifier la liste des structures NET_BUFFER associées à une structure NET_BUFFER_LIST.

Le pilote miniport doit définir l’un des codes status suivants dans le membre Status de chaque structure NET_BUFFER_LIST que le paramètre NetBufferLists spécifie :

Structure Description
NDIS_STATUS_SUCCESS Toutes les données réseau décrites par la structure NET_BUFFER_LIST et les structures NET_BUFFER associées ont été traitées pour la transmission. Par exemple, le pilote miniport a copié les données dans une file d’attente ou les données ont déjà été transmises.
NDIS_STATUS_INVALID_LENGTH La taille des données dans certaines structures NET_BUFFER associées à cette structure NET_BUFFER_LIST était trop grande pour la carte réseau sous-jacente.
NDIS_STATUS_RESOURCES La demande d’envoi de cette structure NET_BUFFER_LIST a échoué en raison de ressources insuffisantes.
NDIS_STATUS_PAUSED L’adaptateur miniport est à l’état Suspendu, comme décrit dans la page de référence de la fonction MiniportPause.
NDIS_STATUS_SEND_ABORTED NDIS a appelé la fonction MiniportCancelSend pour annuler l’opération d’envoi de cette structure NET_BUFFER_LIST.
NDIS_STATUS_RESET_IN_PROGRESS Le pilote miniport a abandonné la demande d’envoi en raison d’une réinitialisation.
NDIS_STATUS_FAILURE Le pilote miniport a échoué à l’envoi de la demande pour une raison autre que celles décrites précédemment. Par exemple, le pilote miniport peut échouer la demande d’envoi en raison d’une défaillance matérielle.

L’appel d’un pilote miniport à NdisMSendNetBufferListsComplete ne signifie pas nécessairement que les données d’une demande d’envoi ont été transmises sur le réseau. Les données peuvent être mises en file d’attente dans le matériel de la carte réseau.

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), NdisTimedDataHang, NdisTimedDataSend

Voir aussi

MiniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists