Поделиться через


Функция RtlEncryptMemory (ntsecapi.h)

[Функция RtlDecryptMemory доступна для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Вместо этого используйте функцию CryptProtectMemory .]

Функция RtlEncryptMemory шифрует содержимое памяти. Зашифрованное содержимое можно расшифровать путем последующего вызова функции RtlDecryptMemory .

Примечание У этой функции нет связанной библиотеки импорта. Эта функция доступна в виде ресурса с именем SystemFunction040 в Advapi32.dll. Для динамической связи с Advapi32.dll необходимо использовать функции LoadLibrary и GetProcAddress .
 

Синтаксис

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
Header ntsecapi.h
DLL Advapi32.dll