OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE
Os drivers de protocolo NDIS emitem solicitações de método OID (identificador de objeto) de OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE para notificar o driver de miniporto de que uma alocação foi concluída para o lote atual de filas de recebimento.
O membro InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para uma estrutura NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY seguida por uma estrutura NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS para cada fila. Após um retorno bem-sucedido da solicitação do método OID, o membro InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para a mesma matriz de estruturas e o membro CompletionStatus de cada estrutura NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS contém o status de conclusão para cada fila.
Comentários
A solicitação de método OID de OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE é opcional para drivers de miniporta NDIS 6.20 e posteriores. É obrigatório para drivers de miniporta que dão suporte à interface VMQ (fila de máquina virtual).
Depois de alocar uma ou mais filas de recebimento e, opcionalmente, definir os filtros iniciais, o driver de protocolo deve emitir a solicitação de método OID de OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE para notificar o driver de miniporto de que a alocação foi concluída para o lote atual de filas de recebimento. Isso permite que o driver de miniporto equilibre os recursos de hardware entre várias filas de recebimento; se necessário, ele pode alocar recursos como memória compartilhada para as filas de recebimento.
Depois que um driver de miniporto recebe uma solicitação de OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE e tem filtros definidos na fila, a fila está no estado Em execução. Nesse estado, o driver de miniporto pode iniciar indicações de pacotes na fila chamando NdisMIndicateReceiveNetBufferLists.
Códigos de status de retorno
O driver de miniporta retorna um dos seguintes códigos de status para a solicitação de método OID de OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE.
Código de status | Descrição |
---|---|
NDIS_STATUS_SUCCESS |
A alocação de fila foi concluída. O buffer de informações contém a estrutura de NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY atualizada e as estruturas de parâmetros com o status de conclusão para a alocação da fila. |
NDIS_STATUS_PENDING |
A solicitação está pendente de conclusão. O código de status final e os resultados serão passados para o manipulador de conclusão de solicitação OID do chamador. |
NDIS_STATUS_INVALID_PARAMETER |
Um ou mais dos parâmetros fornecidos pelo driver em excesso não eram válidos. |
NDIS_STATUS_INVALID_LENGTH |
O buffer de informações era muito curto. O NDIS define os DADOS. METHOD_INFORMATION. Membro BytesNeeded na estrutura NDIS_OID_REQUEST para o tamanho mínimo do buffer necessário. |
NDIS_STATUS_NOT_SUPPORTED |
A versão NDIS do driver de miniporto é anterior à versão 6.20. |
NDIS_STATUS_FAILURE |
A solicitação falhou por outros motivos. |
Requisitos
Versão |
Com suporte no NDIS 6.20 e posterior. |
Cabeçalho |
Ntddndis.h (inclua Ndis.h) |
Confira também
NdisMIndicateReceiveNetBufferLists