Share via


Enumerando filtros de recebimento em uma porta virtual

Depois que uma VPort (porta virtual) é criada no comutador NIC do adaptador de rede, drivers e aplicativos de usuário excessivamente podem fazer o seguinte:

Para obter mais informações sobre como criar um VPort, consulte Criando uma porta virtual.

Enumerando filtros de recebimento

Para obter uma lista de todos os filtros de recebimento definidos em uma VPort (porta virtual) de um comutador NIC, drivers e aplicativos sobrepostos podem emitir solicitações de método OID (identificador de objeto) de 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 .

Antes que o driver ou aplicativo de usuário excessivamente emita essa solicitação de método OID, ele deve inicializar uma estrutura NDIS_RECEIVE_FILTER_INFO_ARRAY e definir os membros dessa estrutura da seguinte maneira:

  • O membro QueueId deve ser definido como NDIS_DEFAULT_RECEIVE_QUEUE_ID.

  • O membro VPortId deve ser definido como o identificador associado ao VPort. O driver de sobreposição obtém o identificador VPort por meio de uma das seguintes maneiras:

    Nota Esse membro só será válido se o driver ou aplicativo definir o sinalizador NDIS_RECEIVE_FILTER_INFO_ARRAY_VPORT_ID_SPECIFIED no membro Flags . Se esse sinalizador não estiver definido, serão retornados filtros de recebimento que foram definidos em cada VPort na opção NIC.

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 NDIS_RECEIVE_FILTER_INFO . Cada estrutura NDIS_RECEIVE_FILTER_INFO especifica o identificador exclusivo para o filtro de recebimento definido no VPort especificado.

Consultando um filtro de recebimento específico

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

O membro InformationBuffer da estrutura NDIS_OID_REQUEST inicialmente contém um ponteiro para uma estrutura NDIS_RECEIVE_FILTER_PARAMETERS .

Antes que o driver ou aplicativo de usuário excessivamente emita essa solicitação de método OID, ele deve inicializar uma estrutura NDIS_RECEIVE_FILTER_PARAMETERS e definir os membros dessa estrutura da seguinte maneira:

  • O membro FilterId deve ser definido como o valor do identificador diferente de zero do filtro cujos parâmetros devem ser retornados.

    Nota O driver sobreposto obteve o identificador de 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 o identificador de filtro somente de uma solicitação de método OID anterior de OID_RECEIVE_FILTER_ENUM_FILTERS.

  • O membro QueueId deve ser definido como NDIS_DEFAULT_RECEIVE_QUEUE_ID.

  • O membro VPortId deve ser definido como o identificador associado ao VPort. O driver de sobreposição obtém o identificador VPort por meio de uma das seguintes maneiras:

O NDIS manipula 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 recebidos do OID_RECEIVE_FILTER_SET_FILTER solicitação OID.