diff --git a/BOOT/ENVIRON/APP/BOOTMGR/bcd.c b/BOOT/ENVIRON/APP/BOOTMGR/bcd.c new file mode 100644 index 0000000..603d796 --- /dev/null +++ b/BOOT/ENVIRON/APP/BOOTMGR/bcd.c @@ -0,0 +1,56 @@ +/*++ + +Copyright (c) 2024, Quinn Stephens. +Provided under the BSD 3-Clause license. + +Module Name: + + bcd.c + +Abstract: + + BCD (Boot Configuration Data, aka Boot Data Store) routines. + +--*/ + +#include "bootlib.h" + +NTSTATUS +BmOpenDataStore ( + IN OUT PHANDLE DataStore + ) + +/*++ + +Routine Description: + + Opens the boot configuration data store. + +Arguments: + + DataStore - pointer to memory to put the data store handle in. + +Return Value: + + STATUS_SUCCESS if successful, + Other NTSTATUS value on failure. + +--*/ + +{ + *DataStore = INVALID_HANDLE_VALUE; + +/* + NTSTATUS Status; + PBOOT_DEVICE Device; + PWSTR FilePath; + BOOLEAN FilePathSet; + + Device = NULL; + FilePath = NULL; + FilePathSet = FALSE; + + return BmGetDataStorePath(&Device, &FilePath, &FilePathSet); +*/ + return STATUS_SUCCESS; +} diff --git a/BOOT/ENVIRON/APP/BOOTMGR/bootmgr.c b/BOOT/ENVIRON/APP/BOOTMGR/bootmgr.c index ed74cd1..5d4f893 100644 --- a/BOOT/ENVIRON/APP/BOOTMGR/bootmgr.c +++ b/BOOT/ENVIRON/APP/BOOTMGR/bootmgr.c @@ -41,6 +41,7 @@ Return Value: { NTSTATUS Status; BOOT_LIBRARY_PARAMETERS LibraryParameters; + HANDLE DataStore; LibraryParameters.Flags = 0; @@ -53,6 +54,11 @@ Return Value: goto Exit; } + // + // Open the boot data store. + // + (VOID)BmOpenDataStore(&DataStore); + Exit: BlDestroyLibrary(); return Status; diff --git a/BOOT/ENVIRON/INC/bootmgr.h b/BOOT/ENVIRON/INC/bootmgr.h index cc434d2..6bdf152 100644 --- a/BOOT/ENVIRON/INC/bootmgr.h +++ b/BOOT/ENVIRON/INC/bootmgr.h @@ -244,6 +244,11 @@ typedef struct { BOOT_DEVICE Device; } BCDE_DEVICE, *PBCDE_DEVICE; +NTSTATUS +BmOpenDataStore ( + IN OUT PHANDLE DataStore + ); + NTSTATUS BmMain ( IN PBOOT_INPUT_PARAMETERS InputParameters