Поделиться через


OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE

Драйверы протокола NDIS выдают запросы метода идентификатора объекта (OID) OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE, чтобы уведомить минипорт-драйвер о том, что выделение завершено для текущего пакета очередей получения.

Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на структуру NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY, за которой следует NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS структура для каждой очереди. После успешного возврата из запроса метода OID InformationBuffer элемент структуры NDIS_OID_REQUEST содержит указатель на один массив структур, а элемент CompletionStatus каждой NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS структуры содержит состояние завершения для каждой очереди.

Замечания

Запрос метода OID OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE необязателен для драйверов минипорта NDIS 6.20 и более поздних версий. Это обязательно для мини-драйверов, поддерживающих интерфейс очереди виртуальных машин (VMQ).

После выделения одной или нескольких очередей получения и при необходимости задания начальных фильтров драйвер протокола должен выдать запрос метода OID OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE, чтобы уведомить минипорт-драйвер о завершении выделения для текущего пакета очередей получения. Это позволяет мини-драйверу сбалансировать аппаратные ресурсы между несколькими очередями получения; При необходимости он может выделить такие ресурсы, как общая память для очередей получения.

После получения запроса OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE драйвера мини-порта и его фильтры, заданные в очереди, очередь находится в состоянии "Выполнение". В этом состоянии минипорт-драйвер может запускать указания пакетов в очереди путем вызова NdisMIndicateReceiveNetBufferLists.

Коды состояния возврата

Драйвер минипорта возвращает один из следующих кодов состояния для запроса метода OID OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE.

Код состояния Описание

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.элемент BytesNeededed в структуре NDIS_OID_REQUEST до минимального размера буфера, который требуется.

NDIS_STATUS_NOT_SUPPORTED

Версия NDIS мини-порта более ранняя, чем версия 6.20.

NDIS_STATUS_FAILURE

Запрос завершился ошибкой по другим причинам.

Требования

Версия

Поддерживается в NDIS 6.20 и более поздних версиях.

Заголовок

Ntddndis.h (include Ndis.h)

См. также

NdisMIndicateReceiveNetBufferLists

NDIS_OID_REQUEST

NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY

NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS