다음을 통해 공유


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