[英]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.