簡體   English   中英

如何確定邏輯地址是否在物理內存中?

[英]How to determine if a logical address is in physical memory?

我在較高IRQL處使用的回調函數可能需要訪問內存中的一系列地址。 所以我想知道是否有一個內核函數可以判斷地址PVOID是否在內存的NonPagedPool部分中,或者當前是否映射到物理內存,並且如果我從中讀取不會導致頁面錯誤?

MmIsAddressValid將檢查是否在非頁面緩沖池中的指定地址處發生頁面錯誤。 Microsoft警告不要使用此功能,因為如果傳出的地址被調出,將導致不確定的行為。 這還將檢查虛擬地址是否在物理內存范圍內,並檢查有效的PTE,如果不滿足條件,則返回false。

MmGetPhysicalAddress將返回駐留在非頁面緩沖池中的虛擬地址的物理地址。 如果例程不滿足正確的條件,則返回零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM