Partager via


PROTOCOL_CM_DEACTIVATE_VC_COMPLETE fonction de rappel (ndis.h)

La fonction ProtocolCmDeactivateVcComplete est une fonction obligatoire. ProtocolCmDeactivateVcComplete termine le traitement d’une demande lancée par le gestionnaire d’appels pour que le pilote miniport sous-jacent (et NDIS) désactive un VC pour lequel NdisCmDeactivateVc a précédemment retourné NDIS_STATUS_PENDING.

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

Syntaxe

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE ProtocolCmDeactivateVcComplete;

void ProtocolCmDeactivateVcComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE CallMgrVcContext
)
{...}

Paramètres

[in] Status

Spécifie la status finale de la désactivation.

[in] CallMgrVcContext

Spécifie le handle d’une zone de contexte allouée par le gestionnaire d’appels dans laquelle le gestionnaire d’appels conserve son état par VC. Le gestionnaire d’appels a fourni ce handle à NDIS à partir de sa fonction ProtocolCoCreateVc .

Valeur de retour

None

Remarques

NDIS appelle généralement ProtocolCmDeactivateVcComplete dans le contexte de la fermeture d’un appel par le gestionnaire d’appels pour le compte d’un client orienté connexion. Le gestionnaire d’appels appelle généralement NdisCmDeactivateVc à partir de sa fonction ProtocolCmCloseCall . Chaque fois que NdisCmDeactivateVc retourne NDIS_STATUS_PENDING, NDIS appelle ensuite sa fonction ProtocolCmDeactivateVcComplete .

Autrement dit, lorsque le pilote miniport orienté connexion sous-jacent a désactivé le VC, NDIS appelle ProtocolCmDeactivateVcComplete. La status finale de la désactivation se trouve dans État . Les valeurs possibles pour la status finale incluent, mais ne sont pas limitées à :

ProtocolCmDeactivateVcComplete effectue tout post-traitement nécessaire pour terminer la désactivation d’une connexion virtuelle, par exemple en définissant des indicateurs dans sa zone d’état pour indiquer que la connexion est inactive ou en libérant des ressources allouées dynamiquement utilisées pendant que le vc est actif.

L’achèvement de la désactivation signifie que tous les paramètres d’appel pour le vc utilisé lors de l’activation ne sont plus valides. Toute autre utilisation de la vc est interdite, sauf pour la réactiver avec un nouvel ensemble de paramètres d’appel.

Les responsables d’appels doivent libérer toutes les ressources qui ont été allouées pour l’activation de vc et le contrôle de retour le plus rapidement possible. Si le gestionnaire d’appels a précédemment retourné NDIS_STATUS_PENDING à partir de sa fonction ProtocolCmCloseCall et que toutes les opérations de fermeture de l’appel ont été effectuées, ProtocolCmDeactivateVcComplete doit maintenant appeler NdisCmCloseCallComplete.

Exemples

Pour définir une fonction ProtocolCmDeactivateVcComplete , 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, le vérificateur de pilotes statique (SDV) et d’autres outils de vérification de trouver les erreurs, et 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 ProtocolCmDeactivateVcComplete nommée « MyCmDeactivateVcComplete », utilisez le type PROTOCOL_CM_DEACTIVATE_VC_COMPLETE comme indiqué dans cet exemple de code :

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE MyCmDeactivateVcComplete;

Ensuite, implémentez votre fonction comme suit :

_Use_decl_annotations_
VOID
 MyCmDeactivateVcComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  CallMgrVcContext
    )
  {...}

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

Voir aussi

MiniportCoDeactivateVc

NdisCmCloseCallComplete

NdisCmDeactivateVc

ProtocolCmCloseCall