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