[BOOTLIB]:

- Fix a regression
- Add a few more flags
- Don't look for BCD in "Microsoft" directory

svn path=/trunk/; revision=69451
This commit is contained in:
Alex Ionescu 2015-10-05 04:51:32 +00:00
parent b25523b5e3
commit 10dbbf573b
5 changed files with 29 additions and 10 deletions

View file

@ -196,7 +196,7 @@ BmFwInitializeBootDirectoryPath (
}
/* Save the boot directory */
BootDirectory = L"\\EFI\\Microsoft\\Boot";
BootDirectory = L"\\EFI\\Boot"; /* Should be EFI\\ReactOS\\Boot */
Quickie:
/* Free all the allocations we made */
@ -560,7 +560,6 @@ BmOpenDataStore (
/* Otherwise, compute the hardcoded path of the BCD */
Status = BmpFwGetFullPath(L"\\BCD", &FullPath);
EfiPrintf(L"Status: %lx %s\r\n", Status, FullPath);
if (!NT_SUCCESS(Status))
{
/* User the raw path */
@ -686,7 +685,7 @@ BmMain (
PBL_RETURN_ARGUMENTS ReturnArguments;
BOOLEAN RebootOnError;
PGUID AppIdentifier;
HANDLE BcdHandle;
// HANDLE BcdHandle;
EfiPrintf(L"ReactOS UEFI Boot Manager Initializing...\n");
@ -734,8 +733,8 @@ BmMain (
BmFwInitializeBootDirectoryPath();
/* Load and initialize the boot configuration database (BCD) */
Status = BmOpenDataStore(&BcdHandle);
EfiPrintf(L"BCD Open: %lx\r\n", Status);
//Status = BmOpenDataStore(&BcdHandle);
//EfiPrintf(L"BCD Open: %lx\r\n", Status);
/* do more stuff!! */
EfiPrintf(L"We are A-OK!\r\n");

View file

@ -94,6 +94,9 @@
#define BL_DIRECTORY_ACCESS 0x04
#define BL_UNKNOWN_ACCESS 0x10
#define BL_DEVICE_READ_ACCESS 0x01
#define BL_DEVICE_WRITE_ACCESS 0x02
#define BL_DEVICE_ENTRY_OPENED 0x01
#define BL_DEVICE_ENTRY_READ_ACCESS 0x02
#define BL_DEVICE_ENTRY_WRITE_ACCESS 0x04
@ -226,6 +229,7 @@ typedef enum _BL_MEMORY_TYPE
BlLoaderReferencePage = 0xD0000007,
BlLoaderRamDisk = 0xD0000008,
BlLoaderData = 0xD000000A,
BlLoaderRegistry = 0xD000000B,
BlLoaderBlockMemory = 0xD000000C,
BlLoaderSelfMap = 0xD000000F,
@ -1639,6 +1643,21 @@ BlDeviceReadAtOffset (
_Out_ PULONG BytesRead
);
/* IMAGE ROUTINES ************************************************************/
NTSTATUS
BlImgLoadImageWithProgress2 (
_In_ ULONG DeviceId,
_In_ BL_MEMORY_TYPE MemoryType,
_In_ PWCHAR FileName,
_Inout_ PVOID* MappedBase,
_Inout_ PULONG MappedSize,
_In_ ULONG ImageFlags,
_In_ BOOLEAN ShowProgress,
_Out_opt_ PUCHAR* HashBuffer,
_Out_opt_ PULONG HashSize
);
/* FILE I/O ROUTINES *********************************************************/
NTSTATUS

View file

@ -1914,8 +1914,8 @@ BlpDeviceOpen (
goto Quickie;
}
/* Check for unsupported flags */
if (!(Flags & 3))
/* Make sure both read and write access are set */
if (!(Flags & (BL_DEVICE_READ_ACCESS | BL_DEVICE_WRITE_ACCESS)))
{
/* Bail out */
Status = STATUS_INVALID_PARAMETER;
@ -1982,7 +1982,9 @@ BlpDeviceOpen (
/* Fill it out */
RtlZeroMemory(DeviceEntry, sizeof(*DeviceEntry));
DeviceEntry->ReferenceCount = 1;
DeviceEntry->Flags |= 7;
DeviceEntry->Flags |= (BL_DEVICE_ENTRY_OPENED |
BL_DEVICE_ENTRY_READ_ACCESS |
BL_DEVICE_ENTRY_WRITE_ACCESS);
DeviceEntry->Unknown = Unknown;
/* Save flag 8 if needed */

View file

@ -797,7 +797,6 @@ EtfsMount (
EtfsFile->Offset = EtfsDevice->RootDirOffset;
EtfsFile->DirOffset = 0;
EtfsFile->Size = EtfsDevice->RootDirSize;
EfiPrintf(L"Root offset: %I64x Size: %I64x\r\n", EtfsFile->Offset, EtfsFile->Size);
EtfsFile->FsName = L"cdfs";
*FileEntry = RootEntry;

View file

@ -345,7 +345,7 @@ FileIoOpen (
Unknown,
FileTableCompareWithSubsetAttributes,
&DirectoryEntry);
if (NT_SUCCESS(Status))
if (!NT_SUCCESS(Status))
{
goto Quickie;
}