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


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

[Функция разгрузки tcp chimney является устаревшей и не должна использоваться.]

NDIS вызывает драйвер протокола или драйвер промежуточного уровня Функция ProtocolTcpOffloadReceiveIndicate для доставки полученных данных, на которые указывает базовый драйвер или целевой объект разгрузки.

Синтаксис

TCP_OFFLOAD_RECEIVE_INDICATE_HANDLER TcpOffloadReceiveIndicateHandler;

NDIS_STATUS TcpOffloadReceiveIndicateHandler(
  [in]  IN PVOID OffloadContext,
  [in]  IN PNET_BUFFER_LIST NetBufferList,
  [in]  IN NDIS_STATUS Status,
  [out] OUT PULONG BytesConsumed
)
{...}

Параметры

[in] OffloadContext

Указатель на структуру NDIS_OFFLOAD_HANDLE протокола или промежуточного драйвера для TCP-подключения, по которому производится указание. Протокол или промежуточный драйвер предоставил этот указатель в качестве входного параметра для функции NdisInitiateOffload при разгрузке подключения.

[in] NetBufferList

Указатель на структуру NET_BUFFER_LIST . Каждая NET_BUFFER_LIST структура описывает список NET_BUFFER структур. Каждая NET_BUFFER структура в списке сопоставляется с цепочкой списков дескрипторов памяти (MDL). Многомерные списки содержат полученные данные. Многомерные списки заблокированы, чтобы они оставались резидентными, но не сопоставляются с системной памятью.

Структура NET_BUFFER_LIST , определяемая NetBufferList , должна быть автономной и не может быть первой структурой в связанном списке NET_BUFFER_LIST структур. Целевые объекты разгрузки могут обойти это ограничение, связав столько многомерных выражений, сколько необходимо, к одному и тому же NET_BUFFER в индикаторе получения разгрузки.

[in] Status

Промежуточный драйвер должен распространять это состояние при вызове NdisTcpOffloadReceiveHandler.

[out] BytesConsumed

Указатель на переменную типа ULONG, получающую количество байтов, использованных клиентским приложением.

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

TheФункция ProtocolTcpOffloadReceiveIndicate может возвращать одно из следующих значений:

Код возврата Описание
NDIS_STATUS_SUCCESS
Клиентское приложение использовало все указанные данные получения.
NDIS_STATUS_OFFLOAD_DATA_NOT_ACCEPTED
Клиентское приложение отклонило все указанные данные получения.
NDIS_STATUS_OFFLOAD_DATA_PARTIALLY_ACCEPTED
Клиентское приложение использовало подмножество указанных данных получения. Объем данных в байтах, использованный клиентским приложением, возвращается в переменной, заданной параметром BytesConsumed .

Комментарии

Чтобы распространить указание на вышестоящий драйвер или стек узлов, промежуточный драйвер вызываетФункция NdisTcpOffloadReceiveHandler. Промежуточный драйвер передает следующие параметры в функцию NdisTcpOffloadReceiveHandler :

  • NdisOffloadHandle, который целевой объект разгрузки хранится в контексте для разгрузки TCP-подключения. Дополнительные сведения см. в разделе Ссылка на состояние разгрузки через промежуточный драйвер.
  • Указатель NetBufferList , переданный NDIS функции ProtocolTcpOffloadReceiveIndicate промежуточного драйвера.
  • Состояние, переданное NDIS функции ProtocolTcpOffloadReceiveIndicate промежуточного драйвера.

Требования

Требование Значение
Целевая платформа Windows
Header ndischimney.h (включая Ndischimney.h)

См. также раздел

MDL

NDIS_OFFLOAD_HANDLE

NET_BUFFER

NET_BUFFER_LIST

NdisInitiateOffload

NdisOffloadTcpReceiveReturn

NdisTcpOffloadReceiveHandler