共用方式為


MmSecureVirtualMemoryEx 函式 (ntddk.h)

此例程會探查要求的位址範圍,並保護指定的位址範圍,使其保護更嚴格且遭到刪除。

語法

HANDLE MmSecureVirtualMemoryEx(
  PVOID  Address,
  SIZE_T Size,
  ULONG  ProbeMode,
  ULONG  Flags
);

參數

Address

探查和安全基位址的指標。

Size

指定要保護的範圍大小,以位元組為單位。

ProbeMode

指定允許的最嚴格頁面保護。 使用PAGE_READWRITE指定位址範圍必須同時保持可讀取和可寫入,或使用PAGE_READONLY指定位址範圍只能保持可讀取狀態。

ProbeMode 意義
PAGE_READWRITE 保護無法變更為PAGE_NOACCESS或PAGE_READONLY。 允許所有其他保護變更。
PAGE_READONLY 保護無法變更為PAGE_NOACCESS。 允許所有其他保護變更。

Flags

指定下列一或多個旗標:

旗標 描述
MM_SECURE_EXCLUSIVE 只有在沒有任何其他安全裝置已釘選到有問題的 VAD 時,保護才會成功。
MM_SECURE_NO_CHANGE 套用之後,提供的虛擬位址區域不允許任何保護變更。 如果進程正在結束,仍然可以刪除區域。
MM_SECURE_USER_MODE_ONLY 此保護所指定的保護只會套用至嘗試變更保護 (核心模式呼叫端的使用者模式後續呼叫,將會略過此保護) 。
MM_SECURE_NO_INHERIT 如果複製進程,則與父進程不同,子進程的 VAD 將不會受到保護。

傳回值

傳回值,這個值表示只用來取消保護範圍的句柄。

如果因為保護問題、未認可的記憶體或無效參數而無法鎖定範圍,此例程會傳回 NULL。

備註

如果您需要指定 MM_SECURE_NO_CHANGE,請使用 MmSecureVirtualMemoryEx,而不是 MmSecureVirtualMemory,以便在提供的檢視上不允許任何保護變更。

此函式的傳回值只能與 MmUnsecureVirtualMemory 搭配使用。 驅動程式會呼叫該例程,以將範圍傳回正常狀態。

規格需求

需求
最低支援的用戶端 Windows 10 版本 1809
標頭 ntddk.h
IRQL APC_LEVEL

另請參閱