Enumerando filtros em uma VMQ

Para obter uma lista de todos os filtros que são definidos em uma fila de recebimento, os drivers e aplicativos sobrepostos podem usar a solicitação OID (identificador de objeto) do método 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 como o identificador (ID) da fila de recebimento. A ID da fila de recebimento é obtida das seguintes maneiras:

  • O driver sobreposto obteve o valor da ID da fila de recebimento de solicitações de método OID anteriores de 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 da 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 de NDIS_RECEIVE_FILTER_INFO_ARRAY atualizada seguida por uma ou mais estruturas de NDIS_RECEIVE_FILTER_INFO . Cada estrutura NDIS_RECEIVE_FILTER_INFO especifica a ID de um filtro definido na fila de recebimento especificada.

Drivers ou aplicativos sobrepostos podem usar o OID_RECEIVE_FILTER_PARAMETERS solicitação de método OID para obter os parâmetros de um filtro específico em uma fila de recebimento.

O membro InformationBuffer 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 como o valor de ID diferente de zero do filtro cujos parâmetros devem ser retornados.

Nota O driver sobreposto obteve a ID do filtro de uma solicitação de método OID anterior de OID_RECEIVE_FILTER_SET_FILTER ou OID_RECEIVE_FILTER_ENUM_FILTERS. O aplicativo pode obter a ID do filtro somente de uma solicitação de método OID anterior de OID_RECEIVE_FILTER_ENUM_FILTERS.

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