Partager via


NdisMSendNetBufferListsComplete, fonction (ndis.h)

Les pilotes miniport appellent la fonction NdisMSendNetBufferListsComplete pour renvoyer une liste liée de structures NET_BUFFER_LIST à un pilote surlysant et pour renvoyer l’état final d’une demande d’envoi.

Syntaxe

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

Paramètres

[in] MiniportAdapterHandle

Handle miniport transmis à 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 dans les appels précédents à sa fonction MiniportSendNetBufferLists.

[in] SendCompleteFlags

Indicateurs NDIS qui peuvent ê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 la valeur est définie, indique que le runtime d’intégration actuel est DISPATCH_LEVEL. Pour plus d’informations sur cet indicateur, consultez Dispatch IRQL Tracking.

Valeur de retour

Aucun

Remarques

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

Après qu’un pilote miniport appelle NdisMSendNetBufferListsComplete, NDIS appelle la fonction ProtocolSendNetBufferListsComplete du pilote qui a appelé la fonction NdisSendNetBufferLists pour lancer la requête d’envoi.

Le pilote miniport peut effectuer des demandes d’envoi dans n’importe quel ordre. Par exemple, le pilote miniport peut concaténer les listes de structure NET_BUFFER_LIST à partir de plusieurs MiniportSendNetBufferLists appels 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 d’état suivants dans le membre Status de chaque structure de NET_BUFFER_LIST que le paramètre NetBufferLists spécifie :

Structure Description
NDIS_STATUS_SUCCESS Toutes les données réseau que la structure NET_BUFFER_LIST et les structures de NET_BUFFER associées décrivent ont été traitées avec succès 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 dans 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 pour 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é la demande d’envoi en raison d’une raison autre que celle décrite 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.

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

Voir aussi

MiniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists