FN_VMB_PACKET_SEND_WITH_EXTERNAL_MDL fungsi panggilan balik (vmbuskernelmodeclientlibapi.h)

[Beberapa informasi berkaitan dengan produk pra-rilis yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersurat maupun tersirat, sehubungan dengan informasi yang diberikan di sini.]

Fungsi VmbPacketSendWithExternalMdl mengirimkan data dalam buffer paket atau Daftar Deskriptor Memori data eksternal (MDL). Fungsi ini mengaitkan data tersebut dengan objek paket VMBus, yang mewakili paket sepanjang masa pakai transaksi.

Sintaks

FN_VMB_PACKET_SEND_WITH_EXTERNAL_MDL FnVmbPacketSendWithExternalMdl;

NTSTATUS FnVmbPacketSendWithExternalMdl(
  __drv_aliasesMem VMBPACKET PacketObject,
  PVOID Buffer,
  UINT32 BufferLength,
  PMDL ExternalDataMdl,
  UINT32 MdlOffset,
  UINT32 MdlLength,
  UINT32 Flags
)
{...}

Parameter

PacketObject

Handel ke objek paket VMBus.

Buffer

Buffer yang berisi paket perintah yang dikirim melalui buffer cincin VMBus.

BufferLength

Panjangnya, dalam byte, dari buffer dalam parameter Buffer .

ExternalDataMdl

MDL yang menjelaskan buffer data yang terkait dengan paket.

MdlOffset

Offset dari buffer yang dijelaskan oleh MDL tempat data dimulai.

MdlLength

Panjang sub-buffer untuk dikirim. Gunakan 0 untuk seluruh MDL.

Flags

Bendera. Berikut ini adalah bendera terkait:

Nilai Makna
VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION
Paket ini tidak dapat dianggap lengkap dan sumber dayanya tidak dapat dirilis sampai paket penyelesaian kembali dari titik akhir yang berlawanan. Bendera ini harus diatur.
VMBUS_CHANNEL_FORMAT_FLAG_FORCE_MDL_LENGTH
Selalu gunakan MdlLength untuk panjang MDL data eksternal, bahkan jika panjang ini lebih panjang dari bidang ByteCount MDL. Ini hanya memungkinkan melebihi panjang MDL dengan membulatkan ke atas ke batas halaman. Jika bendera ini diatur, hanya MDL pertama dalam rantai MDL yang digunakan.
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
Buffer sebaris di-paged dan harus diperlakukan sesuai, yang berarti harus disalin sebelum memasuki tingkat DPC. Memeriksa buffer mode pengguna atau menangani pelanggaran akses adalah tanggung jawab pemanggil.

Nilai kembali

Mengembalikan STATUS_SUCCESS jika operasi berhasil, atau kode kesalahan NTSTATUS yang sesuai sebaliknya.

Keterangan

Fungsi ini berbeda dari fungsi VmbPacketSend karena memungkinkan melewati offset MDL dan panjang MDL.

Penting

Fungsi ini dipanggil melalui antarmuka VMBus Kernel Mode Client Library (KMCL), yang disediakan oleh driver bus Vmbkmcl.sys. Ini adalah fungsi klien yang diakses dari struktur KMCL_CLIENT_INTERFACE_V1 .

Untuk informasi selengkapnya, lihat bagian Keterangan dari KMCL_CLIENT_INTERFACE_V1.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10 versi 1803
Header vmbuskernelmodeclientlibapi.h

Lihat juga

VmbPacketSend