}
/* 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 */
/* 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 */
PBL_RETURN_ARGUMENTS ReturnArguments;
BOOLEAN RebootOnError;
PGUID AppIdentifier;
- HANDLE BcdHandle;
+ // HANDLE BcdHandle;
EfiPrintf(L"ReactOS UEFI Boot Manager Initializing...\n");
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");
#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
BlLoaderReferencePage = 0xD0000007,
BlLoaderRamDisk = 0xD0000008,
BlLoaderData = 0xD000000A,
+ BlLoaderRegistry = 0xD000000B,
BlLoaderBlockMemory = 0xD000000C,
BlLoaderSelfMap = 0xD000000F,
_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
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;
/* 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 */
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;
Unknown,
FileTableCompareWithSubsetAttributes,
&DirectoryEntry);
- if (NT_SUCCESS(Status))
+ if (!NT_SUCCESS(Status))
{
goto Quickie;
}