PSECURE_MEMORY_CACHE_CALLBACK回呼函式 (winnt.h)
先前向 AddSecureMemoryCacheCallback 函式註冊的應用程式定義函式,會在釋放安全記憶體範圍或變更其保護時呼叫。
PSECURE_MEMORY_CACHE_CALLBACK類型會定義這個回 呼 函式的指標。 SecureMemoryCacheCallback 是應用程式定義函數名稱的佔位符。
語法
PSECURE_MEMORY_CACHE_CALLBACK PsecureMemoryCacheCallback;
BOOLEAN PsecureMemoryCacheCallback(
[in] PVOID Addr,
[in] SIZE_T Range
)
{...}
參數
[in] Addr
記憶體範圍的起始位址。
[in] Range
記憶體範圍的大小,以位元組為單位。
傳回值
傳回值表示此函式的成功或失敗。
如果呼叫端已保護指定的記憶體範圍,此函式應該不安全記憶體並傳回 TRUE。
如果呼叫端尚未保護指定的記憶體範圍,此函式應該會傳回 FALSE。
備註
註冊回呼函式之後,會在任何嘗試釋放指定的記憶體範圍或變更其保護之後呼叫。 如果應用程式已保護指定記憶體範圍的任何部分,回呼函式必須使安全記憶體範圍的所有應用程式快取記憶體對應失效,使記憶體範圍的安全部分不安全,並傳回 TRUE。 否則,它必須傳回 FALSE。
應用程式會藉由將要求傳送至設備驅動器來保護和不安全記憶體範圍,這會使用 MmSecureVirtualMemory 和 MmUnsecureVirtualMemory 函式來實際保護且不安全的範圍。 其他類型的安全或鎖定記憶體上的作業不會觸發此回呼。
觸發回呼函式的函式呼叫範例包括對 VirtualFree、VirtualFreeEx、VirtualProtect、VirtualProtectEx 和 UnmapViewOfFile 函式的呼叫。
回呼函式也可以由堆積作業觸發。 在此情況下,函式不得對觸發回呼的堆積執行任何進一步的作業。 這包括在私人堆積或進程的預設堆積上呼叫 堆積函 式,或呼叫標準連結庫函式,例如 malloc 和 free,這些函式會隱含地使用進程的預設堆積。
若要取消註冊回呼函式,請使用 RemoveSecureMemoryCacheCallback 函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 具有SP1的 Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winnt.h (包括 Windows.h) |