* PROGRAMMER: Eric Kohl
*/
-#include <ddk/ntddk.h>
-#include <ntdll/rtl.h>
-
-#include "usetup.h"
-#include "inicache.h"
-#include "filesup.h"
-#include "bootsup.h"
+#include <usetup.h>
#define NDEBUG
#include <debug.h>
L"DefaultOS",
L"ReactOS");
-#if 0
/* Timeout=10 */
IniCacheInsertKey(IniSection,
NULL,
INSERT_LAST,
L"TimeOut",
L"10");
-#endif
/* Create "Display" section */
IniSection = IniCacheAppendSection(IniCache,
L"SystemPath",
ArcPath);
- /* Options=/DEBUGPORT=SCREEN */
+ /* Options=/DEBUGPORT=SCREEN /NOGUIBOOT */
IniCacheInsertKey(IniSection,
NULL,
INSERT_LAST,
L"Options",
- L"/DEBUGPORT=SCREEN");
+ L"/DEBUGPORT=SCREEN /NOGUIBOOT");
/* Create "DOS" section */
IniSection = IniCacheAppendSection(IniCache,
L"SystemPath",
ArcPath);
- /* Options=/DEBUGPORT=SCREEN */
+ /* Options=/DEBUGPORT=SCREEN /NOGUIBOOT */
IniCacheInsertKey(IniSection,
NULL,
INSERT_LAST,
L"Options",
- L"/DEBUGPORT=SCREEN");
+ L"/DEBUGPORT=SCREEN /NOGUIBOOT");
/* Save the ini file */
IniCacheSave(IniCache, IniPath);
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL);
Status = NtCreateFile(&FileHandle,
- FILE_WRITE_ACCESS,
+ GENERIC_WRITE,
&ObjectAttributes,
&IoStatusBlock,
NULL,
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL);
Status = NtCreateFile(&FileHandle,
- FILE_WRITE_ACCESS,
+ GENERIC_WRITE,
&ObjectAttributes,
&IoStatusBlock,
NULL,
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL);
Status = NtCreateFile(&FileHandle,
- FILE_WRITE_ACCESS,
+ GENERIC_WRITE,
&ObjectAttributes,
&IoStatusBlock,
NULL,
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_WRITE_ACCESS,
+ GENERIC_WRITE,
&ObjectAttributes,
&IoStatusBlock,
0,
UNICODE_STRING Name;
HANDLE FileHandle;
NTSTATUS Status;
- PUCHAR OrigBootSector;
- PUCHAR NewBootSector;
+ PPARTITION_SECTOR OrigBootSector;
+ PPARTITION_SECTOR NewBootSector;
/* Allocate buffer for original bootsector */
- OrigBootSector = (PUCHAR)RtlAllocateHeap(ProcessHeap,
- 0,
- SECTORSIZE);
+ OrigBootSector = (PPARTITION_SECTOR)RtlAllocateHeap(ProcessHeap,
+ 0,
+ sizeof(PARTITION_SECTOR));
if (OrigBootSector == NULL)
return(STATUS_INSUFFICIENT_RESOURCES);
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
/* Allocate buffer for new bootsector */
- NewBootSector = (PUCHAR)RtlAllocateHeap(ProcessHeap,
- 0,
- SECTORSIZE);
+ NewBootSector = (PPARTITION_SECTOR)RtlAllocateHeap(ProcessHeap,
+ 0,
+ sizeof(PARTITION_SECTOR));
if (NewBootSector == NULL)
{
RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL,
&IoStatusBlock,
NewBootSector,
- SECTORSIZE,
+ sizeof(PARTITION_SECTOR),
NULL,
NULL);
NtClose(FileHandle);
}
/* Copy partition table from old MBR to new */
- RtlCopyMemory ((NewBootSector + 446),
- (OrigBootSector + 446),
- 4*16 /* Length of partition table */);
+ RtlCopyMemory (&NewBootSector->Signature,
+ &OrigBootSector->Signature,
+ sizeof(PARTITION_SECTOR) - offsetof(PARTITION_SECTOR, Signature) /* Length of partition table */);
/* Free the original boot sector */
RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
NULL,
NULL);
- Status = NtCreateFile(&FileHandle,
- FILE_WRITE_ACCESS,
- &ObjectAttributes,
- &IoStatusBlock,
- NULL,
- FILE_ATTRIBUTE_NORMAL,
- 0,
- FILE_OVERWRITE_IF,
- FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY,
- NULL,
- 0);
+ Status = NtOpenFile(&FileHandle,
+ GENERIC_WRITE,
+ &ObjectAttributes,
+ &IoStatusBlock,
+ 0,
+ FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY);
if (!NT_SUCCESS(Status))
{
+ DPRINT1("NtOpenFile() failed (Status %lx)\n", Status);
RtlFreeHeap(ProcessHeap, 0, NewBootSector);
return(Status);
}
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL,
NULL);
- Status = NtCreateFile(&FileHandle,
- FILE_WRITE_ACCESS,
- &ObjectAttributes,
- &IoStatusBlock,
- NULL,
- FILE_ATTRIBUTE_NORMAL,
- 0,
- FILE_OVERWRITE_IF,
- FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY,
- NULL,
- 0);
+ Status = NtOpenFile(&FileHandle,
+ GENERIC_WRITE,
+ &ObjectAttributes,
+ &IoStatusBlock,
+ 0,
+ FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY);
if (!NT_SUCCESS(Status))
{
+ DPRINT1("NtOpenFile() failed (Status %lx)\n", Status);
RtlFreeHeap(ProcessHeap, 0, NewBootSector);
return(Status);
}
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ACCESS,
+ GENERIC_READ,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_WRITE_ACCESS | FILE_WRITE_ATTRIBUTES,
+ GENERIC_WRITE,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES,
+ GENERIC_READ|GENERIC_WRITE,
&ObjectAttributes,
&IoStatusBlock,
0,
NULL);
Status = NtOpenFile(&FileHandle,
- FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES,
+ GENERIC_READ|GENERIC_WRITE,
&ObjectAttributes,
&IoStatusBlock,
0,
wcscpy(SrcPath, SourceRootPath->Buffer);
wcscat(SrcPath, L"\\loader\\freeldr.sys");
- wcscat(DstPath, L"\\Device\\Floppy0\\freeldr.sys");
+ wcscpy(DstPath, L"\\Device\\Floppy0\\freeldr.sys");
DPRINT("Copy: %S ==> %S\n", SrcPath, DstPath);
Status = SetupCopyFile(SrcPath, DstPath);
}
/* Create new 'freeldr.ini' */
- wcscat(DstPath, L"\\Device\\Floppy0\\freeldr.ini");
+ wcscpy(DstPath, L"\\Device\\Floppy0\\freeldr.ini");
DPRINT("Create new 'freeldr.ini'\n");
Status = CreateFreeLoaderIniForReactos(DstPath,
wcscpy(SrcPath, SourceRootPath->Buffer);
wcscat(SrcPath, L"\\loader\\fat.bin");
- wcscat(DstPath, L"\\Device\\Floppy0");
+ wcscpy(DstPath, L"\\Device\\Floppy0");
DPRINT("Install FAT bootcode: %S ==> %S\n", SrcPath, DstPath);
Status = InstallFat16BootCodeToDisk(SrcPath,