EVT_VMB_CHANNEL_SUSPEND función de devolución de llamada (vmbuskernelmodeclientlibapi.h)

[Parte de la información hace referencia a la versión preliminar del producto, el cual puede sufrir importantes modificaciones antes de que se publique la versión comercial. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información que se ofrece aquí].

La función de devolución de llamada EvtVmbChannelSuspend se invoca en el punto de conexión del servidor cuando el punto de conexión del cliente cierra o elimina el canal, que mueve el servidor al estado Detenido.

Sintaxis

EVT_VMB_CHANNEL_SUSPEND EvtVmbChannelSuspend;

void EvtVmbChannelSuspend(
  [in] VMBCHANNEL Channel
)
{...}

Parámetros

[in] Channel

Canal suspendido.

Valor devuelto

None

Observaciones

Una vez creado un canal, un controlador cliente puede especificar funciones de devolución de llamada para los cambios de estado, incluido EvtVmbChannelSuspend, mediante la función VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT .

Si se suspende un canal en ejecución mediante la función VmbChannelPause o cerrado mediante la función VmbChannelDisable o por el punto de conexión opuesto, la Biblioteca cliente del modo kernel (KMCL) llama a EvtVmbChannelSuspend. Esta devolución de llamada garantiza que no se ejecuten más devoluciones de llamada EvtVmbChannelProcessPacket o se pondrá en cola.

EvtVmbChannelSuspend también es una notificación de que el cliente de KMCL debe completar finalmente todos los paquetes pendientes indicados mediante EvtVmbChannelProcessPacket Estos paquetes no tienen que completarse sincrónicamente. KMCL se bloquea hasta que se hayan completado.

El cliente KMCL también debe dejar de enviar paquetes mediante las funciones VmbPacketSend, VmbPacketSendWithExternalMdl o VmbPacketSendWithExternalPfns .

Una llamada a VmbChannelPause en un canal activo se bloquea hasta que se llama a EvtVmbChannelSuspend y no existen más paquetes entrantes pendientes.
Una llamada al bloque VmbChannelDisable hasta que el canal esté en pausa y cerrado.

Esta función garantiza la finalización de transacciones pendientes. Es posible que el cliente tenga errores, malintencionados o que la máquina virtual invitada se haya bloqueado. El servidor debe retirar todas las transacciones pendientes, probablemente cancelándolas.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado vmbuskernelmodeclientlibapi.h (incluya VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

Consulte también

EvtVmbChannelProcessPacket

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelDisable

VmbChannelPause

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns