EVT_VMB_CHANNEL_SUSPEND función de devolución de llamada (vmbuskernelmodeclientlibapi.h)
[Cierta información se relaciona con el producto publicado previamente que puede modificarse sustancialmente antes de su publicación comercial. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí.]
El EvtVmbChannelSuspend función de devolución de llamada 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
Ninguno
Observaciones
Una vez creado un canal, un controlador cliente puede especificar funciones de devolución de llamada para los cambios de estado, incluidos 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 se cierra 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 EvtVmbChannelProcessPacket devoluciones de llamada o se pondrá en cola.
EvtVmbChannelSuspend también es una notificación de que el cliente KMCL debe completar finalmente todos los paquetes pendientes indicados mediante EvtVmbChannelProcessPacket Estos paquetes no tienen que completarse sincrónicamente. KMCL bloquea hasta que se hayan completado.
El cliente KMCL también debe dejar de enviar paquetes mediante el VmbPacketSend, VmbPacketSendWithExternalMdlo funciones de VmbPacketSendWithExternalPfns.
Se llama a VmbChannelPause en un canal activo hasta que se llama a EvtVmbChannelSuspend y no existen más paquetes entrantes pendientes.
Una llamada a VmbChannelDisable bloquear 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 las transacciones pendientes, probablemente cancelándolas.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Windows |
encabezado de | vmbuskernelmodeclientlibapi.h (incluya VmbusKernelModeClientLibApi.h) |
irQL | PASSIVE_LEVEL |