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 |
---|---|
|
As funções foram concluídas com êxito. |
|
O pacote não se encaixava no buffer e não estava na fila. |
|
O pacote foi cancelado. |
|
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 |