指示 RSS 接收数据

微型端口驱动程序通过从其 MiniportInterruptDPC 函数调用 NdisMIndicateReceiveNetBufferLists 函数来指示接收的数据。

NIC 成功计算 RSS 哈希值后,驱动程序应使用以下宏将哈希类型、哈希函数和哈希值存储在 NET_BUFFER_LIST 结构中:

NET_BUFFER_LIST_SET_HASH_TYPE

NET_BUFFER_LIST_SET_HASH_FUNCTION

NET_BUFFER_LIST_SET_HASH_VALUE

哈希类型标识应计算哈希的接收数据包区域。 有关哈希类型的详细信息,请参阅 RSS 哈希类型。 哈希函数标识用于计算哈希值的函数。 有关哈希函数的详细信息,请参阅 RSS 哈希函数。 协议驱动程序在初始化时选择哈希类型和函数。 有关详细信息,请参阅 RSS 配置

如果 NIC 无法识别哈希类型指定的数据包区域,则不应执行任何哈希计算或缩放。 在这种情况下,微型端口驱动程序或 NIC 应将接收的数据分配给默认 CPU。

如果 NIC 用完接收缓冲区,则必须在原始接收 DPC 返回后立即返回每个缓冲区。 微型端口驱动程序可以指示接收的数据状态为NDIS_STATUS_RESOURCES。 在这种情况下,过度部署的驱动程序必须经历复制缓冲区描述符并立即放弃原始描述符所有权的缓慢路径。

有关接收网络数据的详细信息,请参阅 接收网络数据