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.
- Effectuez les appels en suspens à MiniportInvalidateOffload, MiniportQueryOffload, MiniportTcpOffloadReceive, MiniportTcpOffloadDisconnect, MiniportTcpOffloadForward, MiniportTcpOffloadSend et Fonctions MiniportUpdateOffload .
- Vérifiez que tous les appels en attente à NdisMIndicateStatusEx, NdisMOffloadEventIndicate, NdisTcpOffloadEventHandler etLes fonctions NdisTcpOffloadReceiveHandler ont été retourné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
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 |