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 |