Partager via


PROTOCOL_CL_CLOSE_CALL_COMPLETE fonction de rappel (ndis.h)

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

NdisClCloseCall.

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

Syntaxe

PROTOCOL_CL_CLOSE_CALL_COMPLETE ProtocolClCloseCallComplete;

void ProtocolClCloseCallComplete(
  [in]           NDIS_STATUS Status,
  [in]           NDIS_HANDLE ProtocolVcContext,
  [in, optional] NDIS_HANDLE ProtocolPartyContext
)
{...}

Paramètres

[in] Status

Spécifie la status finale de la demande du client pour fermer cet appel, qui peut être l’une des suivantes :

NDIS_STATUS_SUCCESS

Le gestionnaire d’appels a correctement fermé l’appel qui existait sur le vc donné et a désactivé le vc.

NDIS_STATUS_XXX

Le gestionnaire d’appels a échoué à la demande de fermeture de l’appel pour une raison déterminée par cm, et NDIS a propagé le status retourné par sa fonction ProtocolCmCloseCall au client.

[in] ProtocolVcContext

Spécifie le handle dans la zone de contexte par vc du client Il s’agit du handle que le client a transmis initialement à NDIS avec NdisCoCreateVc ou retourné à NDIS à partir de sa fonction ProtocolCoCreateVc .

[in, optional] ProtocolPartyContext

Spécifie le handle de la zone de contexte par partie du client pour la dernière partie restante sur le vc créé par le client représentant une connexion multipoint. Sinon, ce paramètre est NULL.

Valeur de retour

None

Remarques

Si le vc donné a été créé par le client et que l’état est NDIS_STATUS_SUCCESS, le client peut désormais effectuer l’une des opérations suivantes :

  • Démontez son vc avec NdisCoDeleteVc et publiez ou préparez à réutiliser la ou les zones de contexte qu’il a allouées.
  • Réinitialisez sa zone de contexte par vc et réutilisez son vc pour établir une autre connexion avec NdisClMakeCall.
Si le vc a été créé par le gestionnaire d’appels, le client doit considérer le NdisVcHandle non valide lorsque ProtocolClCloseCallComplete est appelé. Le client ne doit pas effectuer d’autres appels NdisCl/CoXxx avec ce NdisVcHandle . Une fois que ProtocolClCloseCallComplete a retourné le contrôle, le gestionnaire d’appels peut supprimer son vc, provoquant ainsi un appel à la fonction ProtocolCoDeleteVc du client. Le gestionnaire d’appels peut même distribuer un autre appel entrant sur le vc qu’il a créé, provoquant ainsi un appel au client Fonction ProtocolClIncomingCall .

Exemples

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

PROTOCOL_CL_CLOSE_CALL_COMPLETE MyClCloseCallComplete;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
VOID
 MyClCloseCallComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolVcContext,
    NDIS_HANDLE  ProtocolPartyContext
    )
  {...}

Le type de fonction PROTOCOL_CL_CLOSE_CALL_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_CALL_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 ProtocolClCloseCallComplete (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir ProtocolClCloseCallComplete (NDIS 5.1)) dans Windows XP.
Plateforme cible Windows
En-tête ndis.h (inclure Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

NdisClCloseCall

NdisClMakeCall

NdisCmCloseCallComplete

NdisCoDeleteVc

NdisMCmCloseCallComplete

ProtocolClIncomingCall

ProtocolCmCloseCall

ProtocolCoDeleteVc