FILTER_CANCEL_SEND_NET_BUFFER_LISTS fonction de rappel (ndis.h)

NDIS appelle la fonction FilterCancelSendNetBufferLists d’un pilote de filtre pour annuler la transmission de toutes les structures NET_BUFFER_LIST marquées avec un identificateur d’annulation spécifié.

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

Syntaxe

FILTER_CANCEL_SEND_NET_BUFFER_LISTS FilterCancelSendNetBufferLists;

void FilterCancelSendNetBufferLists(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PVOID CancelId
)
{...}

Paramètres

[in] FilterModuleContext

Handle à une zone de contexte que le pilote de filtre a allouée dans sa fonction FilterAttach . Le pilote de filtre utilise cette zone de contexte pour conserver les informations d’état d’un module de filtre.

[in] CancelId

Identificateur d’annulation. Cet identificateur spécifie les structures NET_BUFFER_LIST qui sont annulées.

Valeur de retour

None

Remarques

La fonction FilterCancelSendNetBufferLists est facultative. Si un pilote de filtre ne filtre pas les requêtes d’envoi, il peut définir le point d’entrée de cette fonction sur NULL lorsqu’il appelle le Fonction NdisFRegisterFilterDriver .

Les pilotes de filtre qui font la file d’attente NET_BUFFER_LIST structures avant l’envoi doivent exporter une fonction FilterCancelSendNetBufferLists . La fonction FilterCancelSendNetBufferLists annule la transmission en attente des structures NET_BUFFER_LIST spécifiées.

Lorsqu’un pilote NDIS qui se superpose appelle le NdisCancelSendNetBufferLists ou NdisFCancelSendNetBufferLists , fonction NDIS appelle la fonction FilterCancelSendNetBufferLists des modules de filtre sur la liaison.

La fonction FilterCancelSendNetBufferLists d’un pilote de filtre effectue les opérations suivantes :

  1. Traverse sa liste de structures de NET_BUFFER_LIST en file d’attente pour le module de filtre spécifié et appelle le NDIS_GET_NET_BUFFER_LIST_CANCEL_ID macro pour obtenir l’identificateur d’annulation pour chaque structure de NET_BUFFER_LIST mise en file d’attente. Le pilote de filtre compare l’ID d’annulation que NDIS_GET_NET_BUFFER_LIST_CANCEL_ID retourne à l’ID d’annulation que NDIS a transmis à FilterCancelSendNetBufferLists.
  2. Supprime de la file d’attente d’envoi (dissociation) toutes les structures NET_BUFFER_LIST dont les identificateurs d’annulation correspondent à l’identificateur d’annulation spécifié.
  3. Appelle le Fonction NdisFSendNetBufferListsComplete pour toutes les structures de NET_BUFFER_LIST non liées pour retourner les structures. Le pilote de filtre définit le champ status des structures NET_BUFFER_LIST sur NDIS_STATUS_SEND_ABORTED.
  4. Appelle la fonction NdisFCancelSendNetBufferLists pour transmettre la demande d’envoi d’annulation aux pilotes sous-jacents.
NDIS appelle FilterCancelSendNetBufferLists à IRQL <= DISPATCH_LEVEL.

Exemples

Pour définir une fonction FilterCancelSendNetBufferLists , 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 FilterCancelSendNetBufferLists nommée « MyCancelSendNetBufferLists », utilisez le type FILTER_CANCEL_SEND_NET_BUFFER_LISTS comme indiqué dans cet exemple de code :

FILTER_CANCEL_SEND_NET_BUFFER_LISTS MyCancelSendNetBufferLists;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
VOID
 MyCancelSendNetBufferLists(
    NDIS_HANDLE  FilterModuleContext,
    PVOID  CancelId
    )
  {...}

Le type de fonction FILTER_CANCEL_SEND_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 FILTER_CANCEL_SEND_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

FilterAttach

NDIS_GET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER

NET_BUFFER_LIST

NdisCancelSendNetBufferLists

NdisFCancelSendNetBufferLists

NdisFRegisterFilterDriver

NdisFSendNetBufferListsComplete