Partilhar via


OID_SWITCH_NIC_REQUEST

Uma solicitação de método de identificador de objeto (OID) de OID_SWITCH_NIC_REQUEST é usada para encapsular e encaminhar solicitações OID para o adaptador de rede externo de switch extensível Hyper-V. Isso permite que a solicitação OID encapsulada seja entregue ao driver para o adaptador de rede física subjacente que está vinculado ao adaptador de rede externo.

Essa solicitação OID também é usada para encapsular solicitações OID que foram emitidas para outros adaptadores de rede que estão conectados a portas de switch extensíveis. Nesse caso, a solicitação OID encapsulada é encaminhada através da pilha de driver de switch extensível para inspeção por extensões.

O InformationBuffer membro da estrutura NDIS_OID_REQUEST contém um ponteiro para uma estrutura NDIS_SWITCH_NIC_OID_REQUEST. Essa estrutura especifica as informações de encaminhamento para a solicitação OID. Essa estrutura também contém um ponteiro para a estrutura NDIS_OID_REQUEST original da solicitação OID que está sendo encaminhada.

Comentários

Quando as solicitações OID chegam à interface de switch extensível Hyper-V, ela as encapsula para encaminhá-las pelo caminho de controle do switch extensível. Essas solicitações OID incluem o seguinte:

  • O hardware descarrega solicitações OID, incluindo solicitações de IPsec (segurança do protocolo Internet), fila de máquinas virtuais (VMQ) e virtualização de E/S de raiz única (SR-IOV). Essas solicitações OID são emitidas por um protocolo sobreposto ou driver de filtro que é executado no sistema operacional de gerenciamento da partição pai Hyper-V.

    Quando essas solicitações OID chegam à interface do switch extensível, a borda do protocolo do switch extensível encapsula a solicitação OID dentro de uma estrutura NDIS_SWITCH_NIC_OID_REQUEST. A borda do protocolo define os membros dessa estrutura da seguinte maneira:

    • Os membros DestinationPortId e DestinationNicIndex são definidos com os valores correspondentes para o adaptador de rede externo.

    • Se a solicitação OID foi originada de uma partição filho Hyper-V, os membros SourcePortId e SourceNicIndex são definidos para os valores correspondentes para a porta e o adaptador de rede usados pela partição. Caso contrário, os membros SourcePortId e SourceNicIndex serão definidos como zero.

      Nota A extensão deve manter os valores desses membros se encaminhar ou redirecionar a solicitação OID.

    • O membro OidRequest é definido como um ponteiro para a estrutura NDIS_OID_REQUEST para a solicitação OID encapsulada.

    Em seguida, a borda do protocolo emite a solicitação de OID_SWITCH_NIC_REQUEST para encaminhar a solicitação OID encapsulada pelo caminho de controle do switch extensível para o adaptador de rede externo.

    Uma extensão de encaminhamento subjacente pode redirecionar solicitações OID de descarregamento de hardware encapsulado para um adaptador de rede físico vinculado ao adaptador de rede externo. Por exemplo, se a extensão oferecer suporte a adaptadores de rede física de uma equipe de switch extensível que estão vinculados ao adaptador de rede externo, ela poderá encaminhar a solicitação de OID_SWITCH_NIC_REQUEST para um adaptador físico na equipe de failover de balanceamento de carga (LBFO) que suporta o descarregamento de hardware. Para obter mais informações sobre este procedimento, consulte Managing Hardware Offload OID Requests to Physical Network Adapters.

    Para obter mais informações sobre equipes de switch extensíveis, consulte tipos de configurações de adaptador de rede físico.

  • Solicitações OID multicast, incluindo OID_802_3_ADD_MULTICAST_ADDRESS e OID_802_3_DELETE_MULTICAST_ADDRESS. Essas solicitações OID são emitidas por protocolos sobrepostos e drivers de filtro que são executados no sistema operacional de gerenciamento ou no sistema operacional convidado de uma partição filho Hyper-V.

    Quando essas solicitações OID chegam à interface do switch extensível, a borda do protocolo do switch extensível encapsula a solicitação OID dentro de uma estrutura NDIS_SWITCH_NIC_OID_REQUEST. A borda do protocolo também define o SourcePortId e membros do SourceNicIndex para os valores correspondentes para a porta e o adaptador de rede do qual a solicitação OID se originou. Em seguida, a borda do protocolo emite a solicitação OID_SWITCH_NIC_REQUEST para encaminhar a solicitação OID encapsulada para baixo no caminho de controle do switch extensível para inspeção por extensões subjacentes.

    Observação Nesse caso, a borda do protocolo define o DestinationPortId e membros do DestinationNicIndex como zero. Isso especifica que a solicitação OID encapsulada deve ser entregue a extensões no caminho de controle.

    As extensões de encaminhamento subjacentes podem inspecionar essas solicitações OID encapsuladas e reter as informações de endereço de multicast especificadas. Por exemplo, a extensão pode precisar dessas informações se originar pacotes multicast que encaminha para uma porta de switch extensível.

    Para obter mais informações, consulte Forwarding OID Requests from a Hyper-V Child Partition.

