Partager via


PROTOCOL_CL_CLOSE_AF_COMPLETE fonction de rappel (ndis.h)

La fonction ProtocolClCloseAfComplete est utilisée par les clients NDIS orientés connexion. Tous les clients NDIS orientés connexion doivent avoir fonctions ProtocolClCloseAfComplete pour effectuer les opérations asynchrones qu’ils lancent avec NdisClCloseAddressFamily.

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

Syntaxe

PROTOCOL_CL_CLOSE_AF_COMPLETE ProtocolClCloseAfComplete;

void ProtocolClCloseAfComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolAfContext
)
{...}

Paramètres

[in] Status

Spécifie l’état final de la demande initiée par le client pour fermer la famille d’adresses, qui peut être l’une des suivantes :

NDIS_STATUS_SUCCESS

La famille d’adresses a été fermée. Le NdisAfHandle qui représente la famille d’adresses ouverte, que le client a stocké dans sa zone ProtocolAfContext, n’est pas valide.

NDIS_STATUS_FAILURE

Soit l’AF a associé des vc(s) et/ou inscrit SAP(s) que le client doit libérer avant de tenter de fermer l’AF, ou le client appelé NdisClCloseAddressFamily deux fois parce que NDIS a découvert que l’état AF a été marqué comme « fermant ».

[in] ProtocolAfContext

Spécifie le handle fourni par le client dans sa zone de contexte par af. Le client a initialement configuré cette zone de contexte et passé ce handle à NDIS avec NdisClOpenAddressFamilyEx.

Valeur de retour

Aucun

Remarques

Après s’être assuré qu’il n’a pas de cartes virtuelles en attente et/ou d’adresses IP inscrites sur sa famille d’adresses ouvertes, un client appelle NdisClCloseAddressFamily pour supprimer l’association entre elle-même, un gestionnaire d’appels et une carte réseau sous-jacente particulière. NDIS appelle la fonction ProtocolCmCloseAf pour le gestionnaire d’appels utilisé à l’origine pour ouvrir la famille d’adresses en tant qu’opération asynchrone. Après avoir appelé NdisClCloseAddressFamily, le client doit prendre en compte le NdisAfHandle non valide.

Par conséquent, le client doit avoir une fonction ProtocolClCloseAfComplete, que NDIS appelle lorsque l’opération close-AF asynchrone est effectuée. Si l'd’état d’entrée est NDIS_STATUS_SUCCESS, le client peut libérer sa zone de contexte par af.

exemples de

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

PROTOCOL_CL_CLOSE_AF_COMPLETE MyClCloseAfComplete;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
VOID
 MyClCloseAfComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolAfContext
    )
  {...}

Le type de fonction PROTOCOL_CL_CLOSE_AF_COMPLETE 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 PROTOCOL_CL_CLOSE_AF_COMPLETE 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 Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir ProtocolClCloseAfComplete (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir ProtocolClCloseAfComplete (NDIS 5.1)) dans Windows XP.
plateforme cible Windows
d’en-tête ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

NdisClCloseAddressFamily

NdisClOpenAddressFamilyEx

NdisFreeMemory

NdisFreeToNPagedLookasideList

ProtocolCmCloseAf

ProtocolCmOpenAf

ProtocolUnbindAdapterEx