共用方式為


RtlEncryptMemory 函式 (ntsecapi.h)

[ RtlDecryptMemory 函式可用於需求一節中指定的操作系統。 它在後續版本中可能會變更或無法使用。 請改用 CryptProtectMemory 函式 。]

RtlEncryptMemory 函式會加密記憶體內容。 加密的內容可以透過 後續對 RtlDecryptMemory 函式的呼叫來解密。

注意 此函式沒有相關聯的匯入連結庫。 此函式可在 Advapi32.dll 中作為名為 SystemFunction040 的資源使用。 您必須使用 LoadLibraryGetProcAddress 函式,以動態方式連結至 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_PROCESS
在不同的進程中加密和解密記憶體。 在不同的進程中執行的應用程式將能夠解密數據。
RTL_ENCRYPT_OPTION_SAME_LOGON
使用相同的登入認證來加密和解密不同進程中的記憶體。 在不同的進程中執行的應用程式將能夠解密數據。 不過,進程必須以加密數據和相同登入會話中的相同使用者身分執行。

傳回值

如果函式成功,傳回值會STATUS_SUCCESS。

如果函式失敗,傳回值是 表示錯誤的NTSTATUS 程式代碼。

規格需求

需求
最低支援的用戶端 Windows XP、Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003、Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 ntsecapi.h
Dll Advapi32.dll