[BOOT:MM] Big work on MM :)

This commit is contained in:
2024-08-27 09:32:16 -04:00
parent 6a868b45ba
commit 2751b0f7bb
7 changed files with 930 additions and 29 deletions

View File

@@ -106,7 +106,7 @@ typedef struct {
ULONG MdlOffset;
ULONG DescriptorCount;
ULONG DescriptorSize;
ULONG BasePageOffset;
ULONG FirstPageOffset;
} BOOT_MEMORY_INFO, *PBOOT_MEMORY_INFO;
//
@@ -154,11 +154,12 @@ typedef enum {
typedef struct {
LIST_ENTRY ListEntry;
ULONGLONG BasePage;
ULONG Pages;
ULONGLONG FirstPage;
ULONGLONG MappedFirstPage;
ULONG PageCount;
ULONG Attributes;
ULONG Type;
MEMORY_TYPE Type;
} MEMORY_DESCRIPTOR, *PMEMORY_DESCRIPTOR;
typedef enum {

View File

@@ -18,12 +18,27 @@ Abstract:
#include "bootlib.h"
#define MDL_OPERATION_FLAGS_TRUNCATE 0x02
NTSTATUS
MmFwGetMemoryMap (
IN OUT PMEMORY_DESCRIPTOR_LIST Mdl,
IN ULONG Flags
);
BOOLEAN
MmMdpHasPrecedence (
IN MEMORY_TYPE A,
IN MEMORY_TYPE B
);
BOOLEAN
MmMdpTruncateDescriptor (
IN PMEMORY_DESCRIPTOR_LIST Mdl,
IN PMEMORY_DESCRIPTOR Descriptor,
IN ULONG Flags
);
NTSTATUS
MmMdAddDescriptorToList (
IN PMEMORY_DESCRIPTOR_LIST Mdl,
@@ -49,8 +64,8 @@ MmMdFreeList (
PMEMORY_DESCRIPTOR
MmMdInitDescriptor (
IN ULONGLONG BasePage,
IN ULONGLONG MappedBasePage,
IN ULONGLONG FirstPage,
IN ULONGLONG MappedFirstPage,
IN ULONGLONG PageCount,
IN ULONG Attributes,
IN MEMORY_TYPE Type