Partilhar via


EVT_VMB_CHANNEL_SUSPEND função de retorno de chamada (vmbuskernelmodeclientlibapi.h)

[Algumas informações referem-se ao produto pré-lançado que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não faz garantias, expressas ou implícitas, em 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.

Valor de retorno

Nenhum

Observações

Depois que um canal é criado, um driver 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 EvtVmbChannelProcessPacket os retornos de chamada estão em execução ou serão enfileirados.

EvtVmbChannelSuspend também é uma notificação de que o cliente KMCL deve 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 o VmbPacketSend, VmbPacketSendWithExternalMdl ou funções de VmbPacketSendWithExternalPfns.

Uma chamada para VmbChannelPause em um canal ativo bloqueia até que EvtVmbChannelSuspend seja chamado e não haja mais pacotes de entrada pendentes.
Uma chamada para bloco VmbChannelDisable até que o canal seja pausado e fechado.

Essa função garante a conclusão de transações pendentes. O cliente pode ser inválido, mal-intencionado ou a máquina virtual convidada pode ter falhado. O servidor deve desativar quaisquer transações pendentes, provavelmente cancelando-as.

Requisitos

Requisito Valor
da Plataforma de Destino Windows
cabeçalho vmbuskernelmodeclientlibapi.h (inclua VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

Consulte também

EvtVmbChannelProcessPacket

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelDisable

VmbChannelPause

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns