Bagikan melalui


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)