次の方法で共有


RtlEncryptMemory 関数 (ntsecapi.h)

[RtlDecryptMemory 関数は、[要件] セクションで指定されたオペレーティング システムで使用できます。 以降のバージョンでは、変更または使用できない場合があります。 代わりに、CryptProtectMemory 関数を使用します。

RtlEncryptMemory 関数は、メモリの内容を暗号化します。 暗号化された内容は、RtlDecryptMemory 関数への後続の呼び出しによって復号化できます。

手記

 この関数には、関連付けられたインポート ライブラリがありません。 この関数は、Advapi32.dllSystemFunction040 という名前のリソースとして使用できます。 に動的にリンクするには、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
0x01
さまざまなプロセスでメモリの暗号化と暗号化解除を行います。 別のプロセスで実行されているアプリケーションは、データを復号化できます。
RTL_ENCRYPT_OPTION_SAME_LOGON
0x02
同じログオン資格情報を使用して、異なるプロセスのメモリを暗号化および復号化します。 別のプロセスで実行されているアプリケーションは、データを復号化できます。 ただし、このプロセスは、データを暗号化したユーザーと同じログオン セッションで実行する必要があります。
RTL_ENCRYPT_OPTION_FOR_SYSTEM
0x04
呼び出し元が情報を暗号化して、システム プロセスによってのみ暗号化を解除できるようにします。

戻り値

関数が成功した場合、戻り値は STATUS_SUCCESS

関数が失敗した場合、戻り値はエラーを示す NTSTATUS コードです。

必要条件

要件 価値
サポートされる最小クライアント Windows XP、Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003、Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー ntsecapi.h
DLL Advapi32.dll