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.
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 |