Partager via


PROTOCOL_CM_DEACTIVATE_VC_COMPLETE fonction de rappel (ndis.h)

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

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

Syntaxe

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE ProtocolCmDeactivateVcComplete;

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

Paramètres

[in] Status

Spécifie l’état final de la désactivation.

[in] CallMgrVcContext

Spécifie le handle d’une zone de contexte allouée au 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

Aucun

Remarques

NDIS appelle généralement ProtocolCmDeactivateVcComplete dans le contexte de la fermeture d’un appel du 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 par la suite sa fonction ProtocolCmDeactivateVcComplete.

Autrement dit, lorsque le pilote miniport orienté connexion sous-jacent a désactivé la vc, NDIS appelle ProtocolCmDeactivateVcComplete. L’état final de la désactivation se trouve dans Status . Les valeurs possibles pour l’état final incluent, mais ne sont pas limitées à :

ProtocolCmDeactivateVcComplete effectue le posttraitement nécessaire pour terminer la désactivation d’une connexion virtuelle, par exemple la définition d’indicateurs dans sa zone d’état pour indiquer que la connexion est inactive ou libère des ressources allouées dynamiquement utilisées pendant que la vc est active.

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

Les gestionnaires d’appels doivent libérer les ressources qui ont été allouées pour l’activation vc et retourner le contrôle 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é terminées, ProtocolCmDeactivateVcComplete doit maintenant appeler NdisCmCloseCallComplete.

exemples de

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 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 ProtocolCmDeactivateVcCom plete 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 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_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 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 ProtocolCmDeactivateVcComplete (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir ProtocolCmDeactivateVcComplete (NDIS 5.1)) dans Windows XP.
plateforme cible Windows
d’en-tête ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

MiniportCoDeactivateVc

NdisCmCloseCallComplete

NdisCmDeactivateVc

ProtocolCmCloseCall