FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST función de devolución de llamada (vmbuskernelmodeclientlibapi.h)

[Parte de la información hace referencia a la versión preliminar del producto, el cual puede sufrir importantes modificaciones antes de que se publique la versión comercial. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información que se ofrece aquí].

La función VmbChannelSendSynchronousRequest envía un paquete al punto de conexión opuesto y espera una respuesta.

Sintaxis

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

Identificador del canal.

Buffer

Datos que se van a enviar.

BufferSize

Tamaño, en bytes, de los datos que se van a enviar.

ExternalDataMdl

Lista de descriptores de memoria (MDL) que describe un búfer adicional que se va a enviar.

Flags

Marcas estándar.

CompletionBuffer

Búfer en el que se almacenarán los resultados del paquete de finalización.

CompletionBufferSize

Tamaño, en bytes, del valor CompletionBuffer . Este valor se debe redondear hasta los 8 bytes más cercanos o, de lo contrario, se produce un error en la función. Si se ejecuta correctamente, devuelve el número de bytes escritos en CompletionBuffer.

Timeout

Tiempo de espera en el estilo del enrutamiento KeWaitForSingleObject . Una vez transcurrido este tiempo, se cancela el paquete. Para un tiempo de espera de cero (0), si un paquete no fir en el búfer de anillo, no se pone en cola.

Valor devuelto

Código devuelto Descripción
STATUS_SUCCESS
Las funciones finalizaron correctamente.
STATUS_BUFFER_OVERFLOW
El paquete no encajaba en el búfer y no estaba en cola.
STATUS_CANCELLED
Se canceló el paquete.
STATUS_DEVICE_REMOVED
El canal se está apagando.

Comentarios

Los clientes pueden ejecutar esta función con cualquier combinación de parámetros.

La raíz solo puede llamar a esto si *Timeout == 0 y no se establece la marca VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION .

Importante

Esta función se llama a través de la interfaz de la biblioteca cliente del modo kernel de VMBus (KMCL), proporcionada por el controlador de bus de Vmbkmcl.sys. Se trata de una función de cliente a la que se accede desde la estructura de KMCL_CLIENT_INTERFACE_V1 .

Para obtener más información, vea la sección Comentarios del KMCL_CLIENT_INTERFACE_V1.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1803
Encabezado vmbuskernelmodeclientlibapi.h

Consulte también

KeWaitForSingleObject