Функция NdisMTerminateOffloadComplete (ndischimney.h)
[Функция разгрузки дымохода TCP не рекомендуется и не должна использоваться.]
Целевой объект разгрузки вызывает функцию NdisMTerminateOffloadComplete для завершения операции разгрузки, инициированной предыдущим вызовом функцию MiniportTerminateOffload целевого объекта разгрузки.
Синтаксис
void NdisMTerminateOffloadComplete(
[in] IN NDIS_HANDLE NdisMiniportHandle,
[in] IN PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
);
Параметры
[in] NdisMiniportHandle
Дескриптор, полученный в предыдущем вызове целевого объекта разгрузки. NdisMRegisterMiniportDriver.
[in] OffloadBlockList
Указатель на объект структура NDIS_MINIPORT_OFFLOAD_BLOCK_LIST. Целевой объект разгрузки получил этот указатель в качестве входного параметра для его функция MiniportTerminateOffload.
Возвращаемое значение
Никакой
Замечания
Перед вызовом функции NdisMTerminateOffloadComplete целевой объект разгрузки должен записывать одно из следующих значений NDIS_STATUS в элемент состояния члена каждой структуры NDIS_MINIPORT_OFFLOAD_BLOCK_LIST в дереве состояний:
-
NDIS_STATUS_SUCCESS
Целевой объект разгрузки успешно завершил разгрузку объекта состояния, на который ссылается структура NDIS_MINIPORT_OFFLOAD_BLOCK_LIST. Если за структурой NDIS_MINIPORT_OFFLOAD_BLOCK_LIST следует делегированная структура состояния (XXX_OFFLOAD_STATE_DELEGATED), целевой объект разгрузки успешно написал делегированные значения переменной для этого объекта состояния в делегированную структуру состояния.
-
NDIS_STATUS_FAILURE
Операция завершения не завершилась успешно. Такая ошибка вызвана катастрофическим сбоем, что привело к потере объекта состояния, который должен был быть завершен. В этом случае целевое оборудование разгрузки может не отвечать. В стеке узлов может потребоваться прервать подключение.
- Выполните все невыполненные вызовы MiniportInvalidateOffload, MiniportQueryOffload, MiniportTcpOffloadReceive, MiniportTcpOffloadDisconnect, MiniportTcpOffloadForward, MiniportTcpOffloadSendи функции MiniportUpdateOffload.
- Убедитесь, что все невыполненные вызовы NdisMIndicateStatusEx, NdisMOffloadEventIndicate, NdisTcpOffloadEventHandlerи функции NdisTcpOffloadReceiveHandler возвращаются.
При передаче невыполненных данных отправки в стек узла целевой объект разгрузки также должен указывать значения, отличные отNULL, для следующих делегированных переменных TCP для завершения подключения:
- SndUna
- SndNxt
- SndMax
Если не существует незавершенных данных отправки для завершающегося TCP-подключения, целевой объект разгрузки должен указать значение NULL для члена NetBufferListChain.
При отправке TCP-подключения могут быть неоплаченные данные. Это данные, которые целевой объект разгрузки получил от провода, обработки и подтверждения. Дополнительные сведения об обработке таких данных см. в разделе обработка буферизованного получения данных во время операции завершения разгрузки.
Целевой объект разгрузки освобождает все ресурсы, такие как память, связанные с завершенными объектами состояния.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | ndischimney.h (включая Ndischimney.h) |
IRQL | Любой уровень |