Compartilhar via


Hyper-V Operações de Salvamento do Comutador Extensível

Quando uma partição filho Hyper-V é interrompida, salva ou migrada em tempo real, o estado de execução em tempo de execução da partição é salvo. Durante a operação de salvamento, uma extensão de comutador extensível Hyper-V pode salvar dados em tempo de execução sobre um NIC (adaptador de rede de comutador extensível).

Quando uma operação de salvamento está sendo executada em uma partição filho Hyper-V, a interface de comutador extensível notifica a extensão sobre a operação. A extensão é notificada por meio das seguintes solicitações de OID (identificador de objeto):

OID_SWITCH_NIC_SAVE
A interface de comutador extensível sinaliza o limite do protocolo do comutador extensível para emitir esta OID durante a operação de salvaguarda para a NIC de comutador extensível. Quando trata essa solicitação OID, a extensão retorna dados em tempo de execução para a NIC. Depois que os dados em tempo de execução são salvos, eles são restaurados por meio de solicitações de conjunto de OID de OID_SWITCH_NIC_RESTORE.

Quando recebe a solicitação do método OID_SWITCH_NIC_SAVE , a extensão pode fazer um dos seguintes procedimentos:

  • Se a extensão tiver dados de execução para salvar, ela inicializa uma estrutura NDIS_SWITCH_NIC_SAVE_STATE e configura os vários membros, como o membro ExtensionId, para se identificar e os dados que está salvando. A extensão também salva os dados dentro da estrutura NDIS_SWITCH_NIC_SAVE_STATE, começando a SaveDataOffset bytes a partir do início da estrutura, e em seguida completa a solicitação do método OID com NDIS_STATUS_SUCCESS.

  • Se a estrutura NDIS_SWITCH_NIC_SAVE_STATE não fornecer um tamanho de buffer suficiente, enumerado no membro Size do NDIS_OBJECT_HEADER para conter o estado em tempo de execução, a extensão define o campo BytesNeeded da estrutura do método como NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 mais a quantidade de buffer necessária para armazenar os dados de salvamento, e completa a operação OID com NDIS_STATUS_BUFFER_TOO_SHORT. O OID será relançado com o tamanho necessário.

  • Se a extensão não tiver dados em tempo de execução para salvar, ela deverá chamar NdisFOidRequest. Isso encaminha a solicitação do método OID para extensões subjacentes na pilha de driver de comutador extensível. Para obter mais informações sobre esse procedimento, consulte Filtrando solicitações de OID em um driver de filtro NDIS.

Para obter mais informações sobre essa solicitação de OID, consulte Como lidar com a solicitação de OID_SWITCH_NIC_SAVE.

OID_SWITCH_NIC_SAVE_COMPLETE
A interface de comutador extensível sinaliza a borda do protocolo do comutador extensível para emitir esse OID na conclusão da operação de salvamento de dados em tempo de execução para uma NIC do comutador extensível.

Essa solicitação OID notifica a extensão de que a operação de salvamento foi concluída apenas para uma NIC de switch extensível especificada.

Para obter mais informações sobre essa solicitação de OID, consulte Como lidar com a solicitação de OID_SWITCH_NIC_SAVE_COMPLETE.

Durante a operação de salvamento para dados em tempo de execução, a borda do protocolo do comutador extensível emite solicitações OID de OID_SWITCH_NIC_SAVE e OID_SWITCH_NIC_SAVE_COMPLETE para a interface de rede de uma partição filha Hyper-V que está conectada. Se várias partições filho Hyper-V forem interrompidas ou migradas em tempo real, a borda do protocolo emitirá as solicitações OID_SWITCH_NIC_SAVE e OID_SWITCH_NIC_SAVE_COMPLETE em conjuntos separados para cada conexão de interface de rede.

Nota A interface de protocolo do switch extensível não intercalará operações de salvamento de dados em tempo de execução para a mesma NIC. A borda do protocolo iniciará uma operação de salvamento de dados em tempo real para uma NIC somente após a conclusão de uma operação de salvamento anterior na mesma NIC. No entanto, a borda do protocolo pode iniciar uma operação de salvamento para uma NIC enquanto outra operação de salvamento está em andamento para outra NIC. Por isso, é altamente recomendável que as extensões executem operações de salvamento de forma não intercalada. Por exemplo, as extensões não devem assumir que uma nova operação de salvamento não pode iniciar em outra NIC antes que uma operação de salvamento em andamento seja concluída para uma NIC diferente.