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é.
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 :
- 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.
- 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é.
- 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.
- Effectue les opérations de la liste précédente pour la fonction MiniportCancelSend d’un pilote miniport.
- Appelle le NdisCancelSendNetBufferLists fonction, en spécifiant la liaison qui est mappée à l’adaptateur spécifié dans l’appel à MiniportCancelSend.
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 |