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