MemoryProtectionScope 列挙型

定義

Protect(Byte[], MemoryProtectionScope) メソッドにより適用されるメモリ保護のスコープを指定します。Specifies the scope of memory protection to be applied by the Protect(Byte[], MemoryProtectionScope) method.

public enum class MemoryProtectionScope
public enum MemoryProtectionScope
type MemoryProtectionScope = 
Public Enum MemoryProtectionScope
継承
MemoryProtectionScope

フィールド

CrossProcess 1

Protect(Byte[], MemoryProtectionScope) メソッドを使用して保護されていたメモリの保護を、任意のプロセスのすべてのコードで解除できます。All code in any process can unprotect memory that was protected using the Protect(Byte[], MemoryProtectionScope) method.

SameLogon 2

メモリの保護を解除できるのは、Protect(Byte[], MemoryProtectionScope) メソッドを呼び出したコードと同じユーザー コンテキストで実行されるコードのみです。Only code running in the same user context as the code that called the Protect(Byte[], MemoryProtectionScope) method can unprotect memory.

SameProcess 0

メモリの保護を解除できるのは、Protect(Byte[], MemoryProtectionScope) メソッドを呼び出したコードと同じプロセスで実行されるコードのみです。Only code running in the same process as the code that called the Protect(Byte[], MemoryProtectionScope) method can unprotect memory.

次のコード例は、データ保護の使用方法を示しています。The following code example shows how to use data protection.

#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;

int main()
{
   
   // Create the original data to be encrypted (The data length should be a multiple of 16).
   array<Byte>^secret = {1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4};
   
   // Encrypt the data in memory. The result is stored in the same array as the original data.
   ProtectedMemory::Protect( secret, MemoryProtectionScope::SameLogon );
   
   // Decrypt the data in memory and store in the original array.
   ProtectedMemory::Unprotect( secret, MemoryProtectionScope::SameLogon );
}
using System;
using System.Security.Cryptography;

public class MemoryProtectionSample
{

    public static void Main()
    {
        // Create the original data to be encrypted (The data length should be a multiple of 16).
        byte [] secret = { 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 };

        // Encrypt the data in memory. The result is stored in the same array as the original data.
        ProtectedMemory.Protect( secret, MemoryProtectionScope.SameLogon );

        // Decrypt the data in memory and store in the original array.
        ProtectedMemory.Unprotect( secret, MemoryProtectionScope.SameLogon );
    }
}
Imports System.Security.Cryptography

Public Class MemoryProtectionSample

    Public Shared Sub Main()
        ' Create the original data to be encrypted (The data length should be a multiple of 16).
        Dim secret As Byte() = {1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4}

        ' Encrypt the data in memory. The result is stored in the same array as the original data.
        ProtectedMemory.Protect(secret, MemoryProtectionScope.SameLogon)

        ' Decrypt the data in memory and store in the original array.
        ProtectedMemory.Unprotect(secret, MemoryProtectionScope.SameLogon)

    End Sub
End Class

注釈

この列挙体は、 Protect Unprotect メモリ内のデータを保護するためにおよびメソッドと共に使用されます。This enumeration is used with the Protect and Unprotect methods to protect data in memory.

適用対象