共用方式為


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
0x01
在不同的進程中加密和解密記憶體。 在不同的進程中執行的應用程式將能夠解密數據。
RTL_ENCRYPT_OPTION_SAME_LOGON
0x02
使用相同的登入認證來加密和解密不同進程中的記憶體。 在不同的進程中執行的應用程式將能夠解密數據。 不過,此進程必須以加密數據和相同登入會話中的相同使用者身分執行。
RTL_ENCRYPT_OPTION_FOR_SYSTEM
0x04
允許呼叫端僅由系統進程解密資訊。

傳回值

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

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

要求

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