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 disposer de 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 l’état qui indique la cause de la fermeture de la connexion, qui est généralement NDIS_STATUS_SUCCESS pour indiquer que le tiers distant à l’appel a demandé que la connexion soit fermée. Toute autre valeur indique que les 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 la vc sur laquelle la connexion est fermée. Quelle que soit la valeur de CloseStatus, le client ne peut ni envoyer ni recevoir de données sur la vc désignée 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 un pointeur fourni par le client distant reçu par le gestionnaire d’appels sur le réseau, ou ce paramètre peut être NULL.
Lorsque closeStatus est NDIS_STATUS_SUCCESS, ce paramètre est 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, tout gestionnaire d’appels particulier peut définir une structure pour transmettre des informations de diagnostic supplémentaires à ses clients lors de la destruction des appels causées par des problèmes sur le réseau.
[in] Size
Spécifie la taille en octets de la mémoire tampon à CloseData, zéro si CloseData est NULL.
Valeur de retour
Aucun
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 à ProtocolVcContext.
- Le gestionnaire d’appels a détecté que les problèmes réseau empêchent d’autres transferts de données sur la connexion établie.
Que le vc donné soit une connexion à un seul point ou à plusieurs points, ProtocolClIncomingCloseCall devez appeler NdisClCloseCall pour reconnaître que le client ne tentera pas d’envoyer ni d’attendre de recevoir des données sur ce vc particulier. Si le gestionnaire d’appels a créé cette vc, ProtocolClIncomingCloseCall doit retourner le contrôle après qu’il appelle NdisClCloseCall. Il incombe au gestionnaire d’appels de détruire ou de réutiliser tout vc qu’il a créé.
Si le client a créé initialement cette vc pour un appel sortant, ProtocolClIncomingCloseCall peut effectuer l’une des opérations suivantes après qu’elle appelle NdisClDropParty autant de fois que nécessaire, le cas échéant, et NdisClCloseCall:
- Si closeStatus est NDIS_STATUS_SUCCESS, démontez la vc avec NdisCoDeleteVc et relâchez la zone de contexte par VC du client ou préparez-la à la réutiliser dans un appel ultérieur à NdisCoCreateVc.
- Si closeStatus est NDIS_STATUS_SUCCESS, conservez la vc que le client a créée et préparez sa zone de contexte par vc à réutiliser dans un appel ultérieur à NdisClMakeCall.
- Sinon, démontez la 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 de
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 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 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 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_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 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 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 |
d’en-tête | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |