Compartilhar via


função de retorno de chamada FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST (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 VmbChannelSendSynchronousRequest envia um pacote para o ponto de extremidade oposto e aguarda uma resposta.

Sintaxe

FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST FnVmbChannelSendSynchronousRequest;

NTSTATUS FnVmbChannelSendSynchronousRequest(
  VMBCHANNEL Channel,
  PVOID Buffer,
  UINT32 BufferSize,
  PMDL ExternalDataMdl,
  UINT32 Flags,
  PVOID CompletionBuffer,
  PUINT32 CompletionBufferSize,
  PLARGE_INTEGER Timeout
)
{...}

Parâmetros

Channel

Um identificador para o canal.

Buffer

Dados a serem enviados.

BufferSize

O tamanho, em bytes, dos dados a serem enviados.

ExternalDataMdl

Uma MDL (Lista de Descritores de Memória) que descreve um buffer adicional a ser enviado.

Flags

Sinalizadores padrão.

CompletionBuffer

Buffer no qual armazenar os resultados do pacote de conclusão.

CompletionBufferSize

O tamanho, em bytes, do valor CompletionBuffer . Esse valor deve ser arredondado até 8 bytes mais próximos ou então a função falhará. Em caso de êxito, retorna o número de bytes gravados em CompletionBuffer.

Timeout

Um tempo limite no estilo do roteamento KeWaitForSingleObject . Após esse tempo decorrido, o pacote é cancelado. Para um tempo limite de zero (0), se um pacote não for inserido no buffer de anéis, ele não será enfileirado.

Retornar valor

Código de retorno Descrição
STATUS_SUCCESS
As funções foram concluídas com êxito.
STATUS_BUFFER_OVERFLOW
O pacote não se encaixava no buffer e não estava na fila.
STATUS_CANCELLED
O pacote foi cancelado.
STATUS_DEVICE_REMOVED
O canal está sendo desligado.

Comentários

Os clientes podem executar essa função com qualquer combinação de parâmetros.

A raiz só poderá chamar isso se *Timeout == 0 e o sinalizador VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION não estiver definido.

Importante

Essa função é chamada por meio da interface KMCL (Biblioteca de Clientes do Modo Kernel do VMBus), fornecida pelo driver de barramento Vmbkmcl.sys. Essa é uma função cliente acessada da estrutura de KMCL_CLIENT_INTERFACE_V1 .

Para obter mais informações, consulte a seção Comentários do KMCL_CLIENT_INTERFACE_V1.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1803
Cabeçalho vmbuskernelmodeclientlibapi.h

Confira também

KeWaitForSingleObject