OID_SWITCH_NIC_REQUEST
Uma solicitação de método OID (identificador de objeto) de OID_SWITCH_NIC_REQUEST é usada para encapsular e encaminhar solicitações OID para o adaptador de rede externa comutador extensível do Hyper-V. Isso permite que a solicitação OID encapsulada seja entregue ao driver para o adaptador de rede física subjacente associado 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 conectados a portas de comutador extensíveis. Nesse caso, a solicitação OID encapsulada é encaminhada por meio da pilha de driver de comutador extensível para inspeção por extensões.
O membro InformationBuffer 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 de NDIS_OID_REQUEST original da solicitação OID que está sendo encaminhada.
Comentários
Quando as solicitações OID chegam à interface de comutador extensível do Hyper-V, ela as encapsula para encaminhá-las para o caminho de controle de comutador extensível. Essas solicitações de OID incluem o seguinte:
Solicitações de OID de descarregamento de hardware, incluindo solicitações de IPsec (segurança de protocolo de Internet), VMQ (fila de máquina virtual) e virtualização de E/S de raiz única (SR-IOV). Essas solicitações de OID são emitidas por um driver de filtro ou protocolo sobreposto que é executado no sistema operacional de gerenciamento da partição pai do Hyper-V.
Quando essas solicitações OID chegam à interface de comutador extensível, a borda do protocolo do comutador extensível encapsula a solicitação OID dentro de uma estrutura de 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 como os valores correspondentes para o adaptador de rede externo.
Se a solicitação OID tiver sido originada de uma partição filho do 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.
Nota A extensão deve reter 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 OID_SWITCH_NIC_REQUEST para encaminhar a solicitação OID encapsulada pelo caminho de controle de comutador extensível para o adaptador de rede externo.
Uma extensão de encaminhamento subjacente pode redirecionar solicitações OID de descarregamento de hardware encapsuladas para um adaptador de rede física associado ao adaptador de rede externo. Por exemplo, se a extensão der suporte a adaptadores de rede física de uma equipe de comutador extensível associada 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 dá suporte ao descarregamento de hardware. Para obter mais informações sobre esse procedimento, consulte Gerenciando solicitações de OID de descarregamento de hardware para adaptadores de rede física.
Para obter mais informações sobre equipes de comutador extensíveis, consulte Tipos de configurações de adaptador de rede física.
Solicitações de OID multicast, incluindo OID_802_3_ADD_MULTICAST_ADDRESS e OID_802_3_DELETE_MULTICAST_ADDRESS. Essas solicitações de OID são emitidas por drivers de filtro e protocolo sobrepostos que são executados no sistema operacional de gerenciamento ou no sistema operacional convidado de uma partição filho do Hyper-V.
Quando essas solicitações OID chegam à interface de comutador extensível, a borda do protocolo do comutador extensível encapsula a solicitação OID dentro de uma estrutura de NDIS_SWITCH_NIC_OID_REQUEST . A borda do protocolo também define os membros SourcePortId e SourceNicIndex para os valores correspondentes para a porta e o adaptador de rede dos quais a solicitação OID foi originada. Em seguida, a borda do protocolo emite a solicitação OID_SWITCH_NIC_REQUEST para encaminhar a solicitação OID encapsulada pelo caminho de controle de comutador extensível para inspeção por extensões subjacentes.
Nota Nesse caso, a borda do protocolo define os membros DestinationPortId e DestinationNicIndex como zero. Isso especifica que a solicitação OID encapsulada deve ser entregue às extensões no caminho de controle.
As extensões de encaminhamento subjacentes podem inspecionar essas solicitações OID encapsuladas e manter as informações de endereço multicast especificadas. Por exemplo, a extensão poderá precisar dessas informações se originar pacotes multicast que encaminha para uma porta de comutador extensível.
Para obter mais informações, consulte Encaminhando solicitações OID de uma partição filho do Hyper-V.
Uma extensão de encaminhamento também pode emitir uma OID_SWITCH_NIC_REQUEST para encaminhar solicitações OID encapsuladas para um adaptador de rede física associado 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ísica associado ao adaptador de rede externo. Para fazer isso, a extensão deve seguir estas etapas:
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 de comutador extensível não exclua a conexão do adaptador de rede física enquanto o contador de referência for diferente de zero.
Nota A interface de comutador extensível pode desconectar a conexão do adaptador de rede física enquanto seu contador de referência é diferente de zero. Para obter mais informações, consulte Porta do Comutador Extensível do Hyper-V e Estados do Adaptador de Rede.
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 de comutador 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 do Hyper-V, os membros SourcePortId e SourceNicIndex serão definidos como 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 filho, ela deverá definir os membros SourcePortId e SourceNicIndex para especificar para qual partição a solicitação OID de descarregamento de hardware encapsulada é.
O membro OidRequest deve ser definido como um ponteiro para uma estrutura de NDIS_OID_REQUEST inicializada para a solicitação OID encapsulada.
A extensão chama NdisFOidRequest para encaminhar a solicitação OID para a porta do comutador extensível de destino e o adaptador de rede especificados.
Quando o NDIS chama a função FilterOidRequestComplete , 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 miniporto subjacente da opção 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 |
A solicitação falhou por outros motivos. |
Requisitos
Versão |
Com suporte no NDIS 6.30 e posterior. |
Cabeçalho |
Ntddndis.h (inclua Ndis.h) |