RtlDecryptMemory 函数 (ntsecapi.h)
[RtlDecryptMemory 函数可用于“要求”部分中指定的操作系统。 在后续版本中可能会更改或不可用。 请改用 CryptUnprotectMemory 函数。]
RtlDecryptMemory 函数解密以前由 RtlEncryptMemory 函数加密的内存内容。
注意
此函数没有关联的导入库。 此函数可用作 Advapi32.dll
中名为 systemFunction041 的资源。 必须使用 LoadLibrary 和 GetProcAddress 函数动态链接到 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_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 |