Функция 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 .
Возвращаемое значение
None
Remarks
Перед вызовом функции NdisMTerminateOffloadComplete целевой объект разгрузки должен записать одно из следующих значений NDIS_STATUS в элемент 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 | Любой уровень |