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


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, чтобы уведомить драйвер miniport о том, что выделение завершено для текущего пакета очередей получения. Это позволяет драйверу мини-порта распределять аппаратные ресурсы между несколькими очередями получения; При необходимости он может выделить ресурсы, например общую память, для очередей получения.

После того как драйвер мини-порта получит запрос 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

Один или несколько параметров, предоставленных драйвером overlying, были недопустимыми.

NDIS_STATUS_INVALID_LENGTH

Буфер сведений был слишком коротким. NDIS задает значение DATA. METHOD_INFORMATION. Элемент BytesNeeded в NDIS_OID_REQUEST структуру до минимального требуемого размера буфера.

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