Partager via


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.
Fin d’une déconnexion normale

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.
Notez que la fonction NdisTcpOffloadDisconnectComplete retourne uniquement la structure NET_BUFFER_LIST et les structures associées que NDIS a transmises à la cible de déchargement Fonction MiniportTcpOffloadDisconnect . La fonction NdisTcpOffloadDisconnectComplete ne peut pas retourner NET_BUFFER_LIST structures que NDIS a passées dans les appels précédents à la cible de déchargement Fonction MiniportTcpOffloadSend .

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ndischimney.h (inclure Ndischimney.h)

Voir aussi

MiniportTcpOffloadDisconnect

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

NdisAdvanceNetBufferDataStart

NdisMRegisterMiniportDriver

NdisTcpOffloadSendComplete