Now that the EDK2 tree uses GetMemoryProtectionsLib to query
the platform memory protection settings, we can add additional
profiles to SetMemoryProtectionsLib to give plaforms more options
for setting memory protections.

Signed-off-by: Taylor Beebe <taylor.d.be...@gmail.com>
Cc: Jian J Wang <jian.j.w...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
---
 MdeModulePkg/Library/SetMemoryProtectionsLib/SetMemoryProtectionsLib.c | 417 
+++++++++++++++++++-
 MdeModulePkg/Include/Library/SetMemoryProtectionsLib.h                 |   7 +
 2 files changed, 422 insertions(+), 2 deletions(-)

diff --git 
a/MdeModulePkg/Library/SetMemoryProtectionsLib/SetMemoryProtectionsLib.c 
b/MdeModulePkg/Library/SetMemoryProtectionsLib/SetMemoryProtectionsLib.c
index 13032ec80fbf..5f054504b75e 100644
--- a/MdeModulePkg/Library/SetMemoryProtectionsLib/SetMemoryProtectionsLib.c
+++ b/MdeModulePkg/Library/SetMemoryProtectionsLib/SetMemoryProtectionsLib.c
@@ -28,6 +28,227 @@ typedef struct {
 // DXE PROFILE DEFINITIONS //
 /////////////////////////////
 
+//
+//  A memory profile with strict settings ideal for development scenarios.
+//
+#define DXE_MEMORY_PROTECTION_SETTINGS_DEBUG          \
+{                                                     \
+  DXE_MEMORY_PROTECTION_SIGNATURE,                    \
+  DXE_MEMORY_PROTECTION_SETTINGS_CURRENT_VERSION,     \
+  TRUE, /* Stack Guard */                             \
+  TRUE, /* Stack Execution Protection */              \
+  {     /* NULL Pointer Detection */                  \
+    .Enabled                                = TRUE,   \
+    .DisableEndOfDxe                        = FALSE,  \
+    .NonstopModeEnabled                     = TRUE    \
+  },                                                  \
+  { /* Image Protection */                            \
+    .ProtectImageFromUnknown                = TRUE,   \
+    .ProtectImageFromFv                     = TRUE    \
+  },                                                  \
+  { /* Execution Protection */                        \
+    .EnabledForType = {                               \
+      [EfiReservedMemoryType]               = TRUE,   \
+      [EfiLoaderCode]                       = FALSE,  \
+      [EfiLoaderData]                       = TRUE,   \
+      [EfiBootServicesCode]                 = FALSE,  \
+      [EfiBootServicesData]                 = TRUE,   \
+      [EfiRuntimeServicesCode]              = FALSE,  \
+      [EfiRuntimeServicesData]              = TRUE,   \
+      [EfiConventionalMemory]               = TRUE,   \
+      [EfiUnusableMemory]                   = TRUE,   \
+      [EfiACPIReclaimMemory]                = TRUE,   \
+      [EfiACPIMemoryNVS]                    = TRUE,   \
+      [EfiMemoryMappedIO]                   = TRUE,   \
+      [EfiMemoryMappedIOPortSpace]          = TRUE,   \
+      [EfiPalCode]                          = TRUE,   \
+      [EfiPersistentMemory]                 = FALSE,  \
+      [EfiUnacceptedMemoryType]             = TRUE,   \
+      [OEM_RESERVED_MPS_MEMORY_TYPE]        = TRUE,   \
+      [OS_RESERVED_MPS_MEMORY_TYPE]         = TRUE    \
+    }                                                 \
+  },                                                  \
+  { /* Heap Guard */                                  \
+    .PageGuardEnabled                       = TRUE,   \
+    .PoolGuardEnabled                       = TRUE,   \
+    .FreedMemoryGuardEnabled                = FALSE,  \
+    .NonstopModeEnabled                     = TRUE,   \
+    .GuardAlignedToTail                     = TRUE    \
+  },                                                  \
+  { /* Pool Guard */                                  \
+    .EnabledForType = {                               \
+      [EfiReservedMemoryType]               = TRUE,   \
+      [EfiLoaderCode]                       = TRUE,   \
+      [EfiLoaderData]                       = TRUE,   \
+      [EfiBootServicesCode]                 = TRUE,   \
+      [EfiBootServicesData]                 = TRUE,   \
+      [EfiRuntimeServicesCode]              = TRUE,   \
+      [EfiRuntimeServicesData]              = TRUE,   \
+      [EfiConventionalMemory]               = FALSE,  \
+      [EfiUnusableMemory]                   = TRUE,   \
+      [EfiACPIReclaimMemory]                = TRUE,   \
+      [EfiACPIMemoryNVS]                    = TRUE,   \
+      [EfiMemoryMappedIO]                   = TRUE,   \
+      [EfiMemoryMappedIOPortSpace]          = TRUE,   \
+      [EfiPalCode]                          = TRUE,   \
+      [EfiPersistentMemory]                 = FALSE,  \
+      [EfiUnacceptedMemoryType]             = TRUE,   \
+      [OEM_RESERVED_MPS_MEMORY_TYPE]        = TRUE,   \
+      [OS_RESERVED_MPS_MEMORY_TYPE]         = TRUE    \
+    }                                                 \
+  },                                                  \
+  { /* Page Guard */                                  \
+    .EnabledForType = {                               \
+      [EfiReservedMemoryType]               = TRUE,   \
+      [EfiLoaderCode]                       = TRUE,   \
+      [EfiLoaderData]                       = TRUE,   \
+      [EfiBootServicesCode]                 = TRUE,   \
+      [EfiBootServicesData]                 = TRUE,   \
+      [EfiRuntimeServicesCode]              = TRUE,   \
+      [EfiRuntimeServicesData]              = TRUE,   \
+      [EfiConventionalMemory]               = FALSE,  \
+      [EfiUnusableMemory]                   = TRUE,   \
+      [EfiACPIReclaimMemory]                = TRUE,   \
+      [EfiACPIMemoryNVS]                    = TRUE,   \
+      [EfiMemoryMappedIO]                   = TRUE,   \
+      [EfiMemoryMappedIOPortSpace]          = TRUE,   \
+      [EfiPalCode]                          = TRUE,   \
+      [EfiPersistentMemory]                 = FALSE,  \
+      [EfiUnacceptedMemoryType]             = TRUE,   \
+      [OEM_RESERVED_MPS_MEMORY_TYPE]        = TRUE,   \
+      [OS_RESERVED_MPS_MEMORY_TYPE]         = TRUE    \
+    }                                                 \
+  }                                                   \
+}
+
+//
+//  A memory profile recommended for production. Compared to the debug
+//  settings, this profile removes the pool guards and uses page guards
+//  for fewer memory types.
+//
+#define DXE_MEMORY_PROTECTION_SETTINGS_PROD_MODE      \
+{                                                     \
+  DXE_MEMORY_PROTECTION_SIGNATURE,                    \
+  DXE_MEMORY_PROTECTION_SETTINGS_CURRENT_VERSION,     \
+  TRUE, /* Stack Guard */                             \
+  TRUE, /* Stack Execution Protection */              \
+  {     /* NULL Pointer Detection */                  \
+    .Enabled                                = TRUE,   \
+    .DisableEndOfDxe                        = FALSE,  \
+    .NonstopModeEnabled                     = FALSE   \
+  },                                                  \
+  { /* Image Protection */                            \
+    .ProtectImageFromUnknown                = FALSE,  \
+    .ProtectImageFromFv                     = TRUE    \
+  },                                                  \
+  { /* Execution Protection */                        \
+    .EnabledForType = {                               \
+      [EfiReservedMemoryType]               = TRUE,   \
+      [EfiLoaderCode]                       = FALSE,  \
+      [EfiLoaderData]                       = TRUE,   \
+      [EfiBootServicesCode]                 = FALSE,  \
+      [EfiBootServicesData]                 = TRUE,   \
+      [EfiRuntimeServicesCode]              = FALSE,  \
+      [EfiRuntimeServicesData]              = TRUE,   \
+      [EfiConventionalMemory]               = TRUE,   \
+      [EfiUnusableMemory]                   = TRUE,   \
+      [EfiACPIReclaimMemory]                = TRUE,   \
+      [EfiACPIMemoryNVS]                    = TRUE,   \
+      [EfiMemoryMappedIO]                   = TRUE,   \
+      [EfiMemoryMappedIOPortSpace]          = TRUE,   \
+      [EfiPalCode]                          = TRUE,   \
+      [EfiPersistentMemory]                 = FALSE,  \
+      [EfiUnacceptedMemoryType]             = TRUE,   \
+      [OEM_RESERVED_MPS_MEMORY_TYPE]        = TRUE,   \
+      [OS_RESERVED_MPS_MEMORY_TYPE]         = TRUE    \
+    }                                                 \
+  },                                                  \
+  { /* Heap Guard */                                  \
+    .PageGuardEnabled                       = TRUE,   \
+    .PoolGuardEnabled                       = FALSE,  \
+    .FreedMemoryGuardEnabled                = FALSE,  \
+    .NonstopModeEnabled                     = FALSE,  \
+    .GuardAlignedToTail                     = TRUE    \
+  },                                                  \
+  { /* Pool Guard */                                  \
+    0                                                 \
+  },                                                  \
+  { /* Page Guard */                                  \
+    .EnabledForType = {                               \
+      [EfiReservedMemoryType]               = FALSE,  \
+      [EfiLoaderCode]                       = FALSE,  \
+      [EfiLoaderData]                       = FALSE,  \
+      [EfiBootServicesCode]                 = FALSE,  \
+      [EfiBootServicesData]                 = TRUE,   \
+      [EfiRuntimeServicesCode]              = FALSE,  \
+      [EfiRuntimeServicesData]              = TRUE,   \
+      [EfiConventionalMemory]               = FALSE,  \
+      [EfiUnusableMemory]                   = FALSE,  \
+      [EfiACPIReclaimMemory]                = FALSE,  \
+      [EfiACPIMemoryNVS]                    = FALSE,  \
+      [EfiMemoryMappedIO]                   = FALSE,  \
+      [EfiMemoryMappedIOPortSpace]          = FALSE,  \
+      [EfiPalCode]                          = FALSE,  \
+      [EfiPersistentMemory]                 = FALSE,  \
+      [EfiUnacceptedMemoryType]             = FALSE,  \
+      [OEM_RESERVED_MPS_MEMORY_TYPE]        = FALSE,  \
+      [OS_RESERVED_MPS_MEMORY_TYPE]         = FALSE   \
+    }                                                 \
+  }                                                   \
+}
+
+//
+//  A memory profile which mirrors DXE_MEMORY_PROTECTION_SETTINGS_PROD_MODE
+//  but doesn't include page guards.
+//
+#define DXE_MEMORY_PROTECTION_SETTINGS_PROD_MODE_NO_PAGE_GUARDS   \
+{                                                                 \
+  DXE_MEMORY_PROTECTION_SIGNATURE,                                \
+  DXE_MEMORY_PROTECTION_SETTINGS_CURRENT_VERSION,                 \
+  TRUE, /* Stack Guard */                                         \
+  TRUE, /* Stack Execution Protection */                          \
+  {     /* NULL Pointer Detection */                              \
+    .Enabled                                = TRUE,               \
+    .DisableEndOfDxe                        = FALSE,              \
+    .NonstopModeEnabled                     = FALSE               \
+  },                                                              \
+  { /* Image Protection */                                        \
+    .ProtectImageFromUnknown                = FALSE,              \
+    .ProtectImageFromFv                     = TRUE                \
+  },                                                              \
+  { /* Execution Protection */                                    \
+    .EnabledForType = {                                           \
+      [EfiReservedMemoryType]               = TRUE,               \
+      [EfiLoaderCode]                       = FALSE,              \
+      [EfiLoaderData]                       = TRUE,               \
+      [EfiBootServicesCode]                 = FALSE,              \
+      [EfiBootServicesData]                 = TRUE,               \
+      [EfiRuntimeServicesCode]              = FALSE,              \
+      [EfiRuntimeServicesData]              = TRUE,               \
+      [EfiConventionalMemory]               = TRUE,               \
+      [EfiUnusableMemory]                   = TRUE,               \
+      [EfiACPIReclaimMemory]                = TRUE,               \
+      [EfiACPIMemoryNVS]                    = TRUE,               \
+      [EfiMemoryMappedIO]                   = TRUE,               \
+      [EfiMemoryMappedIOPortSpace]          = TRUE,               \
+      [EfiPalCode]                          = TRUE,               \
+      [EfiPersistentMemory]                 = FALSE,              \
+      [EfiUnacceptedMemoryType]             = TRUE,               \
+      [OEM_RESERVED_MPS_MEMORY_TYPE]        = TRUE,               \
+      [OS_RESERVED_MPS_MEMORY_TYPE]         = TRUE                \
+    }                                                             \
+  },                                                              \
+  { /* Heap Guard */                                              \
+    0                                                             \
+  },                                                              \
+  { /* Pool Guard */                                              \
+    0                                                             \
+  },                                                              \
+  { /* Page Guard */                                              \
+    0                                                             \
+  }                                                               \
+}
+
 //
 //  A memory profile which uses the fixed at build PCDs defined in 
MdeModulePkg.dec
 //
@@ -121,10 +342,146 @@ typedef struct {
   }                                                                            
                                                       \
 }
 
