Partager via


MINIPORT_CANCEL_SEND fonction de rappel (ndis.h)

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

Remarque Vous devez déclarer la fonction à l’aide du type MINIPORT_CANCEL_SEND. Pour plus d’informations, consultez la section Exemples suivants.
 

Syntaxe

MINIPORT_CANCEL_SEND MiniportCancelSend;

void MiniportCancelSend(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PVOID CancelId
)
{...}

Paramètres

[in] MiniportAdapterContext

Handle vers une zone de contexte allouée par le pilote miniport dans sa fonction MiniportInitializeEx. Le pilote miniport utilise cette zone de contexte pour conserver des informations d’état sur un adaptateur.

[in] CancelId

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

Valeur de retour

Aucun

Remarques

Les pilotes Miniport et les pilotes intermédiaires qui envoient NET_BUFFER_LIST structures exportent une fonction MiniportCancelSend. La fonction MiniportCancelSend annule la transmission en attente des structures NET_BUFFER_LIST spécifiées.

Lorsqu’un pilote NDIS overlying appelle le NdisCancelSendNetBufferLists fonction, NDIS appelle la fonction MiniportCancelSend du pilote de niveau inférieur approprié sur la liaison. NDIS effectue cet appel uniquement si le pilote de niveau inférieur exporte une fonction MiniportCancelSend.

La fonction MiniportCancelSend d’un pilote miniport effectue les opérations suivantes :

  1. Traverse sa liste de structures NET_BUFFER_LIST mises en file d’attente pour l’adaptateur spécifié et appelle l’adaptateur NDIS_GET_NET_BUFFER_LIST_CANCEL_ID macro pour obtenir l’identificateur d’annulation de chaque structure NET_BUFFER_LIST mise en file d’attente. Le pilote miniport compare l’identificateur d’annulation qui NDIS_GET_NET_BUFFER_LIST_CANCEL_ID retourne l’identificateur d’annulation transmis à MiniportCancelSend.
  2. Supprime de la file d’attente d’envoi (un-links) toutes les structures NET_BUFFER_LIST dont les identificateurs d’annulation correspondent à l’identificateur d’annulation spécifié.
  3. Appelle le fonction NdisMSendNetBufferListsComplete pour toutes les structures NET_BUFFER_LIST non liées pour retourner les structures . Le pilote miniport définit le champ d’état des structures NET_BUFFER_LIST sur NDIS_STATUS_SEND_ABORTED.
La fonction miniportCancelSend d’un pilote intermédiaire effectue les opérations suivantes :
  1. Effectue les opérations de la liste précédente pour la fonction MiniportCancelSend d’un pilote miniport.
  2. Appelle le NdisCancelSendNetBufferLists fonction, en spécifiant la liaison qui est mappée à l’adaptateur spécifié dans l’appel à MiniportCancelSend.
NDIS appelle MiniportCancelSend au exemples de Pour définir une fonction MiniportCancelSend, 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 de rappel pour les pilotes. La déclaration d’une fonction à l’aide des types de fonctions permet d'Analyse du code pour les pilotes, de vérificateur de pilotes statiques (SDV) et d’autres outils de vérification recherchent des erreurs, et il est nécessaire d’écrire des pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une fonction MiniportCancelSend nommée « MyCancelSend », utilisez le type MINIPORT_CANCEL_SEND comme indiqué dans cet exemple de code :

MINIPORT_CANCEL_SEND MyCancelSend;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
VOID
 MyCancelSend(
    NDIS_HANDLE  MiniportAdapterContext,
    PVOID  CancelId
    )
  {...}

Le type de fonction MINIPORT_CANCEL_SEND est défini dans le fichier d’en-tête Ndis.h. Pour identifier plus précisément les erreurs lorsque vous exécutez les 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_CANCEL_SEND 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 annoter le comportement de la fonction.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.0 et versions ultérieures.
plateforme cible Windows
d’en-tête ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

MiniportInitializeEx

NDIS_GET_NET_BUFFER_LIST_CANCEL_ID

NET_BUFFER

NET_BUFFER_LIST

NdisCancelSendNetBufferLists

NdisMSendNetBufferListsComplete