NDIS_TCP_OFFLOAD_DISCONNECT_COMPLETE fonction de rappel (ndischimney.h)
[La fonctionnalité de déchargement de la cheminée TCP est déconseillée et ne doit pas être utilisée.]
Une cible de déchargement appelle la fonction NdisTcpOffloadDisconnectComplete pour effectuer une demande de déconnexion initiée par un appel précédent au Fonction MiniportTcpOffloadDisconnect de la cible de déchargement.
Syntaxe
NDIS_TCP_OFFLOAD_DISCONNECT_COMPLETE NdisTcpOffloadDisconnectComplete;
void NdisTcpOffloadDisconnectComplete(
[in] IN NDIS_HANDLE NdisMiniportHandle,
[in] IN PNET_BUFFER_LIST NetBufferList
)
{...}
Paramètres
[in] NdisMiniportHandle
Handle que la cible de déchargement obtenue dans un appel précédent à Fonction NdisMRegisterMiniportDriver .
[in] NetBufferList
Pointeur vers une structure NET_BUFFER_LIST unique. La cible de déchargement a obtenu ce pointeur en tant que paramètre d’entrée vers son Fonction MiniportTcpOffloadDisconnect .
Valeur de retour
None
Remarques
Fin d’une déconnexion abandonnée
Si la cible de déchargement a émis une déconnexion avortée, elle doit effectuer les opérations suivantes avant d’appeler la fonction NdisTcpOffloadDisconnectComplete :
- Effectuez toutes les demandes d’envoi en suspens sur la connexion avec une valeur status de NDIS_STATUS_REQUEST_ABORTED. La cible de déchargement écrit cette valeur status dans le membre Status de chaque structure NET_BUFFER_LIST dans la liste liée qu’elle transmet au Fonction NdisTcpOffloadSendComplete .
- Écrivez une valeur status dans le membre Status de la structure NET_BUFFER_LIST pointée par le pointeur NetBufferList. Une valeur status de NDIS_STATUS_SUCCESS indique que la cible de déchargement a correctement envoyé le segment RST. Pour obtenir une description des valeurs status autorisées, consultez NET_BUFFER_LIST.
Avant de terminer une demande de déconnexion avec grâce, la cible de déchargement doit :
-
Écrire une valeur status dans le membre Status de la structure NET_BUFFER_LIST qu’elle transmet au Fonction NdisTcpOffloadDisconnectComplete :
- La valeur NDIS_STATUS_SUCCESS indique que le segment FIN, ainsi que les données utilisateur, ont été envoyés avec succès par la cible de déchargement et ont également été reconnus par l’hôte distant.
- La valeur NDIS_STATUS_UPLOAD_IN_PROGRESS indique que la connexion TCP référencée par NdisMiniportHandle est en cours de chargement.
- La valeur NDIS_STATUS_REQUEST_ABORTED indique que le segment FIN et/ou les données utilisateur n’ont pas été correctement transmises par la cible de déchargement et reconnues par l’hôte distant. La pile hôte met fin au déchargement de la connexion TCP.
- Spécifiez le nombre d’octets de données utilisateur qui ont été envoyés et reconnus avec succès. Pour ce faire, la cible de déchargement appelle la macro NET_BUFFER_LIST_INFO avec un IDde TcpOffloadBytesTransferred.
- Appelez le Fonction NdisAdvanceNetBufferDataStart . Le paramètre NetBufferList doit pointer vers la structure NET_BUFFER associée à la structure NET_BUFFER_LIST que la cible de déchargement passe à la fonction NdisTcpOffloadDisconnectComplete . Le paramètre DataOffsetDelta doit spécifier le nombre d’octets de données de la structure NET_BUFFER qui ont été transmis par la cible de déchargement et qui ont également été reconnus avec succès par l’hôte distant. Le paramètre FreeMdl doit avoir la valeur NULL.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | ndischimney.h (inclure Ndischimney.h) |