Partager via


W_INITIATE_OFFLOAD_HANDLER fonction de rappel (ndischimney.h)

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

MiniportInitiateOffload décharge l’état de cheminée TCP à partir de la pile hôte.

Syntaxe

W_INITIATE_OFFLOAD_HANDLER WInitiateOffloadHandler;

void WInitiateOffloadHandler(
  [in]      IN NDIS_HANDLE MiniportAdapterContext,
  [in, out] IN OUT PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
)
{...}

Paramètres

[in] MiniportAdapterContext

Handle vers une zone de contexte allouée à une cible de déchargement dans laquelle la cible de déchargement conserve les informations d’état sur cette instance de l’adaptateur. Le pilote miniport a fourni cette poignée à NDIS lorsqu’il a appelé NdisMSetMiniportAttributes à partir de son fonction MiniportInitializeEx.

[in, out] OffloadBlockList

Pointeur vers un NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure qui peut être une structure autonome ou la racine d’une liste liée de ces structures.

Valeur de retour

Aucun

Remarques

La fonction MiniportInitiateOffload stocke le pointeur OffloadBlockList, puis retourne. La cible de déchargement termine toujours l’opération de déchargement de façon asynchrone en appelant NdisMInitiateOffloadComplete. L’arborescence d’état pointée par le pointeur OffloadBlockList est valide jusqu’à ce que le pilote miniport appelle NdisMInitiateOffloadComplete.

Après le retour de sa fonction MiniportInitiateOffload, la cible de déchargement décharge l’état de l’arborescence d’état. Structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST dont MiniportOffloadContext membre pointe vers un emplacement de mémoire qui contient une valeur NULL est suivie de l’état à décharger. Pour plus d’informations, consultez stockage et référencement de l’état déchargé. L’en-tête membre d’une structure de NDIS_MINIPORT_OFFLOAD_BLOCK_LIST contient un membre Type qui spécifie le type d’état de déchargement et, par implication, la structure d’état de déchargement ou les structures, qui suivent immédiatement la structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST en mémoire.

La cible de déchargement décharge l’état de déchargement associé à une structure de NDIS_MINIPORT_OFFLOAD_BLOCK_LIST dans une zone de contexte de déchargement. Pour plus d’informations, consultez stockage et référencement de l’état déchargé.

Lors du déchargement de l’état, la cible de déchargement doit parcourir l’arborescence d’état en profondeur/largeur/largeur suivante. Il est essentiel qu’une cible de déchargement décharge l’état de cette façon.

Certaines des structures NDIS_MINIPORT_OFFLOAD_BLOCK_LIST dans l’arborescence d’état transmises à la fonction MiniportInitiateOffload peuvent être des espaces réservés ou des nœuds qui n’ont pas d’état associé à être déchargés. Pour plus d’informations, consultez espaces réservés, éditeurs de liens et nouveaux déchargements.

La cible de déchargement peut recevoir des données mises en mémoire tampon de la pile hôte pour une connexion en cours de déchargement. La cible de déchargement doit copier ces données dans sa propre mémoire tampon avant d’effectuer l’opération de déchargement. Pour plus d’informations sur le traitement des données de réception mises en mémoire tampon, consultez gestion des données de réception mises en mémoire tampon pendant et après une opération de déchargement.

Pour chaque objet d’état qu’il décharge, la cible de déchargement doit également fournir une valeur PVOID qui fait référence à la zone de contexte de déchargement dans laquelle la cible de déchargement stocke l’objet d’état. La cible de déchargement écrit cette valeur PVOID dans l’emplacement de mémoire vers lequel pointe le *MiniportOffloadContext membre de la structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST associée à l’état. Si la cible de déchargement n’a pas correctement déchargé l’état associé à la structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST, il ne doit pas écrire de valeur dans l’emplacement de mémoire vers lequel pointe le membre *MiniportOffloadContext. Pour plus d’informations, consultez stockage et référencement de l’état déchargé.

Exigences

Exigence Valeur
plateforme cible Windows
d’en-tête ndischimney.h (include Ndischimney.h)
IRQL N’importe quel niveau

Voir aussi

MiniportInitializeEx

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMInitiateOffloadComplete

NdisMSetMiniportAttributes