Condividi tramite


Operazioni di salvataggio del commutatore estendibile Hyper-V

Quando viene arrestata una partizione figlio Hyper-V, salvata o in tempo reale, viene salvato lo stato di runtime della partizione. Durante l'operazione di salvataggio, un'estensione del commutatore estendibile Hyper-V può salvare i dati di runtime su una scheda di rete di commutatore estendibile.

Quando viene eseguita un'operazione di salvataggio in una partizione figlio Hyper-V, l'interfaccia del commutatore estendibile notifica l'estensione sull'operazione. L'estensione viene notificata tramite le richieste OID (Object Identifier) seguenti:

OID_SWITCH_NIC_SAVE
L'interfaccia del commutatore estendibile segnala il bordo del protocollo dell'commutatore estendibile per rilasciare questo OID durante l'operazione di salvataggio per un commutatore estendibile. Quando gestisce questa richiesta OID, l'estensione restituisce i dati di runtime per la scheda di interfaccia di rete. Dopo il salvataggio dei dati di runtime, viene ripristinato tramite richieste di set OID di OID_SWITCH_NIC_RESTORE.

Quando riceve la richiesta di OID_SWITCH_NIC_SAVE metodo, l'estensione può eseguire una delle operazioni seguenti:

  • Se l'estensione dispone di dati di runtime da salvare, inizializza una struttura NDIS_SWITCH_NIC_SAVE_STATE e imposta i vari membri, ad esempio il membro ExtensionId , per identificare se stesso e i dati salvati. L'estensione salva anche i dati all'interno della struttura NDIS_SWITCH_NIC_SAVE_STATE a partire da SaveDataOffset byte dall'inizio della struttura e quindi completa la richiesta del metodo OID con NDIS_STATUS_SUCCESS.

  • Se la struttura NDIS_SWITCH_NIC_SAVE_STATE non fornisce una dimensione del buffer sufficiente, enumerata nel membro NDIS_OBJECT_HEADER Size per contenere lo stato di runtime, l'estensione imposta il campo BytesNeed della struttura del metodo su NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 più la quantità di buffer necessaria per contenere i dati di salvataggio, e completa l'OID con NDIS_STATUS_BUFFER_TOO_SHORT. L'OID verrà ristampato con le dimensioni necessarie.

  • Se l'estensione non dispone di dati di runtime da salvare, deve chiamare NdisFOidRequest. In questo modo, la richiesta del metodo OID viene inoltrata alle estensioni sottostanti nello stack di driver di commutatore estendibile. Per altre informazioni su questa procedura, vedere Filtro delle richieste OID in un driver di filtro NDIS.

Per altre informazioni su questa richiesta OID, vedere Gestione della richiesta di OID_SWITCH_NIC_SAVE.

OID_SWITCH_NIC_SAVE_COMPLETE
L'interfaccia del commutatore estendibile segnala il bordo del protocollo del commutatore estendibile per rilasciare questo OID al completamento dell'operazione di salvataggio dei dati in fase di esecuzione per un commutatore estendibile.

Questa richiesta OID notifica all'estensione che l'operazione di salvataggio è stata completata solo per una scheda di interfaccia di interfaccia di rete estendibile specificata.

Per altre informazioni su questa richiesta OID, vedere Gestione della richiesta di OID_SWITCH_NIC_SAVE_COMPLETE.

Durante l'operazione di salvataggio per i dati di runtime, il bordo del protocollo del commutatore estendibile genera richieste OID di OID_SWITCH_NIC_SAVE e OID_SWITCH_NIC_SAVE_COMPLETE per l'interfaccia di rete di una partizione figlio Hyper-V è connessa. Se più partizioni figlio Hyper-V vengono arrestate o in tempo reale, il bordo del protocollo genera set separati di OID_SWITCH_NIC_SAVE e OID_SWITCH_NIC_SAVE_COMPLETE richieste per ogni connessione di interfaccia di rete.

Nota Il bordo del protocollo dell'commutatore estendibile non interleaverà le operazioni di salvataggio per i dati in fase di esecuzione per la stessa scheda di interfaccia di rete. Il bordo del protocollo avvia un'operazione di salvataggio dei dati di runtime per una scheda di interfaccia di rete solo dopo il completamento di un'operazione di salvataggio precedente nella stessa scheda di interfaccia di rete. Tuttavia, il bordo del protocollo può avviare un'operazione di salvataggio per una scheda di interfaccia di rete mentre un'altra operazione di salvataggio è in corso per un'altra scheda di interfaccia di rete. A causa di questo, è consigliabile che le estensioni eseguano operazioni di salvataggio in modo non interleaved. Ad esempio, le estensioni non devono presupporre che una nuova operazione di salvataggio non possa iniziare su un'altra scheda di interfaccia di rete prima che un'operazione di salvataggio in corso sia stata completata per una scheda di interfaccia di rete diversa.