MemoryProtectionScope MemoryProtectionScope MemoryProtectionScope MemoryProtectionScope Enum

Definition

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
Inheritance
MemoryProtectionScopeMemoryProtectionScopeMemoryProtectionScopeMemoryProtectionScope

Fields

CrossProcess CrossProcess CrossProcess CrossProcess 1

All code in any process can unprotect memory that was protected using the Protect(Byte[], MemoryProtectionScope) method.

SameLogon SameLogon SameLogon SameLogon 2

Only code running in the same user context as the code that called the Protect(Byte[], MemoryProtectionScope) method can unprotect memory.

SameProcess SameProcess SameProcess SameProcess 0

Only code running in the same process as the code that called the Protect(Byte[], MemoryProtectionScope) method can unprotect memory.

Examples

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

Remarks

This enumeration is used with the Protect and Unprotect methods to protect data in memory.

Applies to