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 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 de la cible de déchargement dans laquelle la cible de déchargement conserve des informations d’état sur cette instance de l’adaptateur. Le pilote miniport a fourni ce handle à 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

None

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.

Une fois retournée à partir de sa fonction MiniportInitiateOffload , la cible de déchargement décharge l’état de l’arborescence d’état. Une structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST dont le membre MiniportOffloadContext 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é. Le membre Header d’une structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST contient un membre Type qui spécifie le type d’état de déchargement et, par implication, la ou les structures d’état de déchargement 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 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 traverser l’arborescence d’état de manière profondeur-premier/largeur-suivant. 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 de l’arborescence d’état passées à la fonction MiniportInitiateOffload peuvent être des espaces réservés ou des nœuds de liaison qui n’ont pas d’état associé à décharger. 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’elle 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 désigné par le membre *MiniportOffloadContext de la structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST associée à l’état. Si la cible de déchargement n’a pas réussi à décharger l’état associé à la structure NDIS_MINIPORT_OFFLOAD_BLOCK_LIST, elle 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é.

Configuration requise

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

Voir aussi

MiniportInitializeEx

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMInitiateOffloadComplete

NdisMSetMiniportAttributes