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,则指定微型端口驱动程序在处理 NDIS 在 MaxNblsToIndicate 成员中请求的最大数目或结构后具有挂起NET_BUFFER_LIST结构。
注解
MiniportInterruptDPC 和 的 ReceiveThrottleParameters 参数 MiniportMessageInterruptDPC DPC 处理程序函数指向NDIS_RECEIVE_THROTTLE_PARAMETERS结构。 此结构指定 NDIS 6.20 及更高版本中接收 方限制 (RST) 的参数。
进入 DPC 处理程序时,NDIS_RECEIVE_THROTTLE_PARAMETERS 结构的 MaxNblsToIndicate 成员指定微型端口驱动程序应在 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) |