[ROSLOAD]: Continue work on target preparation OslPrepareTarget 2/104.

[ROSLOAD]: Stubplement OslpCheckForcedFailure, OslpGetSetBootStatusData, OslSetBootStatusData, OslGetBootStatusData.
[ROSLOAD]: Stub OslpInitializeBootStatusDataLog, OslpReadWriteBootStatusData.
[BOOTLIB]: Fix BlAppendBootOptionString to accept an actual BCD ID instead of hardcoding LibraryPath.
[BOOTLIB]: Fix BlAppendBootOptionBoolean to accept an actual BOOLEAN value instead of hardcoding TRUE.
[BOOTLIB]: Implement BlDeviceIsVirtualPartitionDevice.
[BOOTLIB]: Add missing BcdOSLoaderInteger_ForceFailure BCD value. Add BCDE_OSLOADER_TYPE_BOOT_STATUS_POLICY based on BcdEdit.exe and Geoff Chappel site.
This commit is contained in:
Alex Ionescu 2018-02-04 16:01:38 -08:00
parent f0c7db730c
commit 9ec85c29e3
7 changed files with 632 additions and 21 deletions

View file

@ -624,7 +624,8 @@ BlCopyBootOptions (
NTSTATUS
BlAppendBootOptionBoolean (
_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry,
_In_ ULONG OptionId
_In_ ULONG OptionId,
_In_ BOOLEAN Value
)
{
NTSTATUS Status;
@ -642,7 +643,7 @@ BlAppendBootOptionBoolean (
Option->DataSize = sizeof(USHORT);
Option->Type = OptionId;
Option->DataOffset = sizeof(*Option);
*(PBOOLEAN)(Option + 1) = TRUE;
*(PBOOLEAN)(Option + 1) = Value;
/* Append it */
Status = BlAppendBootOptions(AppEntry, Option);
@ -687,6 +688,7 @@ BlAppendBootOptionInteger (
NTSTATUS
BlAppendBootOptionString (
_In_ PBL_LOADED_APPLICATION_ENTRY AppEntry,
_In_ ULONG OptionId,
_In_ PWCHAR OptionString
)
{
@ -719,7 +721,7 @@ BlAppendBootOptionString (
/* Initialize it and copy the string value */
RtlZeroMemory(Option, sizeof(*Option) + StringSize);
Option->DataSize = StringSize;
Option->Type = BcdLibraryString_ApplicationPath;
Option->Type = OptionId;
Option->DataOffset = sizeof(*Option);
wcsncpy((PWCHAR)Option + 1, OptionString, StringSize / sizeof(WCHAR));