Uma extensão de encaminhamento também pode emitir um OID_SWITCH_NIC_REQUEST para encaminhar solicitações OID encapsuladas para um adaptador de rede físico que está vinculado ao adaptador de rede externo. Isso permite que a extensão origine sua própria solicitação OID ou redirecione uma solicitação OID existente para um adaptador de rede físico que está vinculado ao adaptador de rede externo. Para fazer isso, a extensão deve seguir estas etapas:

  1. A extensão chama ReferenceSwitchNic para incrementar um contador de referência para o índice do adaptador de rede física de destino. Isso garante que a interface do switch extensível não excluirá a conexão do adaptador de rede físico enquanto seu contador de referência for diferente de zero.

    Nota A interface do comutador extensível pode desconectar a conexão do adaptador de rede físico enquanto seu contador de referência é diferente de zero. Para obter mais informações, consulte Hyper-V Extensible Switch Port and Network Adapter States.

  2. A extensão encapsula a solicitação OID inicializando uma estrutura NDIS_SWITCH_NIC_OID_REQUEST da seguinte maneira:

    • O membro DestinationPortId deve ser definido como o identificador da porta do switch extensível à qual o adaptador de rede externo está conectado.

    • O membro DestinationNicIndex deve ser definido como o valor de índice diferente de zero do adaptador de rede física subjacente.

    • Se a extensão for originada em nome de uma partição filho Hyper-V, os membros SourcePortId e SourceNicIndex serão definidos com os valores correspondentes para a porta e o adaptador de rede usados pela partição. Caso contrário, os membros SourcePortId e SourceNicIndex serão definidos como zero.

      Por exemplo, se a extensão estiver gerenciando recursos de descarregamento de hardware para uma partição filha, ela deverá definir o SourcePortId e membros do SourceNicIndex para especificar para qual partição a solicitação OID de descarregamento de hardware encapsulado se destina.

    • O membro OidRequest deve ser definido como um ponteiro para uma estrutura de NDIS_OID_REQUEST inicializada para a solicitação OID encapsulada.

  3. A extensão chama NdisFOidRequest para encaminhar a solicitação OID para a porta de switch extensível de destino especificada e o adaptador de rede.

  4. Quando o NDIS chama a funçãoFilterOidRequestComplete, a extensão chama DereferenceSwitchNic para limpar o contador de referência para o índice do adaptador de rede física de destino.

Códigos de status de retorno

A borda de miniporta subjacente do switch extensível conclui a solicitação de consulta OID de OID_SWITCH_NIC_REQUEST e retorna um dos seguintes códigos de status.

Código de status Descrição

NDIS_STATUS_SUCCESS

A solicitação OID foi concluída com êxito.

NDIS_STATUS_Xxx

O pedido foi rejeitado por outros motivos.

Requerimentos

Versão

Suportado no NDIS 6.30 e posterior.

Cabeçalho

Ntddndis.h (inclui Ndis.h)

Ver também


NDIS_STATUS_INDICATION

NDIS_SWITCH_NIC_OID_REQUEST