FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS função de retorno de chamada (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 VmbPacketSendWithExternalPfns envia os dados em um buffer de pacotes ou dados externos como uma matriz de PFNs (Números de Quadro de Página). A função associa esses dados ao objeto de pacote VMBus, que representa o pacote durante todo o tempo de vida da transação.

Sintaxe

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

Um identificador para o objeto de pacote VMBus.

Buffer

Um buffer que contém o pacote de comando enviado por meio do buffer de anéis VMBus.

BufferLength

O comprimento, em bytes, do buffer no parâmetro Buffer .

ExternalDataPfns

Uma matriz de Números de Quadro de Página que descrevem um buffer de dados associado ao pacote.

PfnLength

O número de PFNs a serem enviadas de ExternalDataPfns. O índice de matriz referenciado final é ExternalDataPfns[PfnOffset+PfnLength-1] inclusivo.

Flags

Sinalizadores. Os seguintes sinalizadores são pertinentes:

Valor Significado
VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION
Esse pacote não pode ser considerado completo e seus recursos não podem ser liberados até que um pacote de conclusão volte do ponto de extremidade oposto. Esse sinalizador deve ser definido.
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
O buffer embutido é paginado e deve ser tratado adequadamente, o que significa que ele deve ser copiado antes de entrar no nível de DPC. Investigar buffers no modo de usuário ou lidar com violações de acesso é responsabilidade do chamador.

Retornar valor

Retorna STATUS_SUCCESS se a operação for bem-sucedida ou um código de erro NTSTATUS apropriado caso contrário.

Comentários

Essa função difere da função VmbPacketSend , pois permite passar uma matriz de PFNs, endereços efetivamente físicos.

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 de cliente acessada da estrutura 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

VmbPacketSend