MINIPORT_RETURN_NET_BUFFER_LISTS fonction de rappel (ndis.h)

NDIS appelle la fonction MiniportReturnNetBufferLists pour renvoyer la propriété des structures de NET_BUFFER_LIST , des structures NET_BUFFER associées et toutes les dll MDL attachées à un pilote miniport.

Note Vous devez déclarer la fonction à l’aide du type MINIPORT_RETURN_NET_BUFFER_LISTS . Pour plus d’informations, consultez la section Exemples suivante.
 

Syntaxe

MINIPORT_RETURN_NET_BUFFER_LISTS MiniportReturnNetBufferLists;

void MiniportReturnNetBufferLists(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PNET_BUFFER_LIST NetBufferLists,
  [in] ULONG ReturnFlags
)
{...}

Paramètres

[in] MiniportAdapterContext

Handle à une zone de contexte que le pilote miniport a allouée dans sa fonction MiniportInitializeEx . Le pilote miniport utilise cette zone de contexte pour conserver les informations d’état sur une carte.

[in] NetBufferLists

Pointeur vers une liste liée de structures NET_BUFFER_LIST que NDIS retourne au pilote miniport. La liste liée peut contenir NET_BUFFER_LIST structures de plusieurs appels précédents à Fonction NdisMIndicateReceiveNetBufferLists .

[in] ReturnFlags

Indicateurs NDIS pouvant être combinés à une opération OR. Cette fonction prend en charge l’indicateur NDIS_RETURN_FLAGS_DISPATCH_LEVEL qui, s’il est 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

MiniportReturnNetBufferLists est une fonction requise pour les pilotes miniport qui indiquent les données réseau reçues avec le Fonction NdisMIndicateReceiveNetBufferLists . Lorsqu’un pilote qui se superpose appelle le NdisReturnNetBufferLists , NDIS appelle la fonction MiniportReturnNetBufferLists du pilote miniport qui a indiqué les structures NET_BUFFER_LIST spécifiées.

MiniportReturnNetBufferLists peut préparer une structure de NET_BUFFER_LIST retournée pour une utilisation dans une indication de réception ultérieure. Bien que MiniportReturnNetBufferLists puisse renvoyer les structures NET_BUFFER_LIST à un pool (par exemple, il peut appeler la fonction NdisFreeNetBufferList ), il peut être plus efficace de réutiliser les structures sans les renvoyer au pool.

NDIS appelle MiniportReturnNetBufferLists à l’adresse IRQL<= DISPATCH_LEVEL.

Exemples

Pour définir une fonction MiniportReturnNetBufferLists , vous devez d’abord fournir une déclaration de fonction qui identifie le type de fonction que vous définissez. Windows fournit un ensemble de types de fonctions pour les pilotes. La déclaration d’une fonction à l’aide des types de fonction permet à l’analyse du code pour les pilotes, le vérificateur de pilotes statique (SDV) et d’autres outils de vérification de trouver les erreurs, et il s’agit d’une exigence pour l’écriture de pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une fonction MiniportReturnNetBufferLists nommée « MyReturnNetBufferLists », utilisez le type MINIPORT_RETURN_NET_BUFFER_LISTS comme indiqué dans cet exemple de code :

MINIPORT_RETURN_NET_BUFFER_LISTS MyReturnNetBufferLists;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
VOID
 MyReturnNetBufferLists(
    NDIS_HANDLE  MiniportAdapterContext,
    PNET_BUFFER_LIST  NetBufferLists,
    ULONG  ReturnFlags
    )
  {...}

Le type de fonction MINIPORT_RETURN_NET_BUFFER_LISTS est défini dans le fichier d’en-tête Ndis.h. Pour identifier plus précisément les erreurs lors de l’exécution des outils d’analyse du code, veillez à ajouter l’annotation Use_decl_annotations à votre définition de fonction. L’annotation Use_decl_annotations garantit que les annotations appliquées au type de fonction MINIPORT_RETURN_NET_BUFFER_LISTS dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes NDIS.

Pour plus d’informations sur Use_decl_annotations, consultez Annotating Function Behavior.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
Plateforme cible Windows
En-tête ndis.h (inclure Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

MiniportInitializeEx

NET_BUFFER

NET_BUFFER_LIST

NdisFreeNetBufferList

NdisMIndicateReceiveNetBufferLists

NdisReturnNetBufferLists