FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS 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 VmbPacketSendWithExternalPfns envía los datos en un búfer de paquetes o datos externos como una matriz de números de fotogramas de página (PFN). La función asocia esos datos con el objeto de paquete VMBus, que representa el paquete durante toda la duración de la transacción.

Sintaxis

FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS FnVmbPacketSendWithExternalPfns;

NTSTATUS FnVmbPacketSendWithExternalPfns(
  __drv_aliasesMem VMBPACKET PacketObject,
  PVOID Buffer,
  UINT32 BufferLength,
  PPFN_NUMBER ExternalDataPfns,
  UINT32 PfnLength,
  UINT32 Flags
)
{...}

Parámetros

PacketObject

Identificador del objeto de paquete VMBus.

Buffer

Búfer que contiene el paquete de comandos que se envía a través del búfer de anillo VMBus.

BufferLength

Longitud, en bytes, del búfer en el parámetro Buffer .

ExternalDataPfns

Matriz de números de marco de página que describen un búfer de datos asociado al paquete.

PfnLength

Número de PFN que se van a enviar desde ExternalDataPfns. El índice final de matriz al que se hace referencia es ExternalDataPfns[PfnOffset+PfnLength-1] inclusivo.

Flags

Banderas. A continuación se muestran las marcas pertinentes:

Valor Significado
VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION
Este paquete no se puede considerar completo y sus recursos no se pueden liberar hasta que un paquete de finalización vuelva del punto de conexión opuesto. Esta marca debe establecerse.
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
El búfer insertado está paginado y debe tratarse en consecuencia, lo que significa que debe copiarse antes de entrar en el nivel de DPC. Sondear los búferes en modo de usuario o controlar las infracciones de acceso es responsabilidad del autor de la llamada.

Valor devuelto

Devuelve STATUS_SUCCESS si la operación se realiza correctamente o un código de error NTSTATUS adecuado de lo contrario.

Comentarios

Esta función difiere de la función VmbPacketSend en que permite pasar una matriz de PFN, direcciones físicas de forma eficaz.

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

VmbPacketSend