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 des fonctions ProtocolClCloseAfComplete pour terminer les opérations asynchrones qu’ils lancent avec NdisClCloseAddressFamily.

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

Syntaxe

PROTOCOL_CL_CLOSE_AF_COMPLETE ProtocolClCloseAfComplete;

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

Paramètres

[in] Status

Spécifie la status finale de la demande lancé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ésentait la famille d’adresses ouverte, que le client a stocké dans sa zone ProtocolAfContext , n’est désormais pas valide.

NDIS_STATUS_FAILURE

Soit l’AF a associé des vc(s) et/ou des SAP inscrits que le client doit libérer avant d’essayer de fermer l’af, soit le client a appelé NdisClCloseAddressFamily deux fois parce que NDIS a découvert que l’état AF était 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 a passé ce handle à NDIS avec NdisClOpenAddressFamilyEx.

Valeur de retour

None

Remarques

Après s’être assuré qu’il n’a pas de VCs en suspens et/ou de SAP inscrits sur sa famille d’adresses ouvertes, un client appelle NdisClCloseAddressFamily pour supprimer l’association entre lui-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 par ce client pour ouvrir la famille d’adresses en tant qu’opération asynchrone. Après avoir appelé NdisClCloseAddressFamily, le client doit considérer le NdisAfHandle non valide.

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

Exemples

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 fonction permet à l’analyse du code pour les pilotes, au vérificateur de pilotes statiques (SDV) et à d’autres outils de vérification de trouver des erreurs. 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 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 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 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 Annotating Function Behavior.

Configuration requise

Condition requise Valeur
Client minimal 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
En-tête ndis.h (inclure Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

NdisClCloseAddressFamily

NdisClOpenAddressFamilyEx

NdisFreeMemory

NdisFreeToNPagedLookasideList

ProtocolCmCloseAf

ProtocolCmOpenAf

ProtocolUnbindAdapterEx