Partilhar via


OID_SWITCH_NIC_CREATE

A borda de protocolo do switch extensível Hyper-V emite uma solicitação de conjunto de identificador de objeto (OID) de OID_SWITCH_NIC_CREATE para notificar as extensões de switch extensível subjacentes de que uma nova conexão está sendo estabelecida entre uma porta de switch extensível e um adaptador de rede externo ou virtual. Depois que a conexão é totalmente estabelecida, a borda de protocolo do switch extensível emite uma solicitação de conjunto OID de OID_SWITCH_NIC_CONNECT.

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

Comentários

O PortId membro da estrutura NDIS_SWITCH_NIC_PARAMETERS especifica a porta de switch extensível para a qual a notificação de criação está sendo feita. A extensão do switch extensível pode obter as informações de parâmetro para esta e outras portas no switch extensível emitindo solicitações de consulta OID de OID_SWITCH_PORT_ARRAY.

O Index membro da estrutura NDIS_SWITCH_NIC_PARAMETERS especifica o índice de um adaptador de rede para o qual a notificação de criação está sendo feita. O adaptador de rede com o valor especificado Index é conectado à porta do switch extensível especificada pelo membro PortId. Para obter mais informações sobre esses valores de índice, consulte Network Adapter Index Values.

Quando recebe a solicitação de conjunto OID de OID_SWITCH_NIC_CREATE, a extensão deve seguir estas diretrizes:

  • A extensão não deve modificar a estrutura NDIS_SWITCH_NIC_PARAMETERS que está associada à solicitação OID.

  • A solicitação OID_SWITCH_NIC_CREATE apenas notifica a extensão de que uma nova conexão de switch extensível está sendo criada e que o tráfego de pacotes pode começar a ocorrer em breve na porta especificada. No entanto, a extensão não pode usar a porta até que a borda do protocolo do switch extensível emita uma solicitação de conjunto OID de OID_SWITCH_NIC_CONNECT. Até que o OID seja emitido, a extensão não deve fazer o seguinte:

    • Gere qualquer tráfego de pacotes para a conexão do adaptador de rede na porta do switch extensível para a qual a solicitação OID OID_SWITCH_NIC_CREATE foi emitida.

    • Encaminhe ou origine solicitações OID de OID_SWITCH_NIC_REQUEST para um adaptador de rede subjacente para o qual a solicitação OID OID_SWITCH_NIC_CREATE foi emitida.

    • Encaminhar ou originar indicações de status NDIS de NDIS_STATUS_SWITCH_NIC_STATUS de um adaptador de rede subjacente para o qual a solicitação OID OID_SWITCH_NIC_CREATE foi emitida.

    • Chame ReferenceSwitchNic para incrementar o contador de referência de switch extensível para a conexão do adaptador de rede especificado na porta do switch extensível.

    Nota A extensão pode intercetar enviar ou receber pacotes para a porta especificada entre as solicitações OID de OID_SWITCH_NIC_CREATE e OID_SWITCH_NIC_CONNECT. Nesse caso, a extensão deve encaminhar as solicitações de pacotes de envio ou recebimento em vez de cancelá-las.

  • A extensão pode vetar a notificação de criação retornando NDIS_STATUS_DATA_NOT_ACCEPTED para a solicitação OID. Por exemplo, se uma extensão não puder satisfazer suas políticas configuradas na porta especificada, a extensão deverá vetar a notificação de criação.

    Se a extensão retornar outros códigos de status NDIS_STATUS_Xxx, a notificação de criação também será vetada. No entanto, retornar códigos de status para cenários transitórios, como retornar NDIS_STATUS_RESOURCES, pode resultar em uma nova tentativa da notificação de criação.

    Se a extensão não vetar a solicitação OID, ela deve monitorar o status quando a solicitação for concluída. A extensão deve fazer isso para determinar se a solicitação OID foi vetada por extensões subjacentes no caminho de controle do switch extensível ou pela interface do switch extensível.

    Observação A extensão só pode vetar a solicitação OID se o Index membro da estrutura NDIS_SWITCH_NIC_PARAMETERS especificar um valor de índice do adaptador de rede igual a zero.

  • Se a extensão não vetar a notificação de criação, ela deverá chamar NdisFOidRequest para encaminhar essa solicitação OID para extensões subjacentes na pilha de driver de switch extensível.

    Nota A extensão deve monitorar o status de conclusão desta solicitação OID. A extensão faz isso para detetar se as extensões subjacentes na pilha de driver de switch extensível vetaram a notificação de criação.

  • Se a extensão chamar NdisFOidRequest para encaminhar essa solicitação OID, a extensão não receberá imediatamente nenhum tráfego de pacotes de ou para a porta do switch extensível. Além disso, a extensão não pode injetar imediatamente o tráfego de envio ou recebimento para a porta do switch extensível.

  • A extensão só pode encaminhar o tráfego de pacotes para a porta do switch extensível depois que a borda do protocolo do switch extensível emite uma solicitação de conjunto OID de OID_SWITCH_NIC_CONNECT.

    Observação Em algumas situações, o tráfego de pacotes pode ser encaminhado pelo switch extensível para a porta antes que uma solicitação de conjunto OID de OID_SWITCH_NIC_CONNECT seja emitida.

  • O adaptador de rede externo do switch extensível pode se ligar a um ou mais adaptadores físicos subjacentes. Para cada adaptador de rede físico que está vinculado ao adaptador de rede externo, a borda de protocolo do switch extensível emite uma solicitação de conjunto OID separada de OID_SWITCH_NIC_CREATE. Cada solicitação de conjunto OID especifica um valor de índice de conexão de adaptador de rede diferente. Para obter mais informações sobre esses valores de índice, consulte Network Adapter Index Values.

    A extensão deve manter o estado de conexão para cada adaptador físico subjacente. Para obter mais informações sobre as diferentes configurações nas quais os adaptadores de rede física podem ser vinculados ao adaptador de rede externo, consulte tipos de configurações de adaptador de rede física.

Para obter mais informações sobre os estados das portas de switch extensíveis e conexões de adaptador de rede, consulte Hyper-V Extensible Switch Port and Network Adapter States.

Nota A extensão não deve emitir suas próprias solicitações de conjunto OID de OID_SWITCH_NIC_CREATE.

Códigos de status de retorno

Se a extensão concluir a solicitação de conjunto OID de OID_SWITCH_NIC_CREATE, ela retornará um dos seguintes códigos de status.

Código de status Descrição

NDIS_STATUS_DATA_NOT_ACCEPTED

A prorrogação vetou a notificação de criação.

NDIS_STATUS_RESOURCES

A extensão vetou a notificação de criação devido a uma condição de baixo recurso.

NDIS_STATUS_Xxx

A prorrogação vetou a notificação de criação por outros motivos.

Nota Se a extensão concluir a solicitação de conjunto OID, ela não deverá retornar NDIS_STATUS_SUCCESS.

Se a extensão não concluir a solicitação de conjunto OID de OID_SWITCH_NIC_CREATE, a solicitação será concluída pela borda de miniporta subjacente do switch extensível. A borda de miniporta subjacente retorna o seguinte código de status para essa solicitação de conjunto OID:

Código de status Descrição

NDIS_STATUS_SUCCESS

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

Requerimentos

Versão

Suportado no NDIS 6.30 e posterior.

Cabeçalho

Ntddndis.h (inclui Ndis.h)

Ver também


NDIS_OID_REQUEST

NDIS_SWITCH_NIC_PARAMETERS

NdisFOidRequest

OID_SWITCH_NIC_CONNECT

OID_SWITCH_PORT_ARRAY

ReferenceSwitchPort