OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE

NDIS 协议驱动程序 (OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE的 OID) 方法请求发出对象标识符,以通知微型端口驱动程序已完成当前一批接收队列的分配。

NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY结构的指针,该指针后跟每个队列的NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS结构。 成功从 OID 方法请求返回后,NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向相同结构数组的指针,每个NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS结构的 CompletionStatus 成员包含每个队列的完成状态。

注解

OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE 的 OID 方法请求对于 NDIS 6.20 及更高版本的微型端口驱动程序是可选的。 对于支持虚拟机队列的微型端口驱动程序, (VMQ) 接口是必需的。

分配一个或多个接收队列并选择性地设置初始筛选器后,协议驱动程序必须发出OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE的 OID 方法请求,以通知微型端口驱动程序当前一批接收队列的分配已完成。 这允许微型端口驱动程序在多个接收队列之间平衡硬件资源;如有必要,它可以为接收队列分配资源,例如共享内存。

微型端口驱动程序收到OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE请求并在队列上设置了筛选器后,队列将处于“正在运行”状态。 在此状态下,微型端口驱动程序可以通过调用 NdisMIndicateReceiveNetBufferLists 来启动队列中的数据包指示。

返回状态代码

微型端口驱动程序为 OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE 的 OID 方法请求返回以下状态代码之一。

状态代码 说明

NDIS_STATUS_SUCCESS

队列分配已完成。 信息缓冲区包含更新的 NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY 结构和参数结构,以及队列分配的完成状态。

NDIS_STATUS_PENDING

请求正在等待完成。 最终状态代码和结果将传递给调用方 OID 请求完成处理程序。

NDIS_STATUS_INVALID_PARAMETER

过度使用的驱动程序提供的一个或多个参数无效。

NDIS_STATUS_INVALID_LENGTH

信息缓冲区太短。 NDIS 设置数据METHOD_INFORMATIONNDIS_OID_REQUEST结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。

NDIS_STATUS_NOT_SUPPORTED

微型端口驱动程序的 NDIS 版本早于版本 6.20。

NDIS_STATUS_FAILURE

请求因其他原因而失败。

要求

版本

在 NDIS 6.20 及更高版本中受支持。

标头

Ntddndis.h (包括 Ndis.h)

另请参阅

NdisMIndicateReceiveNetBufferLists

NDIS_OID_REQUEST

NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY

NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS