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
指向要进行指示的 TCP 连接的协议或中间驱动程序 NDIS_OFFLOAD_HANDLE 结构的指针。 协议或中间驱动程序在卸载连接时将此指针作为输入参数提供给 NdisInitiateOffload 函数。
[in] NetBufferList
指向 NET_BUFFER_LIST 结构的指针。 每个 NET_BUFFER_LIST 结构都描述 NET_BUFFER 结构的列表。 列表中的每个 NET_BUFFER 结构映射到 内存描述符列表链, (MDL) 。 MDL 包含收到的数据。 MDL 已锁定,以便它们保持驻留状态,但不会映射到系统内存中。
NetBufferList 指定的NET_BUFFER_LIST结构必须是独立结构,不能是NET_BUFFER_LIST结构链接列表中的第一个结构。 卸载目标可以通过根据需要将尽可能多的 MDL 链接到卸载接收指示中的同一 NET_BUFFER 来绕过此限制。
[in] Status
中间驱动程序应在调用时传播此状态 NdisTcpOffloadReceiveHandler。
[out] BytesConsumed
指向 ULONG 类型变量的指针,该变量接收客户端应用程序使用的字节数。
返回值
The ProtocolTcpOffloadReceiveIndicate 函数可以返回以下值之一:
返回代码 | 说明 |
---|---|
|
客户端应用程序已使用所有指示的接收数据。 |
|
客户端应用程序拒绝了所有指示的接收数据。 |
|
客户端应用程序使用指示的接收数据的子集。 客户端应用程序使用的数据量(以字节为单位)在 BytesConsumed 参数指定的变量中返回。 |
注解
若要将指示传播到过度的驱动程序或主机堆栈,中间驱动程序调用 NdisTcpOffloadReceiveHandler 函数。 中间驱动程序将以下参数传递给 NdisTcpOffloadReceiveHandler 函数:
- 卸载目标存储在其上下文中用于卸载 TCP 连接的 NdisOffloadHandle 。 有关详细信息,请参阅 通过中间驱动程序引用卸载状态。
- NDIS 传递给中间驱动程序的 ProtocolTcpOffloadReceiveIndicate 函数的 NetBufferList 指针。
- NDIS 传递到中间驱动程序的 ProtocolTcpOffloadReceiveIndicate 函数的状态。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | ndischimney.h (包括 Ndischimney.h) |