EVT_VMB_CHANNEL_SUSPEND função de retorno de chamada (vmbuskernelmodeclientlibapi.h)
[Algumas informações relacionam-se ao produto de pré-lançamento, o qual poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não fornece nenhuma garantia, expressa ou implícita, com relação às informações fornecidas aqui.]
A função de retorno de chamada EvtVmbChannelSuspend é invocada no ponto de extremidade do servidor quando o canal está sendo fechado ou excluído pelo ponto de extremidade do cliente, o que move o servidor para o estado Parado.
Sintaxe
EVT_VMB_CHANNEL_SUSPEND EvtVmbChannelSuspend;
void EvtVmbChannelSuspend(
[in] VMBCHANNEL Channel
)
{...}
Parâmetros
[in] Channel
O canal que está suspenso.
Retornar valor
Nenhum
Comentários
Depois que um canal é criado, um driver de cliente pode especificar funções de retorno de chamada para alterações de estado, incluindo EvtVmbChannelSuspend, usando a função VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT .
Se um canal em execução for suspenso usando a função VmbChannelPause ou fechado usando a função VmbChannelDisable ou pelo ponto de extremidade oposto, a KMCL (Biblioteca de Clientes do Modo Kernel) chamará EvtVmbChannelSuspend. Esse retorno de chamada garante que não haja mais retornos de chamada EvtVmbChannelProcessPacket em execução ou serão enfileirados.
EvtVmbChannelSuspend também é uma notificação de que o cliente KMCL deve eventualmente concluir todos os pacotes pendentes indicados usando EvtVmbChannelProcessPacket Esses pacotes não precisam ser concluídos de forma síncrona. KMCL bloqueia até que eles tenham sido concluídos.
O cliente KMCL também deve parar de enviar pacotes usando as funções VmbPacketSend, VmbPacketSendWithExternalMdl ou VmbPacketSendWithExternalPfns .
Uma chamada para VmbChannelPause em um canal ativo é bloqueada até que EvtVmbChannelSuspend seja chamado e não exista mais pacotes de entrada pendentes.
Uma chamada para o bloco VmbChannelDisable até que o canal seja pausado e fechado.
Essa função garante a conclusão de transações pendentes. O cliente pode estar com bugs, mal-intencionados ou a máquina virtual convidada pode ter falhado. O servidor deve desativar todas as transações pendentes, provavelmente cancelando-as.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | vmbuskernelmodeclientlibapi.h (inclua VmbusKernelModeClientLibApi.h) |
IRQL | PASSIVE_LEVEL |