NDIS_RECEIVE_THROTTLE_PARAMETERS结构 (ndis.h)
NDIS_RECEIVE_THROTTLE_PARAMETERS结构指定微型端口驱动程序应在延迟过程调用(DPC)中指示的最大 NET_BUFFER_LIST 结构数。
语法
typedef struct _NDIS_RECEIVE_THROTTLE_PARAMETERS {
ULONG MaxNblsToIndicate;
ULONG MoreNblsPending : 1;
} NDIS_RECEIVE_THROTTLE_PARAMETERS, *PNDIS_RECEIVE_THROTTLE_PARAMETERS;
成员
MaxNblsToIndicate
微型端口驱动程序应包含在接收指示中的最大 NET_BUFFER_LIST 结构数。 如果此值NDIS_INDICATE_ALL_NBLS,微型端口可以指示它拥有的所有NET_BUFFER_LIST结构。
MoreNblsPending
一个值,当 TRUE时,指定微型端口驱动程序在处理 MaxNblsToIndicate 成员中请求的 NDIS 的最大数目或结构后,该微型端口驱动程序具有挂起NET_BUFFER_LIST结构。
言论
MiniportInterruptDPC 和 的 ReceiveThrottleParameters 参数 MiniportMessageInterruptDPC DPC 处理程序函数指向NDIS_RECEIVE_THROTTLE_PARAMETERS结构。 此结构指定 NDIS 6.20 及更高版本中 接收端限制 (RST) 的参数。
在 DPC 处理程序的条目中,MaxNblsToIndicate NDIS_RECEIVE_THROTTLE_PARAMETERS 结构的成员指定微型端口驱动程序应在 DPC 中指示的最大 NET_BUFFER_LIST 结构数。 如果此值NDIS_INDICATE_ALL_NBLS,微型端口驱动程序可以指示其队列中具有的所有NET_BUFFER_LIST结构。
微型端口驱动程序处理指定的最大NET_BUFFER_LIST结构数后,微型端口驱动程序在其接收队列中可能有更多的数据包。 在这种情况下,微型端口驱动程序应将 moreNblsPending 成员 设置为 TRUE,并且不应在从 DPC 返回之前重新启用中断。 这适用于基于行的中断和消息偏差中断。
当 MaxNblsToIndicate 成员设置为NDIS_INDICATE_ALL_NBLS时,微型端口驱动程序应遵循以下准则:
- NDIS_INDICATE_ALL_NBLS值允许微型端口驱动程序确定它在 DPC 调用中指示的NET_BUFFER_LIST结构数。 这为微型端口驱动程序提供了以下选项:
- 微型端口驱动程序可以指示其接收队列中的所有挂起NET_BUFFER_LIST结构。
-
微型端口驱动程序可以限制它根据启发式指示的NET_BUFFER_LIST结构的数量,以避免在 DPC 调用中花费过多的时间。
具体而言,驱动程序应使用启发式来避免 DPC 超时,这是驱动程序在其 DPC 中花费的最大时间。 超时间隔到期时,系统会在系统上发生 bug 检查。 从 Windows 7 开始,DPC 超时为 10 秒。
- 微型端口驱动程序应在从 DPC 返回之前 将 MoreNblsPending 设置为 FALSE。 无论驱动程序在其接收队列中是否有挂起的NET_BUFFER_LIST结构尚未指示,驱动程序都应执行此作。
如果微型端口驱动程序使用多个 MSI 消息来区分不同的中断源,则它应忽略与接收指示无关的 MSI 消息的 ReceiveThrottleParameters 成员。 对于接收中断消息,微型端口驱动程序应指示最多 MaxNblsToIndicate NET_BUFFER_LIST 结构。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.20 及更高版本中受支持。 |
标头 | ndis.h (包括 Ndis.h) |