+//
+//  A memory profile which disables all DXE memory protection settings.
+//
+#define DXE_MEMORY_PROTECTION_SETTINGS_OFF            \
+{                                                     \
+  DXE_MEMORY_PROTECTION_SIGNATURE,                    \
+  DXE_MEMORY_PROTECTION_SETTINGS_CURRENT_VERSION,     \
+  FALSE, /* Stack Guard */                            \
+  FALSE, /* Stack Execution Protection */             \
+  {      /* NULL Pointer Detection */                 \
+    0                                                 \
+  },                                                  \
+  { /* Image Protection */                            \
+    0                                                 \
+  },                                                  \
+  { /* Execution Protection */                        \
+    0                                                 \
+  },                                                  \
+  { /* Heap Guard */                                  \
+    0                                                 \
+  },                                                  \
+  { /* Pool Guard */                                  \
+    0                                                 \
+  },                                                  \
+  { /* Page Guard */                                  \
+    0                                                 \
+  }                                                   \
+}
+
 ////////////////////////////
 // MM PROFILE DEFINITIONS //
 ////////////////////////////
 
+//
+//  A memory profile ideal for development scenarios.
+//
+#define MM_MEMORY_PROTECTION_SETTINGS_DEBUG        \
+{                                                  \
+  MM_MEMORY_PROTECTION_SIGNATURE,                  \
+  MM_MEMORY_PROTECTION_SETTINGS_CURRENT_VERSION,   \
+  { /* NULL Pointer Detection */                   \
+    .Enabled                             = TRUE,   \
+    .NonstopModeEnabled                  = TRUE    \
+  },                                               \
+  { /* Heap Guard */                               \
+    .PageGuardEnabled                    = TRUE,   \
+    .PoolGuardEnabled                    = TRUE,   \
+    .NonstopModeEnabled                  = TRUE,   \
+    .GuardAlignedToTail                  = TRUE    \
+  },                                               \
+  { /* Pool Guard */                               \
+    .EnabledForType = {                            \
+      [EfiReservedMemoryType]            = FALSE,  \
+      [EfiLoaderCode]                    = FALSE,  \
+      [EfiLoaderData]                    = FALSE,  \
+      [EfiBootServicesCode]              = FALSE,  \
+      [EfiBootServicesData]              = TRUE,   \
+      [EfiRuntimeServicesCode]           = FALSE,  \
+      [EfiRuntimeServicesData]           = TRUE,   \
+      [EfiConventionalMemory]            = FALSE,  \
+      [EfiUnusableMemory]                = FALSE,  \
+      [EfiACPIReclaimMemory]             = FALSE,  \
+      [EfiACPIMemoryNVS]                 = FALSE,  \
+      [EfiMemoryMappedIO]                = FALSE,  \
+      [EfiMemoryMappedIOPortSpace]       = FALSE,  \
+      [EfiPalCode]                       = FALSE,  \
+      [EfiPersistentMemory]              = FALSE,  \
+      [EfiUnacceptedMemoryType]          = FALSE,  \
+      [OEM_RESERVED_MPS_MEMORY_TYPE]     = FALSE,  \
+      [OS_RESERVED_MPS_MEMORY_TYPE]      = FALSE   \
+    }                                              \
+  },                                               \
+  { /* Page Guard */                               \
+    .EnabledForType = {                            \
+      [EfiReservedMemoryType]            = FALSE,  \
+      [EfiLoaderCode]                    = FALSE,  \
+      [EfiLoaderData]                    = FALSE,  \
+      [EfiBootServicesCode]              = FALSE,  \
+      [EfiBootServicesData]              = TRUE,   \
+      [EfiRuntimeServicesCode]           = FALSE,  \
+      [EfiRuntimeServicesData]           = TRUE,   \
+      [EfiConventionalMemory]            = FALSE,  \
+      [EfiUnusableMemory]                = FALSE,  \
+      [EfiACPIReclaimMemory]             = FALSE,  \
+      [EfiACPIMemoryNVS]                 = FALSE,  \
+      [EfiMemoryMappedIO]                = FALSE,  \
+      [EfiMemoryMappedIOPortSpace]       = FALSE,  \
+      [EfiPalCode]                       = FALSE,  \
+      [EfiPersistentMemory]              = FALSE,  \
+      [EfiUnacceptedMemoryType]          = FALSE,  \
+      [OEM_RESERVED_MPS_MEMORY_TYPE]     = FALSE,  \
+      [OS_RESERVED_MPS_MEMORY_TYPE]      = FALSE   \
+    }                                              \
+  }                                                \
+}
+
+//
+//  A memory profile ideal for production scenarios.
+//
+#define MM_MEMORY_PROTECTION_SETTINGS_PROD_MODE    \
+{                                                  \
+  MM_MEMORY_PROTECTION_SIGNATURE,                  \
+  MM_MEMORY_PROTECTION_SETTINGS_CURRENT_VERSION,   \
+  { /* NULL Pointer Detection */                   \
+    .Enabled                             = TRUE,   \
+    .NonstopModeEnabled                  = FALSE   \
+  },                                               \
+  { /* Heap Guard */                               \
+    .PageGuardEnabled                    = TRUE,   \
+    .PoolGuardEnabled                    = FALSE,  \
+    .NonstopModeEnabled                  = FALSE,  \
+    .GuardAlignedToTail                  = TRUE    \
+  },                                               \
+  { /* Pool Guard */                               \
+    0                                              \
+  },                                               \
+  { /* Page Guard */                               \
+    .EnabledForType = {                            \
+      [EfiReservedMemoryType]            = FALSE,  \
+      [EfiLoaderCode]                    = FALSE,  \
+      [EfiLoaderData]                    = FALSE,  \
+      [EfiBootServicesCode]              = FALSE,  \
+      [EfiBootServicesData]              = TRUE,   \
+      [EfiRuntimeServicesCode]           = FALSE,  \
+      [EfiRuntimeServicesData]           = TRUE,   \
+      [EfiConventionalMemory]            = FALSE,  \
+      [EfiUnusableMemory]                = FALSE,  \
+      [EfiACPIReclaimMemory]             = FALSE,  \
+      [EfiACPIMemoryNVS]                 = FALSE,  \
+      [EfiMemoryMappedIO]                = FALSE,  \
+      [EfiMemoryMappedIOPortSpace]       = FALSE,  \
+      [EfiPalCode]                       = FALSE,  \
+      [EfiPersistentMemory]              = FALSE,  \
+      [EfiUnacceptedMemoryType]          = FALSE,  \
+      [OEM_RESERVED_MPS_MEMORY_TYPE]     = FALSE,  \
+      [OS_RESERVED_MPS_MEMORY_TYPE]      = FALSE   \
+    }                                              \
+  }                                                \
+}
+
 //
 //  A memory profile which uses the fixed at build PCDs defined in 
