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 成员包含每个队列的完成状态。

言论

对于 NDIS 6.20 和更高版本的微型端口驱动程序,OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE的 OID 方法请求是可选的。 支持虚拟机队列(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 设置 DATAMETHOD_INFORMATION。将 NDIS_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