Partilhar via


FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS função de retorno de chamada (vmbuskernelmodeclientlibapi.h)

[Algumas informações referem-se ao produto pré-lançado que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não faz garantias, expressas ou implícitas, em 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 anel do VMBus.

BufferLength

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

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 enviados de ExternalDataPfns. O índice de matriz referenciado final é ExternalDataPfns[PfnOffset+PfnLength-1] inclusivo.

Flags

Sinalizadores. Veja a seguir os sinalizadores 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. A investigação de buffers no modo de usuário ou o tratamento de violações de acesso é responsabilidade do chamador.

Valor de retorno

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

Observações

Essa função difere da função VmbPacketSend na qual 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 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
de cliente com suporte mínimo Windows 10, versão 1803
cabeçalho vmbuskernelmodeclientlibapi.h

Consulte também

VmbPacketSend