Operaciones de guardado de conmutador extensible de Hyper-V
Cuando se detiene, guarda o migra una partición secundaria de Hyper-V, se guarda el estado en tiempo de ejecución de la partición. Durante la operación de guardado, una extensión de conmutador extensible de Hyper-V puede ahorrar datos en tiempo de ejecución sobre un adaptador de red de conmutador extensible (NIC).
Cuando se realiza una operación de guardado en una partición secundaria de Hyper-V, la interfaz de conmutador extensible notifica a la extensión sobre la operación. La extensión se notifica a través de las siguientes solicitudes de identificador de objeto (OID):
OID_SWITCH_NIC_SAVE
La interfaz de conmutador extensible indica el borde del protocolo del conmutador extensible para emitir este OID durante la operación de guardado de una NIC de conmutador extensible. Cuando controla esta solicitud de OID, la extensión devuelve datos en tiempo de ejecución para la NIC. Una vez guardados los datos en tiempo de ejecución, se restaura a través de solicitudes de conjunto de OID de OID_SWITCH_NIC_RESTORE.
Cuando recibe la solicitud de método OID_SWITCH_NIC_SAVE , la extensión puede realizar una de las siguientes acciones:
Si la extensión tiene datos en tiempo de ejecución que se van a guardar, inicializa una estructura de NDIS_SWITCH_NIC_SAVE_STATE y establece los distintos miembros, como el miembro ExtensionId , para identificarse y los datos que está guardando. La extensión también guarda los datos dentro de la estructura de NDIS_SWITCH_NIC_SAVE_STATE iniciando los bytes SaveDataOffset desde el inicio de la estructura y, a continuación, completa la solicitud del método OID con NDIS_STATUS_SUCCESS.
Si la estructura de NDIS_SWITCH_NIC_SAVE_STATE no proporciona un tamaño de búfer suficiente, enumerado en el miembro size de NDIS_OBJECT_HEADER para contener el estado en tiempo de ejecución, la extensión establece el campo BytesNeededed de la estructura del método en NDIS_SIZEOF_NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1 más la cantidad de búfer necesario para contener los datos guardados, y completa el OID con NDIS_STATUS_BUFFER_TOO_SHORT. El OID se volverá a emitir con el tamaño necesario.
Si la extensión no tiene datos en tiempo de ejecución para guardarlos, debe llamar a NdisFOidRequest. Esto reenvía la solicitud del método OID a las extensiones subyacentes de la pila de controladores de conmutador extensible. Para obtener más información sobre este procedimiento, consulte Filtrado de solicitudes de OID en un controlador de filtro NDIS.
Para obtener más información sobre esta solicitud de OID, consulte Control de la solicitud de OID_SWITCH_NIC_SAVE.
OID_SWITCH_NIC_SAVE_COMPLETE
La interfaz de conmutador extensible indica el borde del protocolo del conmutador extensible para emitir este OID al finalizar la operación de guardado de datos en tiempo de ejecución para una NIC de conmutador extensible.
Esta solicitud de OID notifica a la extensión que la operación de guardado se ha completado solo para una NIC de conmutador extensible especificada.
Para obtener más información sobre esta solicitud de OID, consulte Control de la solicitud de OID_SWITCH_NIC_SAVE_COMPLETE.
Durante la operación de guardado de datos en tiempo de ejecución, el borde del protocolo del conmutador extensible emite solicitudes de OID de OID_SWITCH_NIC_SAVE y OID_SWITCH_NIC_SAVE_COMPLETE para la interfaz de red de una partición secundaria de Hyper-V está conectada. Si se detienen o migran varias particiones secundarias de Hyper-V, el perímetro del protocolo emite conjuntos independientes de OID_SWITCH_NIC_SAVE y solicitudes de OID_SWITCH_NIC_SAVE_COMPLETE para cada conexión de interfaz de red.
Nota El borde del protocolo del conmutador extensible no intercalará las operaciones de guardado para los datos en tiempo de ejecución para la misma NIC. El perímetro del protocolo iniciará una operación de ahorro de datos en tiempo de ejecución para una NIC solo después de que se haya completado una operación de guardado anterior en la misma NIC. Sin embargo, el perímetro del protocolo puede iniciar una operación de guardado para una NIC mientras que otra operación de guardado está en curso para otra NIC. Por este motivo, se recomienda encarecidamente que las extensiones realicen operaciones de guardado de forma no intercalada. Por ejemplo, las extensiones no deben suponer que una nueva operación de guardado no se puede iniciar en otra NIC antes de que se haya completado una operación de guardado en curso para una NIC diferente.