MmGetSystemAddressForMdl 巨集 (wdm.h)
MmGetSystemAddressForMdl 例程已經過時。 請改用 mmGetSystemAddressForMdlSafe。
MmGetSystemAddressForMdl 是一個巨集,會傳回 MDL 所描述之緩衝區的非分頁系統空間虛擬位址。 如果指定的 MDL 所描述的實體頁面尚未對應至系統空間,則會將其對應至系統空間。
語法
PVOID MmGetSystemAddressForMdl(
MDL
);
參數
[in] MDL
對應基底虛擬位址要對應的緩衝區指標。
傳回值
沒有
言論
MmGetSystemAddressForMdl 會傳回對應指定 MDL 所描述之實體頁面的基底系統空間虛擬位址。
PIO 裝置的驅動程式會呼叫此例程來轉譯虛擬位址範圍,由 MDL 在 Irp->MdlAddress,以將使用者緩衝區轉譯為系統空間位址範圍。
MDL 必須描述不可分頁的記憶體。 換句話說,輸入 MDL 必須描述 MmProbeAndLockPages傳回的已鎖定使用者空間緩衝區、MmBuildMdlForNonPagedPool 所傳回的鎖定緩衝區,或從非分頁集區、連續記憶體或非快取記憶體配置的系統空間記憶體。
傳回的基位址與 MDL 中的虛擬位址位移相同。
視窗會發出錯誤檢查,如果嘗試對應至系統空間失敗。 因此,您應該改用 MmGetSystemAddressForMdlSafe)。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 過時。 請改用 MmGetSystemAddressForMdlSafe。 |
目標平臺 | 桌面 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
IRQL | IRQL <= DISPATCH_LEVEL |