FN_VMB_CHANNEL_PACKET_GET_EXTERNAL_DATA 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 atau tersirat, sehubungan dengan informasi yang diberikan di sini.]
Fungsi VmbChannelPacketGetExternalData mendapatkan Lists Deskriptor Memori (MDL) eksternal yang terkait dengan paket selama pemrosesan paket.
Sintaks
FN_VMB_CHANNEL_PACKET_GET_EXTERNAL_DATA FnVmbChannelPacketGetExternalData;
NTSTATUS FnVmbChannelPacketGetExternalData(
VMBPACKETCOMPLETION PacketCompletionContext,
UINT32 Flags,
PMDL *Mdl
)
{...}
Parameter
PacketCompletionContext
Handel yang mengidentifikasi paket masuk dan digunakan untuk merujuk ke paket setelah pemrosesan selesai.
Flags
Bendera yang mengontrol bagaimana MDL dipetakan. Nilai bendera yang mungkin adalah:
Nilai | Makna |
---|---|
|
Petakan MDL sebagai baca-saja. |
Mdl
Penunjuk ke MDL yang dipetakan.
Mengembalikan nilai
VmbChannelPacketGetExternalData mengembalikan kode status. Jika fungsi ini mengembalikan STATUS_PENDING, pemanggil harus kembali dari panggilan balik pemrosesan paket, yang akan dipanggil lagi, mungkin di IRQL yang berbeda, ketika data eksternal siap. Pada titik ini, panggilan ke fungsi ini akan berhasil dan mengembalikan data eksternal.
Keterangan
Membuat MDL yang mewakili memori yang dijelaskan oleh transaksi ini menyebabkan wilayah komputer virtual ini disematkan dalam memori selama sisa masa pakai transaksi. Inilah yang dapat menyebabkan fungsi mengembalikan STATUS_PENDING, karena wilayah komputer virtual mungkin perlu di-paged in.
MDL yang dikembalikan oleh fungsi ini menjelaskan memori yang sudah dikunci di tempatnya. Oleh karena itu, tidak perlu memanggil fungsi MmProbeAndLockPages . Namun, MDL tidak akan memiliki alamat virtual mode pengguna atau alamat virtual mode kernel. Jika driver yang memanggil fungsi ini memerlukan alamat virtual untuk memanipulasi memori dalam komputer virtual, driver tersebut harus memanggil MmMapLockedPagesSpecifyCache, atau MmGetSystemAddressForMdlSafe, dan fungsi buka kunci yang sesuai nanti, seperti MmUnmapLockedPages. Alternatif untuk menggunakan alamat virtual adalah dengan hanya meneruskan MDL ke driver yang menggunakannya untuk akses memori langsung.
Driver yang memanggil fungsi ini tidak diperlukan untuk merilis MDL. Ini menjadi tidak valid setelah memanggil fungsi VmbChannelPacketComplete . Pustaka Klien Mode Kernel (KMCL) kemudian merilisnya.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk