Partilhar via


Enumerando filtros em um VMQ

Para obter uma lista de todos os filtros definidos numa fila de receção, controladores e aplicações subjacentes podem utilizar o pedido de identificador de objeto de método OID OID_RECEIVE_FILTER_ENUM_FILTERS.

O membro InformationBuffer da estrutura NDIS_OID_REQUEST inicialmente contém um ponteiro para uma estrutura NDIS_RECEIVE_FILTER_INFO_ARRAY. Quando formata a estrutura NDIS_RECEIVE_FILTER_INFO_ARRAY, o driver ou aplicativo sobreposto deve definir o membro QueueId para o identificador (ID) da fila de recebimento. O ID da fila de recebimento é obtido das seguintes maneiras:

  • O driver sobreposto obteve o valor do ID da fila de receção a partir de métodos OID de chamadas anteriores, como OID_RECEIVE_FILTER_ALLOCATE_QUEUE ou OID_RECEIVE_FILTER_ENUM_QUEUES. O driver também pode especificar NDIS_DEFAULT_RECEIVE_QUEUE_ID para a fila de recebimento padrão.

  • Um aplicativo obteve o valor de ID da fila de recebimento de uma solicitação de método OID anterior de OID_RECEIVE_FILTER_ENUM_QUEUES. O aplicativo também pode especificar NDIS_DEFAULT_RECEIVE_QUEUE_ID para a fila de recebimento padrão.

Após um retorno bem-sucedido da solicitação de método OID de OID_RECEIVE_FILTER_ENUM_FILTERS, o membro InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para uma estrutura atualizada NDIS_RECEIVE_FILTER_INFO_ARRAY que é seguida por uma ou mais estruturas NDIS_RECEIVE_FILTER_INFO. Cada estrutura NDIS_RECEIVE_FILTER_INFO especifica a ID de um filtro definido na fila de recebimento especificada.

Drivers ou aplicações sobrepostas podem usar a solicitação de método OID OID_RECEIVE_FILTER_PARAMETERS para obter os parâmetros de um filtro específico numa fila de receção.

O InformationBuffer membro da estrutura NDIS_OID_REQUEST inicialmente contém um ponteiro para uma estrutura NDIS_RECEIVE_FILTER_PARAMETERS. O driver ou aplicativo sobreposto formata a estrutura NDIS_RECEIVE_FILTER_PARAMETERS definindo o membro FilterId para o valor de ID não nulo do filtro cujos parâmetros serão retornados.

Observação O driver subjacente obteve o ID do filtro de uma solicitação de método OID anterior de OID_RECEIVE_FILTER_SET_FILTER ou OID_RECEIVE_FILTER_ENUM_FILTERS. A aplicação pode obter o ID do filtro apenas a partir de uma requisição de método OID anterior de OID_RECEIVE_FILTER_ENUM_FILTERS.

O NDIS lida com as solicitações OID do método OID_RECEIVE_FILTER_ENUM_FILTERS e OID_RECEIVE_FILTER_PARAMETERS para drivers de miniporta. O NDIS obteve as informações de um cache interno dos dados que recebeu da solicitação OID_RECEIVE_FILTER_SET_FILTER OID.