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

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

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 структура в списке сопоставляется с цепочкой списков дескрипторов памяти (МНОГОМЕРНЫЕ выражения). Многомерные выражения содержат полученные данные. Многомерные ключи блокируются таким образом, чтобы они оставались резидентными, но они не сопоставляются с системной памятью.

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

[in] Status

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

[out] BytesConsumed

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

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

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

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

Замечания

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

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

Требования

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

См. также

MDL

NDIS_OFFLOAD_HANDLE

NET_BUFFER

NET_BUFFER_LIST

NdisInitiateOffload

NdisOffloadTcpReceiveReturn

NdisTcpOffloadReceiveHandler