MdeModulePkg.dec
 //
@@ -188,24 +545,80 @@ typedef struct {
   }                                                                            
                                           \
 }
 
+//
+//  A memory profile which disables all MM memory protection settings.
+//
+#define MM_MEMORY_PROTECTION_SETTINGS_OFF           \
+{                                                   \
+  MM_MEMORY_PROTECTION_SIGNATURE,                   \
+  MM_MEMORY_PROTECTION_SETTINGS_CURRENT_VERSION,    \
+  { /* NULL Pointer Detection */                    \
+    0                                               \
+  },                                                \
+  { /* Heap Guard */                                \
+    0                                               \
+  },                                                \
+  { /* Pool Guard */                                \
+    0                                               \
+  },                                                \
+  { /* Page Guard */                                \
+    0                                               \
+  }                                                 \
+}
+
 ////////////////////////////
 // PROFILE CONFIGURATIONS //
 ////////////////////////////
 
 DXE_MEMORY_PROTECTION_PROFILES  
DxeMemoryProtectionProfiles[DxeMemoryProtectionSettingsMax] = {
-  [DxeMemoryProtectionSettingsPcd] = {
+  [DxeMemoryProtectionSettingsDebug] =               {
+    .Name        = "Debug",
+    .Description = "Development profile ideal for debug scenarios",
+    .Settings    = DXE_MEMORY_PROTECTION_SETTINGS_DEBUG
+  },
+  [DxeMemoryProtectionSettingsRelease] =             {
+    .Name        = "Release",
+    .Description = "Release profile recommended for production scenarios",
+    .Settings    = DXE_MEMORY_PROTECTION_SETTINGS_PROD_MODE
+  },
+  [DxeMemoryProtectionSettingsReleaseNoPageGuards] = {
+    .Name        = "ReleaseNoPageGuards",
+    .Description = "Release profile without page guards recommended for 
performance sensitive production scenarios",
+    .Settings    = DXE_MEMORY_PROTECTION_SETTINGS_PROD_MODE_NO_PAGE_GUARDS
+  },
+  [DxeMemoryProtectionSettingsPcd] =                 {
     .Name        = "Pcd",
     .Description = "Memory protection settings from PCDs",
     .Settings    = DXE_MEMORY_PROTECTION_SETTINGS_PCD
   },
+  [DxeMemoryProtectionSettingsOff] =                 {
+    .Name        = "Off",
+    .Description = "Disables all memory protection settings",
+    .Settings    = DXE_MEMORY_PROTECTION_SETTINGS_OFF
+  }
 };
 
 MM_MEMORY_PROTECTION_PROFILES  
MmMemoryProtectionProfiles[MmMemoryProtectionSettingsMax] = {
-  [MmMemoryProtectionSettingsPcd] = {
+  [MmMemoryProtectionSettingsDebug] =   {
+    .Name        = "Debug",
+    .Description = "Development profile ideal for debug scenarios",
+    .Settings    = MM_MEMORY_PROTECTION_SETTINGS_DEBUG
+  },
+  [MmMemoryProtectionSettingsRelease] = {
+    .Name        = "Release",
+    .Description = "Release profile recommended for production scenarios",
+    .Settings    = MM_MEMORY_PROTECTION_SETTINGS_PROD_MODE
+  },
+  [MmMemoryProtectionSettingsPcd] =     {
     .Name        = "Pcd",
     .Description = "Memory protection settings from PCDs",
     .Settings    = MM_MEMORY_PROTECTION_SETTINGS_PCD
   },
+  [MmMemoryProtectionSettingsOff] =     {
+    .Name        = "Off",
+    .Description = "Disables all memory protection settings",
+    .Settings    = MM_MEMORY_PROTECTION_SETTINGS_OFF
+  }
 };
 
 /////////////////////////////////////
diff --git a/MdeModulePkg/Include/Library/SetMemoryProtectionsLib.h 
b/MdeModulePkg/Include/Library/SetMemoryProtectionsLib.h
index 023c987c3c7e..f4665130b0b3 100644
--- a/MdeModulePkg/Include/Library/SetMemoryProtectionsLib.h
+++ b/MdeModulePkg/Include/Library/SetMemoryProtectionsLib.h
@@ -17,6 +17,10 @@ typedef struct {
 } DXE_MEMORY_PROTECTION_PROFILES;
 
 typedef enum {
+  DxeMemoryProtectionSettingsDebug = 0,
+  DxeMemoryProtectionSettingsRelease,
+  DxeMemoryProtectionSettingsReleaseNoPageGuards,
+  DxeMemoryProtectionSettingsOff,
   DxeMemoryProtectionSettingsPcd,
   DxeMemoryProtectionSettingsMax
 } DXE_MEMORY_PROTECTION_PROFILE_INDEX;
@@ -28,6 +32,9 @@ typedef struct {
 } MM_MEMORY_PROTECTION_PROFILES;
 
 typedef enum {
+  MmMemoryProtectionSettingsDebug = 0,
+  MmMemoryProtectionSettingsRelease,
+  MmMemoryProtectionSettingsOff,
   MmMemoryProtectionSettingsPcd,
   MmMemoryProtectionSettingsMax
 } MM_MEMORY_PROTECTION_PROFILE_INDEX;
-- 
2.42.0.windows.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#108882): https://edk2.groups.io/g/devel/message/108882
Mute This Topic: https://groups.io/mt/101469960/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to