Поделиться через


функция обратного вызова W_INITIATE_OFFLOAD_HANDLER (ndischimney.h)

[Функция разгрузки дымохода TCP не рекомендуется и не должна использоваться.]

MiniportInitiateOffload выгрузит состояние tcp-трубы из стека узлов.

Синтаксис

W_INITIATE_OFFLOAD_HANDLER WInitiateOffloadHandler;

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

Параметры

[in] MiniportAdapterContext

Дескриптор выделенной области контекста для разгрузки, в которой целевой объект разгрузки сохраняет сведения о состоянии этого экземпляра адаптера. Минипорт драйвер предоставил этот дескриптор NDIS при вызове NdisMSetMiniportAttributes из нее функция MiniportInitializeEx.

[in, out] OffloadBlockList

Указатель на объект NDIS_MINIPORT_OFFLOAD_BLOCK_LIST структуру, которая может быть автономной структурой или корнем связанного списка таких структур.

Возвращаемое значение

Никакой

Замечания

Функция MiniportInitiateOffload сохраняет указатель OffloadBlockList, а затем возвращает. Целевой объект разгрузки всегда завершает операцию разгрузки асинхронно путем вызова вызова NdisMInitiateOffloadComplete. Дерево состояния, на которое указывает указатель OffloadBlockList, действителен до тех пор, пока драйвер мини-порта не вызывает NdisMInitiateOffloadComplete.

После возвращения из функции MiniportInitiateOffload выгрузка целевого объекта разгрузки из дерева состояний. Структура NDIS_MINIPORT_OFFLOAD_BLOCK_LIST, за которой MiniportOffloadContext указывает на расположение памяти, содержащее значение NULL, за которым следует выгрузить состояние. Дополнительные сведения см. в хранении и ссылке на отключенное состояние. Элемент заголовка структуры NDIS_MINIPORT_OFFLOAD_BLOCK_LIST содержит элемент типа, указывающий тип состояния разгрузки и, по сути, выгрузить структуру состояния или структуры, которые немедленно следуют NDIS_MINIPORT_OFFLOAD_BLOCK_LIST структуре в памяти.

Целевой объект разгрузки загружает состояние разгрузки, связанное с структурой NDIS_MINIPORT_OFFLOAD_BLOCK_LIST в область контекста разгрузки. Дополнительные сведения см. в хранении и ссылке на отключенное состояние.

При отключении состояния целевой объект разгрузки должен пройти по дереву состояний в глубины и ширины следующей моды. Важно, чтобы состояние разгрузки целевого объекта разгрузки было таким образом.

Некоторые структуры NDIS_MINIPORT_OFFLOAD_BLOCK_LIST в дереве состояний, передаваемые в функцию MiniportInitiateOffload, могут быть заполнителями или связыванием узлов, которые не имеют сопутствующего состояния для разгрузки. Дополнительные сведения см. в разделе Заполнители, компоновщики и новые разгрузки.

Целевой объект разгрузки может получать буферированные данные из стека узлов для разгрузки подключения. Целевой объект разгрузки должен скопировать эти данные в собственный буфер перед завершением операции разгрузки. Дополнительные сведения об обработке буферизованного получения данных см. в разделе обработка буферизованного получения данных во время и после операции разгрузки.

Для каждого объекта состояния, который он выгружает, целевой объект разгрузки должен также предоставить значение PVOID, которое ссылается на область контекста разгрузки, в которой целевой объект разгрузки сохраняет объект состояния. Целевой объект разгрузки записывает это значение PVOID в расположение памяти, на которое указывает *MiniportOffloadContext член структуры NDIS_MINIPORT_OFFLOAD_BLOCK_LIST, связанной с состоянием. Если целевой объект разгрузки не успешно выгрузил состояние, связанное со структурой NDIS_MINIPORT_OFFLOAD_BLOCK_LIST, он не должен записывать значение в расположение памяти, на которое указывает элемент *MiniportOffloadContext. Дополнительные сведения см. в хранении и ссылке на отключенное состояние.

Требования

Требование Ценность
целевая платформа Виндоус
заголовка ndischimney.h (включая Ndischimney.h)
IRQL Любой уровень

См. также

MiniportInitializeEx

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMInitiateOffloadComplete

NdisMSetMiniportAttributes