Makro MmGetMdlPfnArray (wdm.h)
Makro MmGetMdlPfnArray mengembalikan penunjuk ke awal array nomor halaman fisik yang terkait dengan daftar deskriptor memori (MDL).
Sintaks
PPFN_NUMBER MmGetMdlPfnArray(
_In_ PMDL Mdl
);
Parameter
Mdl
Penunjuk ke MDL.
Nilai kembali
MmGetMdlPfnArray mengembalikan pointer ke awal array nomor halaman fisik yang terkait dengan MDL.
Keterangan
MmGetMdlPfnArray mengembalikan pointer ke awal array nomor halaman fisik yang terkait dengan MDL.
Definisi makro:
#define MmGetMdlPfnArray(Mdl) ((PPFN_NUMBER)(Mdl + 1))
Jumlah entri dalam array adalah ADDRESS_AND_SIZE_TO_SPAN_PAGES(MmGetMdlVirtualAddress(Mdl), MmGetMdlByteCount(Mdl)).
Setiap elemen array adalah nilai bilangan bulat jenis PFN_NUMBER, yang didefinisikan dalam file header Wdm.h sebagai berikut:
typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
Mengubah isi array dapat menyebabkan masalah sistem halang yang sulit didiagnosis. Kami menyarankan agar Anda tidak membaca atau mengubah konten array ini.
Untuk memori yang dapat dipaginasi, konten array hanya valid untuk buffer yang dikunci dengan MmProbeAndLockPages.
Untuk kumpulan yang tidak di-patahkan, konten array hanya berlaku untuk MDL yang diperbarui dengan MmBuildMdlForNonPagedPool, MmAllocatePagesForMdlEx, atau MmAllocatePagesForMdl.
Untuk informasi selengkapnya tentang MDL, lihat Menggunakan MDL.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | wdm.h (termasuk Wdm.h) |
IRQL | Tingkat apa pun |
Aturan kepatuhan DDI | MdlAfterReqCompletedIntIoctlA(kmdf), MdlAfterReqCompletedIoctlA(kmdf), MdlAfterReqCompletedReadA(kmdf), MdlAfterReqCompletedWriteA(kmdf) |