RtlEncryptMemory 函式 (ntsecapi.h)
[RtlDecryptMemory 函式可用於需求一節中指定的操作系統。 後續版本可能會變更或無法使用。 請改用 CryptProtectMemory 函式。]
RtlEncryptMemory 函式會加密記憶體內容。 加密的內容可由後續呼叫 RtlDecryptMemory 函式來解密。
注意
此函式沒有相關聯的匯入連結庫。 此函式可作為 Advapi32.dll
中名為 SystemFunction040 的資源。 您必須使用 LoadLibrary 和 GetProcAddress 函式來動態連結至 Advapi32.dll
。
語法
NTSTATUS RtlEncryptMemory(
[in, out] PVOID Memory,
[in] ULONG MemorySize,
[in] ULONG OptionFlags
);
參數
[in, out] Memory
要加密之內存的指標。 記憶體的大小必須是 RTL_ENCRYPT_MEMORY_SIZE 常數的倍數。
[in] MemorySize
記憶體 點的位元元組數目。 位元組數目必須是 RTL_ENCRYPT_MEMORY_SIZE 常數的倍數。
[in] OptionFlags
值,指定加密如何透過進程界限和模擬運作。 此參數可以是下列其中一個值。 這些值互斥。 加密和解密記憶體時,您必須指定相同的旗標。
價值 | 意義 |
---|---|
0 |
加密和解密相同進程中的記憶體。 在不同進程中執行的應用程式將無法解密數據。 |
RTL_ENCRYPT_OPTION_CROSS_PROCESS0x01 |
在不同的進程中加密和解密記憶體。 在不同的進程中執行的應用程式將能夠解密數據。 |
RTL_ENCRYPT_OPTION_SAME_LOGON0x02 |
使用相同的登入認證來加密和解密不同進程中的記憶體。 在不同的進程中執行的應用程式將能夠解密數據。 不過,此進程必須以加密數據和相同登入會話中的相同使用者身分執行。 |
RTL_ENCRYPT_OPTION_FOR_SYSTEM0x04 |
允許呼叫端僅由系統進程解密資訊。 |
傳回值
如果函式成功,則傳回值會 STATUS_SUCCESS。
如果函式失敗,傳回值會是表示錯誤的 NTSTATUS 程序代碼。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP、Windows XP [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2003、Windows Server 2003 [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | ntsecapi.h |
DLL | Advapi32.dll |