Partilhar via


Hyper-V Operações de Gravação de Comutador Extensível

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

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

OID_SWITCH_NIC_SAVE
A interface do switch extensível sinaliza a borda do protocolo do switch extensível para emitir esse OID durante a operação de salvamento para uma NIC de switch extensível. Quando ele lida com essa solicitação OID, a extensão retorna dados de tempo de execução para a NIC. Depois que os dados de tempo de execução são salvos, eles são restaurados por meio de solicitações de conjunto OID de OID_SWITCH_NIC_RESTORE.

Quando recebe a solicitação de método OID_SWITCH_NIC_SAVE, a extensão pode fazer o seguinte:

  • Se a extensão tiver dados de tempo de execução para salvar, ela inicializa uma estrutura de NDIS_SWITCH_NIC_SAVE_STATE e define 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 desde o 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 NDIS_OBJECT_HEADER Size para conter o estado de execução, a extensão define o campo BytesNeeded da estrutura do método para NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 mais a quantidade de buffer necessária para armazenar os dados salvos, e completa o OID com NDIS_STATUS_BUFFER_TOO_SHORT. O OID será reemitido com o tamanho necessário.

  • Se a extensão não tiver dados de tempo de execução para salvar, ela deverá chamar NdisFOidRequest. Encaminha-se a solicitação do método OID para extensões subjacentes na stack de drivers do switch extensível. Para obter mais informações sobre este 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 de protocolo do comutador extensível para emitir esse OID na conclusão da operação de guardar dados de execução de uma NIC do comutador extensível.

Esta solicitação OID notifica a extensão que a operação de salvamento foi concluída somente para uma placa de rede de switch extensível especificada.

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

Durante a operação de salvamento de dados em tempo de execução, a borda de protocolo do switch 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 paradas ou migradas ao vivo, a borda do protocolo emitirá conjuntos distintos de solicitações OID_SWITCH_NIC_SAVE e OID_SWITCH_NIC_SAVE_COMPLETE para cada conexão de interface de rede.

Nota A interface de protocolo do switch extensível não intercalará operações de gravação para dados em tempo de execução para a mesma placa de interface de rede (NIC). A extremidade de protocolo iniciará uma operação de guardar dados durante a execução para uma NIC somente depois que uma operação anterior de guardar dados for concluída 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 ser iniciada em outra NIC antes que uma operação de salvamento em andamento seja concluída para uma NIC diferente.