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