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 设置 DATA。METHOD_INFORMATION。将 NDIS_OID_REQUEST 结构中的 BytesNeeded成员 到所需的最小缓冲区大小。 |
NDIS_STATUS_NOT_SUPPORTED |
微型端口驱动程序的 NDIS 版本低于版本 6.20。 |
NDIS_STATUS_FAILURE |
由于其他原因,请求失败。 |
要求
版本 |
NDIS 6.20 及更高版本中受支持。 |
页眉 |
Ntddndis.h (包括 Ndis.h) |
另请参阅
NdisMIndicateReceiveNetBufferLists