次の方法で共有


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_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