функция обратного вызова 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 | Любой уровень |