Excluindo uma porta virtual
Um driver sobreposto emite uma solicitação de conjunto de OID (identificador de objeto) de OID_NIC_SWITCH_DELETE_VPORT para excluir uma porta virtual não padrão (VPort) no comutador NIC de um adaptador de rede. O driver sobreposto só pode excluir um VPort que ele criou anteriormente emitindo uma solicitação de método OID de OID_NIC_SWITCH_CREATE_VPORT.
O membro InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para a estrutura NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS .
Um driver subjacente, como a pilha de virtualização, pode excluir um VPort não padrão que ele criou anteriormente. O driver sobreposto cria um VPort emitindo uma solicitação de método OID de OID_NIC_SWITCH_CREATE_VPORT.
Antes de emitir a solicitação de conjunto de OID de OID_NIC_SWITCH_DELETE_VPORT, o driver sobreposto deve fazer o seguinte:
Os drivers overlying devem limpar ou mover todos os filtros de recebimento que o driver definiu anteriormente no VPort antes de excluir o VPort. Os filtros de recebimento são definidos por meio de solicitações OID de OID_RECEIVE_FILTER_SET_FILTER e são movidos por meio de solicitações OID de OID_RECEIVE_FILTER_MOVE_FILTER.
O driver sobreposto define o membro VPortId da estrutura NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS como o identificador do VPort não padrão a ser excluído.
Nota O driver sobreposto não deve definir o membro VPortId como NDIS_DEFAULT_PORT_NUMBER. Esse identificador VPort é reservado para o VPort padrão anexado à PF (Função Física) PCI Express (PCIe) no adaptador de rede. O VPort padrão sempre existe e não é excluído explicitamente, embora uma solicitação de conjunto de OID de OID_NIC_SWITCH_DELETE_VPORT.
O driver sobressociente chama NdisOidRequest para emitir a solicitação OID_NIC_SWITCH_DELETE_VPORT para o driver de miniporto PF subjacente. Quando o driver de miniporto recebe a solicitação OID_NIC_SWITCH_DELETE_VPORT, o driver deve fazer o seguinte:
O driver deve liberar os recursos de hardware e software que foram alocados para o VPort especificado.
O driver deve desanexar o VPort especificado do PF ou de uma VF (Função Virtual PCIe).
Se o VPort estiver anexado a um VF, a pilha de virtualização garantirá que o driver de miniporto VF executado no sistema operacional convidado tenha sido pausado e interrompido anteriormente. Como resultado, todos os pacotes de recebimento previamente dedicados do VPort devem ter sido retornados para o driver de miniporto VF.
Se o VPort estiver anexado ao PF, o driver de miniporto PF deverá interromper qualquer DMA adicional à memória compartilhada associada ao VPort. O driver de miniporto PF deve garantir que todos os pacotes de recebimento previamente dedicados do VPort sejam retornados para o miniporto. O driver de miniporto PF não deve fazer nenhuma indicação de recebimento adicional para o NDIS que especifique o identificador do VPort na estrutura NET_BUFFER_LIST do pacote. Depois que todos os pacotes de recebimento indicados do VPort forem retornados para o driver de miniporto PF, ele deverá liberar a memória compartilhada associada ao VPort chamando NdisFreeSharedMemory.
Os seguintes pontos se aplicam à exclusão de VPorts:
O driver de protocolo sobreposto deve excluir todas as VPorts não padrão que ele criou antes de chamar NdisCloseAdapterEx.
O driver de filtro sobressoante deve excluir todas as VPorts não padrão que ele criou em sua função FilterDetach .
Antes que o NDIS emita uma solicitação definida de OID_NIC_SWITCH_DELETE_SWITCH para excluir um comutador NIC no adaptador de rede, ele garante que todas as VPorts não padrão sejam excluídas desse comutador.
Somente VPorts não padrão podem ser excluídos explicitamente por meio de solicitações OID de OID_NIC_SWITCH_DELETE_SWITCH. O VPort padrão é excluído implicitamente quando o driver de miniporto PF exclui o comutador NIC padrão. Para obter mais informações, consulte Excluindo um comutador NIC.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de