NdisMCoIndicateReceiveNetBufferLists, fonction (ndis.h)
La fonction NdisMCoIndicateReceiveNetBufferLists indique que le pilote miniport a reçu des données du réseau.
void NdisMCoIndicateReceiveNetBufferLists(
[in] IN NDIS_HANDLE NdisVcHandle,
[in] IN PNET_BUFFER_LIST NetBufferLists,
[in] IN ULONG NumberOfNetBufferLists,
[in] IN ULONG CoReceiveFlags
);
[in] NdisVcHandle
Handle qui identifie une connexion virtuelle (VC). Le pilote miniport a obtenu ce handle comme paramètre d’entrée à 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 structures NET_BUFFER_LIST allouées par le pilote miniport.
[in] NumberOfNetBufferLists
Nombre de structures NET_BUFFER_LIST figurant dans la liste liée des structures qui NetBufferLists spécifie.
[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 :
Le runtime d’intégration actuel est DISPATCH_LEVEL. Pour plus d’informations sur cet indicateur, consultez Dispatch IRQL Tracking.
Le pilote miniport récupère la propriété des structures NET_BUFFER_LIST et toutes les structures NET_BUFFER attachées immédiatement après NdisMCoIndicateReceiveNetBufferLists retourne.
Aucun
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 de 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 approprié.
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 qui NetBufferLists spécifie le paramètre du pilote miniport MiniportReturnNetBufferLists fonction. Dans ce cas, le pilote miniport ne doit pas récupérer les structures NET_BUFFER_LIST tant que NDIS ne renvoie pas les structures NET_BUFFER_LIST au miniportReturnNetBufferLists fonction.
Si un pilote miniport appelle NdisMCoIndicateReceiveNetBufferLists et définit l’indicateur NDIS_RECEIVE_FLAGS_RESOURCES dans le paramètre coReceiveFlags, le pilote miniport doit récupérer immédiatement la propriété des structures NET_BUFFER_LIST. Dans ce cas, NDIS n’appelle pas la fonction MiniportReturnNetBufferList s 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 NdisMCoIndicateReceiveNetBufferLists retourne. Pour récupérer les structures NET_BUFFER_LIST, un pilote miniport peut appeler son propre MiniportReturnNetBufferLists fonction.
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 vers le pilote miniport. Vous devez concevoir vos pilotes miniports avec suffisamment de structures 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 les listes de descripteurs de mémoire jointes (MDLs).