Author: ion
Date: Mon Oct 5 04:51:32 2015
New Revision: 69451
URL:
http://svn.reactos.org/svn/reactos?rev=69451&view=rev
Log:
[BOOTLIB]:
- Fix a regression
- Add a few more flags
- Don't look for BCD in "Microsoft" directory
Modified:
trunk/reactos/boot/environ/app/bootmgr/bootmgr.c
trunk/reactos/boot/environ/include/bl.h
trunk/reactos/boot/environ/lib/io/device.c
trunk/reactos/boot/environ/lib/io/etfs.c
trunk/reactos/boot/environ/lib/io/file.c
Modified: trunk/reactos/boot/environ/app/bootmgr/bootmgr.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/environ/app/bootmgr/b…
==============================================================================
--- trunk/reactos/boot/environ/app/bootmgr/bootmgr.c [iso-8859-1] (original)
+++ trunk/reactos/boot/environ/app/bootmgr/bootmgr.c [iso-8859-1] Mon Oct 5 04:51:32
2015
@@ -196,7 +196,7 @@
}
/* 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 @@
/* 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 @@
PBL_RETURN_ARGUMENTS ReturnArguments;
BOOLEAN RebootOnError;
PGUID AppIdentifier;
- HANDLE BcdHandle;
+ // HANDLE BcdHandle;
EfiPrintf(L"ReactOS UEFI Boot Manager Initializing...\n");
@@ -734,8 +733,8 @@
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");
Modified: trunk/reactos/boot/environ/include/bl.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/environ/include/bl.h?…
==============================================================================
--- trunk/reactos/boot/environ/include/bl.h [iso-8859-1] (original)
+++ trunk/reactos/boot/environ/include/bl.h [iso-8859-1] Mon Oct 5 04:51:32 2015
@@ -93,6 +93,9 @@
#define BL_FILE_WRITE_ACCESS 0x02
#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
@@ -226,6 +229,7 @@
BlLoaderReferencePage = 0xD0000007,
BlLoaderRamDisk = 0xD0000008,
BlLoaderData = 0xD000000A,
+ BlLoaderRegistry = 0xD000000B,
BlLoaderBlockMemory = 0xD000000C,
BlLoaderSelfMap = 0xD000000F,
@@ -1639,6 +1643,21 @@
_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
Modified: trunk/reactos/boot/environ/lib/io/device.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/environ/lib/io/device…
==============================================================================
--- trunk/reactos/boot/environ/lib/io/device.c [iso-8859-1] (original)
+++ trunk/reactos/boot/environ/lib/io/device.c [iso-8859-1] Mon Oct 5 04:51:32 2015
@@ -1914,8 +1914,8 @@
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 @@
/* 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 */
Modified: trunk/reactos/boot/environ/lib/io/etfs.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/environ/lib/io/etfs.c…
==============================================================================
--- trunk/reactos/boot/environ/lib/io/etfs.c [iso-8859-1] (original)
+++ trunk/reactos/boot/environ/lib/io/etfs.c [iso-8859-1] Mon Oct 5 04:51:32 2015
@@ -797,7 +797,6 @@
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;
Modified: trunk/reactos/boot/environ/lib/io/file.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/environ/lib/io/file.c…
==============================================================================
--- trunk/reactos/boot/environ/lib/io/file.c [iso-8859-1] (original)
+++ trunk/reactos/boot/environ/lib/io/file.c [iso-8859-1] Mon Oct 5 04:51:32 2015
@@ -345,7 +345,7 @@
Unknown,
FileTableCompareWithSubsetAttributes,
&DirectoryEntry);
- if (NT_SUCCESS(Status))
+ if (!NT_SUCCESS(Status))
{
goto Quickie;
}