Partager via


Fonction NdisMCoIndicateReceiveNetBufferLists (ndis.h)

La fonction NdisMCoIndicateReceiveNetBufferLists indique que le pilote miniport a reçu des données du réseau.

Syntaxe

void NdisMCoIndicateReceiveNetBufferLists(
  [in] IN NDIS_HANDLE      NdisVcHandle,
  [in] IN PNET_BUFFER_LIST NetBufferLists,
  [in] IN ULONG            NumberOfNetBufferLists,
  [in] IN ULONG            CoReceiveFlags
);

Paramètres

[in] NdisVcHandle

Handle qui identifie une connexion virtuelle (VC). Le pilote miniport a obtenu ce handle en tant que paramètre d’entrée pour sa fonction MiniportCoCreateVc , soit lorsqu’un client a configuré un appel sortant, soit lorsque le gestionnaire d’appels a créé un vc pour un point d’accès de service inscrit au client (SAP) pour indiquer une notification d’appel entrante.

[in] NetBufferLists

Liste liée de NET_BUFFER_LIST structures allouées par le pilote miniport.

[in] NumberOfNetBufferLists

Nombre de structures NET_BUFFER_LIST qui figurent dans la liste liée des structures spécifiées par NetBufferLists .

[in] CoReceiveFlags

Indicateurs qui définissent des attributs pour l’opération d’envoi. Les indicateurs peuvent être combinés avec une opération OR au niveau du bit. Pour effacer tous les indicateurs, définissez ce paramètre sur zéro. NdisMCoIndicateReceiveNetBufferLists prend en charge les indicateurs suivants :

NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL

L’IRQL actuel est DISPATCH_LEVEL. Pour plus d’informations sur cet indicateur, consultez Dispatch IRQL Tracking.

NDIS_RECEIVE_FLAGS_RESOURCES

Le pilote miniport récupère la propriété des structures NET_BUFFER_LIST et de toutes les structures NET_BUFFER attachées immédiatement après le retour de NdisMCoIndicateReceiveNetBufferLists .

Valeur de retour

None

Remarques

Un pilote miniport appelle généralement la fonction NdisMCoIndicateReceiveNetBufferLists à partir de sa fonction MiniportInterruptDPC . Lorsqu’un pilote miniport appelle NdisMCoIndicateReceiveNetBufferLists, il spécifie une liste de structures NET_BUFFER_LIST au paramètre NetBufferLists . NDIS transmet ensuite les structures NET_BUFFER_LIST aux pilotes de protocole liés.

Les pilotes miniport doivent définir le membre SourceHandle de chaque structure NET_BUFFER_LIST sur la même valeur que le paramètre NdisVcHandle afin que NDIS puisse renvoyer les structures NET_BUFFER_LIST au pilote miniport correct.

Si un pilote miniport appelle NdisMCoIndicateReceiveNetBufferLists et efface l’indicateur de NDIS_RECEIVE_FLAGS_RESOURCES dans le paramètre CoReceiveFlags , NDIS retourne les structures NET_BUFFER_LIST que NetBufferLists spécifie à l’emplacement du pilote miniport Fonction MiniportReturnNetBufferLists . Dans ce cas, le pilote miniport ne doit pas récupérer les structures NET_BUFFER_LIST tant que NDIS n’a pas retourné les structures NET_BUFFER_LIST à la fonction MiniportReturnNetBufferLists du pilote miniport.

Si un pilote miniport appelle NdisMCoIndicateReceiveNetBufferLists et définit l’indicateur NDIS_RECEIVE_FLAGS_RESOURCES dans le paramètre CoReceiveFlags , le pilote miniport doit immédiatement reprendre la propriété des structures NET_BUFFER_LIST. Dans ce cas, NDIS n’appelle pas la fonction MiniportReturnNetBufferLists du pilote miniport pour renvoyer les structures NET_BUFFER_LIST. Au lieu de cela, NDIS retourne les structures NET_BUFFER_LIST au pilote miniport lorsque NdisMCoIndicateReceiveNetBufferLists retourne. Le pilote miniport doit récupérer les structures NET_BUFFER_LIST immédiatement après le retour de NdisMCoIndicateReceiveNetBufferLists . Pour récupérer les structures NET_BUFFER_LIST, un pilote miniport peut appeler son propre Fonction MiniportReturnNetBufferLists .

Si un pilote miniport définit l’indicateur NDIS_RECEIVE_FLAGS_RESOURCES dans le paramètre CoReceiveFlags , les pilotes de protocole doivent copier les données réseau et libérer les structures NET_BUFFER_LIST dans le pilote miniport. Vous devez concevoir vos pilotes miniports avec suffisamment de structures de NET_BUFFER_LIST préallouées pour éviter toute copie inutile.

L’appelant de NdisMCoIndicateReceiveNetBufferLists doit initialiser correctement les structures NET_BUFFER_LIST, les structures NET_BUFFER attachées et toutes les listes de descripteurs de mémoire jointes (MDL).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI Irql_MCO_Function(ndis)

Voir aussi

MiniportCoCreateVc

MiniportInterruptDPC

MiniportReturnNetBufferLists

NET_BUFFER

NET_BUFFER_LIST