Compartilhar via


Operações de salvamento de comutador extensível do Hyper-V

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

Quando uma operação de salvamento está sendo executada em uma partição filho do 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 a borda do protocolo do comutador extensível para emitir esse OID durante a operação de salvamento para uma NIC de comutador extensível. Quando trata essa solicitação de 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 ele recebe a solicitação de método OID_SWITCH_NIC_SAVE , a extensão pode fazer um dos seguintes procedimentos:

  • Se a extensão tiver dados em tempo de execução para salvar, ela inicializará uma estrutura NDIS_SWITCH_NIC_SAVE_STATE e definirá os vários membros, como o membro ExtensionId , para identificar a si mesmo e os dados que está salvando. A extensão também salva os dados dentro da estrutura NDIS_SWITCH_NIC_SAVE_STATE iniciando bytes SaveDataOffset do início da estrutura e, em seguida, conclui 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 Tamanho do NDIS_OBJECT_HEADER para manter o estado de tempo de execução, a extensão definirá 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 conclui o OID com NDIS_STATUS_BUFFER_TOO_SHORT. O OID será reemissado 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 OID em um driver de filtro NDIS.

Para obter mais informações sobre essa solicitação OID, consulte Manipulando 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 de 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 comutador extensível especificada.

Para obter mais informações sobre essa solicitação de OID, consulte Manipulando 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 o adaptador de rede de uma partição filho do Hyper-V está conectada. Se várias partições filho do Hyper-V forem interrompidas ou migradas ao vivo, a borda do protocolo emitirá conjuntos separados de OID_SWITCH_NIC_SAVE e OID_SWITCH_NIC_SAVE_COMPLETE solicitações para cada conexão de interface de rede.

Nota A borda do protocolo do comutador extensível não intercalará operações de salvamento para dados em tempo de execução para a mesma NIC. A borda do protocolo iniciará uma operação de salvamento de dados em tempo de execução 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 maneira 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.