OID_SWITCH_NIC_CREATE
A borda do protocolo do comutador extensível do Hyper-V emite uma solicitação de conjunto de OID (identificador de objeto) de OID_SWITCH_NIC_CREATE para notificar as extensões de comutador extensíveis subjacentes de que uma nova conexão está sendo estabelecida entre uma porta de comutador extensível e um adaptador de rede externa ou virtual. Depois que a conexão é totalmente estabelecida, a borda do protocolo do comutador extensível emite uma solicitação de conjunto OID de OID_SWITCH_NIC_CONNECT.
O membro InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para uma estrutura NDIS_SWITCH_NIC_PARAMETERS .
Comentários
O membro PortId da estrutura NDIS_SWITCH_NIC_PARAMETERS especifica a porta de comutador extensível para a qual a notificação de criação está sendo feita. A extensão de comutador extensível pode obter as informações de parâmetro para essa e outras portas na opção extensível emitindo solicitações de consulta OID de OID_SWITCH_PORT_ARRAY.
O membro Index 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 index especificado está conectado à porta de comutador extensível especificada pelo membro PortId . Para obter mais informações sobre esses valores de índice, consulte Valores de índice do adaptador de rede.
Quando ele 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 associada à solicitação OID.
A solicitação OID_SWITCH_NIC_CREATE apenas notifica a extensão de que uma nova conexão de comutador extensível está sendo acionada 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 comutador extensível emita uma solicitação de conjunto OID de OID_SWITCH_NIC_CONNECT. Até que esse OID seja emitido, a extensão não deve fazer o seguinte:
Gere qualquer tráfego de pacote para a conexão do adaptador de rede na porta do comutador extensível para a qual a solicitação OID OID_SWITCH_NIC_CREATE foi emitida.
Encaminhar ou originar 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 comutador extensível para a conexão do adaptador de rede especificada na porta do comutador extensível.
Nota A extensão pode interceptar pacotes de envio ou recebimento 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 envio ou recebimento de pacotes 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 atender às 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 NDIS_STATUS_Xxx status, a notificação de criação também será vetada. No entanto, retornar códigos 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 deverá 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 de comutador extensível ou pela interface de comutador extensível.
Nota A extensão só poderá vetar a solicitação OID se o membro Index 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 comutador extensível.
Nota A extensão deve monitorar o status de conclusão dessa solicitação OID. A extensão faz isso para detectar se as extensões subjacentes na pilha de driver de comutador 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 pacote de ou para a porta de comutador extensível. Além disso, a extensão não pode injetar imediatamente o tráfego de envio ou recebimento para a porta do comutador extensível.
A extensão só pode encaminhar o tráfego de pacotes para a porta de comutador extensível depois que a borda do protocolo do comutador extensível emite uma solicitação de conjunto OID de OID_SWITCH_NIC_CONNECT.
Nota Em algumas situações, o tráfego de pacotes pode ser encaminhado pela opção extensível para a porta antes que uma solicitação de conjunto OID de OID_SWITCH_NIC_CONNECT seja emitida.
O adaptador de rede externa comutador extensível pode ser associado a um ou mais adaptadores físicos subjacentes. Para cada adaptador de rede física associado ao adaptador de rede externo, a borda do protocolo do comutador extensível emite uma solicitação de conjunto OID separada de OID_SWITCH_NIC_CREATE. Cada solicitação de conjunto de OID especifica um valor de índice de conexão do adaptador de rede diferente. Para obter mais informações sobre esses valores de índice, consulte Valores de índice do adaptador de rede.
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 associados ao adaptador de rede externo, consulte Tipos de configurações de adaptador de rede física.
Para obter mais informações sobre os estados de portas de comutador extensíveis e conexões de adaptador de rede, consulte Porta do Comutador Extensível do Hyper-V e Estados do Adaptador de Rede.
Nota A extensão não deve emitir suas próprias solicitações de conjunto de OID de OID_SWITCH_NIC_CREATE.
Códigos de status de retorno
Se a extensão concluir a solicitação de conjunto de 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 extensã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 pouco recurso. |
NDIS_STATUS_Xxx |
A extensão vetou a notificação de criação por outros motivos. |
Nota Se a extensão concluir a solicitação de conjunto de 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 miniporto subjacente do comutador extensível. A borda do miniporto subjacente retorna o seguinte código status para esta solicitação de conjunto de OID:
Código de status | Descrição |
---|---|
NDIS_STATUS_SUCCESS |
A solicitação OID foi concluída com êxito. |
Requisitos
Versão |
Com suporte no NDIS 6.30 e posterior. |
Cabeçalho |
Ntddndis.h (inclua Ndis.h) |