RtlDecryptMemory 函式 (ntsecapi.h)

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

RtlDecryptMemory 函式會解密先前由 RtlEncryptMemory 函式加密的記憶體內容。

注意 此函式沒有相關聯的匯入連結庫。 此函式可作為 Advapi32.dll 中名為 SystemFunction041 的資源。 您必須使用 LoadLibraryGetProcAddress 函式,動態連結至 Advapi32.dll。
 

語法

NTSTATUS RtlDecryptMemory(
  [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