PROTOCOL_CL_INCOMING_CLOSE_CALL fonction de rappel (ndis.h)
La fonction ProtocolClIncomingCloseCall est utilisée par tous les clients NDIS orientés connexion. Tous ces clients doivent avoir des fonctions ProtocolClIncomingCloseCall entièrement fonctionnelles .
Syntaxe
PROTOCOL_CL_INCOMING_CLOSE_CALL ProtocolClIncomingCloseCall;
void ProtocolClIncomingCloseCall(
[in] NDIS_STATUS CloseStatus,
[in] NDIS_HANDLE ProtocolVcContext,
[in] PVOID CloseData,
[in] UINT Size
)
{...}
Paramètres
[in] CloseStatus
Spécifie la status qui indique la cause de la désactivation de la connexion, qui est généralement NDIS_STATUS_SUCCESS pour indiquer que la partie distante à l’appel a demandé que la connexion soit fermée. Toute autre valeur indique que des problèmes sur le réseau ont provoqué l’arrêt de la connexion par le gestionnaire d’appels.
[in] ProtocolVcContext
Spécifie le handle de la zone de contexte par vc du client pour le vc sur lequel la connexion est fermée. Quelle que soit la valeur de CloseStatus, le client ne peut ni envoyer ni recevoir de données sur le vc désigné par le NdisVcHandle qu’il a stocké dans cette zone de contexte.
[in] CloseData
Pointeur vers une mémoire tampon contenant un message de fermeture spécifique au protocole, éventuellement fourni par le client distant que le gestionnaire d’appels a reçu sur le réseau, ou ce paramètre peut avoir la valeur NULL.
Lorsque CloseStatus est NDIS_STATUS_SUCCESS, ce paramètre a la valeur NULL si le support réseau sous-jacent ne prend pas en charge les transferts de données lors de la fermeture d’une connexion. Toutefois, un gestionnaire d’appels particulier peut définir une structure pour transmettre des informations de diagnostic supplémentaires à ses clients lors des coupures d’appel provoquées par des problèmes sur le réseau.
[in] Size
Spécifie la taille en octets de la mémoire tampon dans CloseData, zéro si CloseData a la valeur NULL.
Valeur de retour
None
Remarques
Un appel à ProtocolClIncomingCloseCall indique que l’un des éléments suivants s’est produit :
- Le gestionnaire d’appels a reçu une demande sur le réseau pour fermer une connexion établie, identifiée par le NdisVcHandle que le client a stocké dans sa zone de contexte par vc sur ProtocolVcContext .
- Le gestionnaire d’appels a détecté que des problèmes réseau empêchent d’autres transferts de données sur la connexion établie.
Que le vc donné soit une connexion monopoint ou multipoint, ProtocolClIncomingCloseCall doit appeler NdisClCloseCall pour confirmer que le client n’essaiera pas d’envoyer ou de s’attendre à recevoir des données sur ce vc particulier. Si le gestionnaire d’appels a créé ce vc, ProtocolClIncomingCloseCall doit retourner le contrôle après l’appel de NdisClCloseCall. Il est de la responsabilité du gestionnaire d’appels de détruire ou de réutiliser les justificatifs vérifiables qu’il a créés.
Si le client a initialement créé ce vc pour un appel sortant, ProtocolClIncomingCloseCall peut effectuer l’une des opérations suivantes après avoir appelé NdisClDropParty autant de fois que nécessaire, le cas échéant, et NdisClCloseCall :
- Si CloseStatus est NDIS_STATUS_SUCCESS, démontez le vc avec NdisCoDeleteVc et libérez la zone de contexte par vc du client ou préparez-la à la réutiliser lors d’un appel ultérieur à NdisCoCreateVc.
- Si CloseStatus est NDIS_STATUS_SUCCESS, conservez le vc créé par le client et préparez sa zone de contexte par vc pour la réutilisation dans un appel ultérieur à NdisClMakeCall.
- Sinon, démontez le vc avec NdisCoDeleteVc et relâchez sa zone de contexte par vc si le gestionnaire d’appels a indiqué que le réseau est devenu inopérant.
Exemples
Pour définir une fonction ProtocolClIncomingCloseCall , 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 ProtocolClIncomingCloseCall nommée « MyClIncomingCloseCall », utilisez le type PROTOCOL_CL_INCOMING_CLOSE_CALL comme indiqué dans cet exemple de code :
PROTOCOL_CL_INCOMING_CLOSE_CALL MyClIncomingCloseCall;
Ensuite, implémentez votre fonction comme suit :
_Use_decl_annotations_
VOID
MyClIncomingCloseCall(
NDIS_STATUS CloseStatus,
NDIS_HANDLE ProtocolVcContext,
PVOID CloseData,
UINT Size
)
{...}
Le type de fonction PROTOCOL_CL_INCOMING_CLOSE_CALL 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_INCOMING_CLOSE_CALL 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 ProtocolClIncomingCloseCall (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir ProtocolClIncomingCloseCall (NDIS 5.1)) dans Windows XP. |
Plateforme cible | Windows |
En-tête | ndis.h (inclure Ndis.h) |
IRQL | <= DISPATCH_LEVEL |