NdisMTerminateOffloadComplete, fonction (ndischimney.h)

[La fonctionnalité de déchargement de cheminée TCP est déconseillée et ne doit pas être utilisée.]

Une cible de déchargement appelle la fonction NdisMTerminateOffloadComplete pour terminer une opération de déchargement d’arrêt qui a été lancée par un appel précédent à la Fonction MiniportTerminateOffload de la cible de déchargement.

Syntaxe

void NdisMTerminateOffloadComplete(
  [in] IN NDIS_HANDLE                       NdisMiniportHandle,
  [in] IN PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
);

Paramètres

[in] NdisMiniportHandle

Handle auquel la cible de déchargement a obtenu lors d’un appel précédent NdisMRegisterMiniportDriver.

[in] OffloadBlockList

Pointeur vers un NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure. La cible de déchargement a obtenu ce pointeur en tant que paramètre d’entrée pour son Fonction MiniportTerminateOffload .

Valeur de retour

None

Remarques

Avant d’appeler la fonction NdisMTerminateOffloadComplete , la cible de déchargement doit écrire l’une des valeurs de NDIS_STATUS suivantes dans le membre Status de chaque structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST dans l’arborescence d’état :

  • NDIS_STATUS_SUCCESS

    La cible de déchargement a correctement arrêté le déchargement de l’objet d’état référencé par la structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST. Si la structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST est suivie d’une structure d’état délégué (XXX_OFFLOAD_STATE_DELEGATED), la cible de déchargement a correctement écrit les valeurs de variable déléguée pour cet objet d’état dans la structure d’état déléguée.

  • NDIS_STATUS_FAILURE

    L’opération d’arrêt n’a pas réussi. Un tel échec est dû à une défaillance catastrophique qui a entraîné la perte de l’objet d’état qui devait être arrêté. Dans ce cas, le matériel cible de déchargement peut ne pas répondre. La pile de l’hôte doit peut-être abandonner la connexion.

Avant d’appeler la fonction NdisMTerminateOffloadComplete , la cible de déchargement doit également : S’il existe des données d’envoi en attente sur une connexion TCP en cours d’arrêt, la cible de déchargement empaque ces données dans des mémoires tampons nettes et transmet les données empaquetées à la pile hôte dans une liste liée de structures NET_BUFFER_LIST . Dans ce cas, la cible de déchargement spécifie une valeur non NULL pour le membre NetBufferListChain de la structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST pour cette connexion. (La structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST se trouve dans la liste liée vers laquelle pointe le pointeur OffloadBlockList .) Le membre NetBufferListChain pointe vers la liste liée des structures NET_BUFFER_LIST auxquelles les données d’envoi sont associées.

Lors du passage de données d’envoi en attente à la pile hôte, la cible de déchargement doit également spécifier des valeurs non NULL pour les variables TCP déléguées suivantes pour la connexion en cours d’arrêt :

  • SndUna
  • SndNxt
  • SndMax
Pour plus d’informations sur la transmission des données d’envoi en attente, consultez Gestion des données d’envoi en attente pendant et après une opération de déchargement.

S’il n’y a pas de données d’envoi en attente sur une connexion TCP en cours d’arrêt, la cible de déchargement doit spécifier une valeur NULL pour le membre NetBufferListChain .

Il peut y avoir des données de réception en attente sur une connexion TCP en cours de chargement. Il s’agit des données que la cible de déchargement a reçues hors du réseau, traitées et reconnues. Pour plus d’informations sur le traitement de ces données, consultez Gestion des données de réception mises en mémoire tampon pendant une opération de déchargement d’arrêt.

La cible de déchargement libère toutes les ressources, telles que la mémoire, qui sont associées aux objets d’état terminés.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ndischimney.h (inclure Ndischimney.h)
IRQL N’importe quel niveau

Voir aussi

MiniportTerminateOffload

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMRegisterMiniportDriver

TCP_OFFLOAD_STATE_DELEGATED