mirror of
https://github.com/reactos/reactos.git
synced 2025-01-03 21:09:19 +00:00
- Set correct flags when calling Nt* functions during file copy
- Fix reading of disks parameter in registry - Keep FS name in unicode instead of char - Don't hardcode more than once ReactOS directory on bootcd ('\reactos') - Get screen dimensions only once (at startup) - General cleanup (warnings...) - Do some actions only if __REACTOS__ if defined. (I'm currently using them to debug usetup) svn path=/trunk/; revision=24718
This commit is contained in:
parent
7885d994ff
commit
eb77bd4e85
24 changed files with 616 additions and 507 deletions
|
@ -1787,10 +1787,10 @@ UpdateBootIni(PWSTR BootIniPath,
|
|||
return(Status);
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN
|
||||
CheckInstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath)
|
||||
{
|
||||
#ifdef __REACTOS__
|
||||
if (DoesFileExist(SystemRootPath->Buffer, L"ntldr") ||
|
||||
DoesFileExist(SystemRootPath->Buffer, L"boot.ini"))
|
||||
{
|
||||
|
@ -1801,6 +1801,7 @@ CheckInstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath)
|
|||
{
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1812,6 +1813,7 @@ InstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath,
|
|||
PUNICODE_STRING DestinationArcPath,
|
||||
UCHAR PartitionType)
|
||||
{
|
||||
#ifdef __REACTOS__
|
||||
WCHAR SrcPath[MAX_PATH];
|
||||
WCHAR DstPath[MAX_PATH];
|
||||
NTSTATUS Status;
|
||||
|
@ -2117,6 +2119,9 @@ InstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath,
|
|||
}
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
#else
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -2124,6 +2129,7 @@ NTSTATUS
|
|||
InstallFatBootcodeToFloppy(PUNICODE_STRING SourceRootPath,
|
||||
PUNICODE_STRING DestinationArcPath)
|
||||
{
|
||||
#ifdef __REACTOS__
|
||||
WCHAR SrcPath[MAX_PATH];
|
||||
WCHAR DstPath[MAX_PATH];
|
||||
NTSTATUS Status;
|
||||
|
@ -2170,6 +2176,9 @@ InstallFatBootcodeToFloppy(PUNICODE_STRING SourceRootPath,
|
|||
}
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
#else
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id$
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
/* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS text-mode setup
|
||||
* FILE: subsys/system/usetup/filequeue.c
|
||||
* PURPOSE: File queue functions
|
||||
|
@ -34,7 +33,6 @@
|
|||
|
||||
/* INCLUDES *****************************************************************/
|
||||
|
||||
|
||||
typedef struct _QUEUEENTRY
|
||||
{
|
||||
struct _QUEUEENTRY *Prev;
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id$
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
/* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS text-mode setup
|
||||
* FILE: subsys/system/usetup/filesup.c
|
||||
* PURPOSE: File support functions
|
||||
|
@ -34,7 +33,6 @@
|
|||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
|
||||
static BOOLEAN HasCurrentCabinet = FALSE;
|
||||
static WCHAR CurrentCabinetName[MAX_PATH];
|
||||
|
||||
|
@ -76,9 +74,9 @@ SetupCreateDirectory(PWCHAR DirectoryName)
|
|||
&IoStatusBlock,
|
||||
NULL,
|
||||
FILE_ATTRIBUTE_DIRECTORY,
|
||||
0,
|
||||
FILE_CREATE,
|
||||
FILE_SYNCHRONOUS_IO_NONALERT | FILE_DIRECTORY_FILE,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE,
|
||||
FILE_OPEN_IF,
|
||||
FILE_DIRECTORY_FILE,
|
||||
NULL,
|
||||
0);
|
||||
if (NT_SUCCESS(Status))
|
||||
|
@ -108,10 +106,12 @@ SetupCopyFile(PWCHAR SourceFileName,
|
|||
NTSTATUS Status;
|
||||
PVOID SourceFileMap = 0;
|
||||
HANDLE SourceFileSection;
|
||||
ULONG SourceSectionSize = 0;
|
||||
SIZE_T SourceSectionSize = 0;
|
||||
LARGE_INTEGER ByteOffset;
|
||||
|
||||
Buffer = NULL;
|
||||
|
||||
#ifdef __REACTOS__
|
||||
RtlInitUnicodeString(&FileName,
|
||||
SourceFileName);
|
||||
|
||||
|
@ -126,12 +126,20 @@ SetupCopyFile(PWCHAR SourceFileName,
|
|||
&ObjectAttributes,
|
||||
&IoStatusBlock,
|
||||
FILE_SHARE_READ,
|
||||
FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY);
|
||||
FILE_SEQUENTIAL_ONLY);
|
||||
if(!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("NtOpenFile failed: %x\n", Status);
|
||||
goto done;
|
||||
}
|
||||
#else
|
||||
FileHandleSource = CreateFileW(SourceFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
|
||||
if (FileHandleSource == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
Status = STATUS_UNSUCCESSFUL;
|
||||
goto done;
|
||||
}
|
||||
#endif
|
||||
|
||||
Status = NtQueryInformationFile(FileHandleSource,
|
||||
&IoStatusBlock,
|
||||
|
@ -155,10 +163,10 @@ SetupCopyFile(PWCHAR SourceFileName,
|
|||
|
||||
Status = NtCreateSection( &SourceFileSection,
|
||||
SECTION_MAP_READ,
|
||||
0,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
PAGE_READONLY,
|
||||
0,
|
||||
SEC_COMMIT,
|
||||
FileHandleSource);
|
||||
if(!NT_SUCCESS(Status))
|
||||
{
|
||||
|
@ -171,10 +179,10 @@ SetupCopyFile(PWCHAR SourceFileName,
|
|||
&SourceFileMap,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
NULL,
|
||||
&SourceSectionSize,
|
||||
ViewUnmap,
|
||||
0,
|
||||
SEC_COMMIT,
|
||||
PAGE_READONLY );
|
||||
if(!NT_SUCCESS(Status))
|
||||
{
|
||||
|
@ -199,7 +207,7 @@ SetupCopyFile(PWCHAR SourceFileName,
|
|||
FILE_ATTRIBUTE_NORMAL,
|
||||
0,
|
||||
FILE_OVERWRITE_IF,
|
||||
FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY,
|
||||
FILE_NO_INTERMEDIATE_BUFFERING | FILE_SEQUENTIAL_ONLY,
|
||||
NULL,
|
||||
0);
|
||||
if(!NT_SUCCESS(Status))
|
||||
|
@ -208,17 +216,18 @@ SetupCopyFile(PWCHAR SourceFileName,
|
|||
goto unmapsrcsec;
|
||||
}
|
||||
|
||||
RegionSize = PAGE_ROUND_UP(FileStandard.EndOfFile.u.LowPart);
|
||||
RegionSize = (ULONG)PAGE_ROUND_UP(FileStandard.EndOfFile.u.LowPart);
|
||||
IoStatusBlock.Status = 0;
|
||||
ByteOffset.QuadPart = 0;
|
||||
Status = NtWriteFile(FileHandleDest,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&IoStatusBlock,
|
||||
SourceFileMap,
|
||||
RegionSize,
|
||||
0,
|
||||
0);
|
||||
&ByteOffset,
|
||||
NULL);
|
||||
if(!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("NtWriteFile failed: %x:%x, iosb: %p src: %p, size: %x\n", Status, IoStatusBlock.Status, &IoStatusBlock, SourceFileMap, RegionSize);
|
||||
|
@ -254,7 +263,7 @@ SetupCopyFile(PWCHAR SourceFileName,
|
|||
return(Status);
|
||||
}
|
||||
|
||||
|
||||
#ifdef __REACTOS__
|
||||
NTSTATUS
|
||||
SetupExtractFile(PWCHAR CabinetFileName,
|
||||
PWCHAR SourceFileName,
|
||||
|
@ -314,7 +323,7 @@ SetupExtractFile(PWCHAR CabinetFileName,
|
|||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
BOOLEAN
|
||||
DoesFileExist(PWSTR PathName,
|
||||
|
|
|
@ -32,10 +32,10 @@
|
|||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
static VOID
|
||||
AddProvider(
|
||||
VOID
|
||||
FS_AddProvider(
|
||||
IN OUT PFILE_SYSTEM_LIST List,
|
||||
IN LPCSTR FileSystem,
|
||||
IN LPCWSTR FileSystem,
|
||||
IN FORMATEX FormatFunc,
|
||||
IN CHKDSKEX ChkdskFunc)
|
||||
{
|
||||
|
@ -70,7 +70,7 @@ CreateFileSystemList(
|
|||
IN SHORT Left,
|
||||
IN SHORT Top,
|
||||
IN BOOLEAN ForceFormat,
|
||||
IN LPCSTR ForceFileSystem)
|
||||
IN LPCWSTR ForceFileSystem)
|
||||
{
|
||||
PFILE_SYSTEM_LIST List;
|
||||
PFILE_SYSTEM_ITEM Item;
|
||||
|
@ -85,11 +85,12 @@ CreateFileSystemList(
|
|||
List->Selected = NULL;
|
||||
InitializeListHead(&List->ListHead);
|
||||
|
||||
AddProvider(List, "FAT", VfatFormat, VfatChkdsk);
|
||||
HOST_CreateFileSystemList(List);
|
||||
|
||||
if (!ForceFormat)
|
||||
{
|
||||
/* Add 'Keep' provider */
|
||||
AddProvider(List, NULL, NULL, NULL);
|
||||
FS_AddProvider(List, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
/* Search for ForceFileSystem in list */
|
||||
|
@ -97,7 +98,7 @@ CreateFileSystemList(
|
|||
while (ListEntry != &List->ListHead)
|
||||
{
|
||||
Item = CONTAINING_RECORD(ListEntry, FILE_SYSTEM_ITEM, ListEntry);
|
||||
if (Item->FileSystem && strcmp(ForceFileSystem, Item->FileSystem) == 0)
|
||||
if (Item->FileSystem && wcscmp(ForceFileSystem, Item->FileSystem) == 0)
|
||||
{
|
||||
List->Selected = Item;
|
||||
break;
|
||||
|
@ -147,7 +148,7 @@ DrawFileSystemList(
|
|||
Item = CONTAINING_RECORD(ListEntry, FILE_SYSTEM_ITEM, ListEntry);
|
||||
|
||||
coPos.X = List->Left;
|
||||
coPos.Y = List->Top + Index;
|
||||
coPos.Y = List->Top + (SHORT)Index;
|
||||
FillConsoleOutputAttribute(StdOutput,
|
||||
FOREGROUND_WHITE | BACKGROUND_BLUE,
|
||||
sizeof(Buffer),
|
||||
|
@ -162,9 +163,9 @@ DrawFileSystemList(
|
|||
if (Item->FileSystem)
|
||||
{
|
||||
if (Item->QuickFormat)
|
||||
sprintf(Buffer, " Format partition as %s file system (quick format) ", Item->FileSystem);
|
||||
sprintf(Buffer, " Format partition as %S file system (quick format) ", Item->FileSystem);
|
||||
else
|
||||
sprintf(Buffer, " Format partition as %s file system ", Item->FileSystem);
|
||||
sprintf(Buffer, " Format partition as %S file system ", Item->FileSystem);
|
||||
}
|
||||
else
|
||||
sprintf(Buffer, " Keep current file system (no changes) ");
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id$
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
/* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS text-mode setup
|
||||
* FILE: subsys/system/usetup/fslist.h
|
||||
* PURPOSE: Filesystem list functions
|
||||
|
@ -28,30 +27,38 @@
|
|||
#ifndef __FSLIST_H__
|
||||
#define __FSLIST_H__
|
||||
|
||||
#include <fmifs/fmifs.h>
|
||||
|
||||
typedef struct _FILE_SYSTEM_ITEM
|
||||
{
|
||||
LIST_ENTRY ListEntry;
|
||||
LPCSTR FileSystem; /* Not owned by the item */
|
||||
FORMATEX FormatFunc;
|
||||
CHKDSKEX ChkdskFunc;
|
||||
BOOLEAN QuickFormat;
|
||||
LIST_ENTRY ListEntry;
|
||||
LPCWSTR FileSystem; /* Not owned by the item */
|
||||
FORMATEX FormatFunc;
|
||||
CHKDSKEX ChkdskFunc;
|
||||
BOOLEAN QuickFormat;
|
||||
} FILE_SYSTEM_ITEM, *PFILE_SYSTEM_ITEM;
|
||||
|
||||
typedef struct _FILE_SYSTEM_LIST
|
||||
{
|
||||
SHORT Left;
|
||||
SHORT Top;
|
||||
PFILE_SYSTEM_ITEM Selected;
|
||||
LIST_ENTRY ListHead; /* List of FILE_SYSTEM_ITEM */
|
||||
SHORT Left;
|
||||
SHORT Top;
|
||||
PFILE_SYSTEM_ITEM Selected;
|
||||
LIST_ENTRY ListHead; /* List of FILE_SYSTEM_ITEM */
|
||||
} FILE_SYSTEM_LIST, *PFILE_SYSTEM_LIST;
|
||||
|
||||
VOID
|
||||
FS_AddProvider(
|
||||
IN OUT PFILE_SYSTEM_LIST List,
|
||||
IN LPCWSTR FileSystem,
|
||||
IN FORMATEX FormatFunc,
|
||||
IN CHKDSKEX ChkdskFunc);
|
||||
|
||||
PFILE_SYSTEM_LIST
|
||||
CreateFileSystemList(
|
||||
IN SHORT Left,
|
||||
IN SHORT Top,
|
||||
IN BOOLEAN ForceFormat,
|
||||
IN LPCSTR ForceFileSystem);
|
||||
IN SHORT Left,
|
||||
IN SHORT Top,
|
||||
IN BOOLEAN ForceFormat,
|
||||
IN LPCWSTR ForceFileSystem);
|
||||
|
||||
VOID
|
||||
DestroyFileSystemList(
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id$
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
/* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS text-mode setup
|
||||
* FILE: subsys/system/usetup/genlist.c
|
||||
* PURPOSE: Generic list functions
|
||||
|
@ -72,7 +71,7 @@ DestroyGenericList(PGENERIC_LIST List,
|
|||
|
||||
/* Release user data */
|
||||
if (FreeUserData && ListEntry->UserData != NULL)
|
||||
RtlFreeHeap (ProcessHeap, 0, &ListEntry->UserData);
|
||||
RtlFreeHeap (ProcessHeap, 0, ListEntry->UserData);
|
||||
|
||||
/* Release list entry */
|
||||
RtlFreeHeap (ProcessHeap, 0, ListEntry);
|
||||
|
|
33
reactos/base/setup/usetup/host.h
Normal file
33
reactos/base/setup/usetup/host.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
#ifdef __REACTOS__
|
||||
|
||||
#include "native/host_native.h"
|
||||
#define HOST_InitConsole NATIVE_InitConsole
|
||||
#define HOST_InitMemory NATIVE_InitMemory
|
||||
#define HOST_CreateFileSystemList NATIVE_CreateFileSystemList
|
||||
|
||||
#else
|
||||
|
||||
#include "win32/host_win32.h"
|
||||
#define HOST_InitConsole WIN32_InitConsole
|
||||
#define HOST_InitMemory WIN32_InitMemory
|
||||
#define HOST_CreateFileSystemList WIN32_CreateFileSystemList
|
||||
|
||||
#endif
|
||||
|
||||
BOOLEAN
|
||||
HOST_InitConsole(
|
||||
VOID);
|
||||
|
||||
BOOLEAN
|
||||
HOST_InitMemory(
|
||||
VOID);
|
||||
|
||||
BOOLEAN
|
||||
HOST_CreateFileSystemList(
|
||||
IN PFILE_SYSTEM_LIST List);
|
||||
|
||||
BOOLEAN
|
||||
HOST_FormatPartition(
|
||||
IN PFILE_SYSTEM_ITEM FileSystem,
|
||||
IN PCUNICODE_STRING DriveRoot,
|
||||
IN PFMIFSCALLBACK Callback);
|
|
@ -27,13 +27,18 @@
|
|||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include "usetup.h"
|
||||
|
||||
#ifdef __REACTOS__
|
||||
#include <infros.h>
|
||||
#endif
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
#ifdef __REACTOS__
|
||||
|
||||
VOID WINAPI
|
||||
InfpCloseInfFile(
|
||||
IN HINF InfHandle)
|
||||
|
@ -141,18 +146,63 @@ InfpOpenInfFileW(
|
|||
&ErrorLineUL);
|
||||
*ErrorLine = (UINT)ErrorLineUL;
|
||||
if (!NT_SUCCESS(Status))
|
||||
return NULL;
|
||||
return INVALID_HANDLE_VALUE;
|
||||
|
||||
return hInf;
|
||||
}
|
||||
|
||||
#endif /* __REACTOS__ */
|
||||
|
||||
BOOLEAN
|
||||
INF_GetData(
|
||||
IN PINFCONTEXT Context,
|
||||
OUT PWCHAR *Key,
|
||||
OUT PWCHAR *Data)
|
||||
{
|
||||
#ifdef __REACTOS__
|
||||
return InfGetData(Context, Key, Data);
|
||||
#else
|
||||
static PWCHAR pLastCallData[4] = { NULL, NULL, NULL, NULL };
|
||||
static DWORD currentIndex = 0;
|
||||
DWORD dwSize, i;
|
||||
BOOL ret;
|
||||
|
||||
currentIndex ^= 2;
|
||||
|
||||
if (Key) *Key = NULL;
|
||||
if (Data) *Data = NULL;
|
||||
|
||||
if (SetupGetFieldCount(Context) != 1)
|
||||
return FALSE;
|
||||
|
||||
for (i = 0; i <= 1; i++)
|
||||
{
|
||||
ret = SetupGetStringFieldW(
|
||||
Context,
|
||||
i,
|
||||
NULL,
|
||||
0,
|
||||
&dwSize);
|
||||
if (!ret)
|
||||
return FALSE;
|
||||
HeapFree(GetProcessHeap(), 0, pLastCallData[i + currentIndex]);
|
||||
pLastCallData[i + currentIndex] = HeapAlloc(GetProcessHeap(), 0, dwSize * sizeof(WCHAR));
|
||||
ret = SetupGetStringFieldW(
|
||||
Context,
|
||||
i,
|
||||
pLastCallData[i + currentIndex],
|
||||
dwSize,
|
||||
NULL);
|
||||
if (!ret)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (Key)
|
||||
*Key = pLastCallData[0 + currentIndex];
|
||||
if (Data)
|
||||
*Data = pLastCallData[1 + currentIndex];
|
||||
return TRUE;
|
||||
#endif /* !__REACTOS__ */
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
|
@ -161,7 +211,39 @@ INF_GetDataField(
|
|||
IN ULONG FieldIndex,
|
||||
OUT PWCHAR *Data)
|
||||
{
|
||||
#ifdef __REACTOS__
|
||||
return InfGetDataField(Context, FieldIndex, Data);
|
||||
#else
|
||||
static PWCHAR pLastCallsData[] = { NULL, NULL, NULL };
|
||||
static DWORD NextIndex = 0;
|
||||
DWORD dwSize;
|
||||
BOOL ret;
|
||||
|
||||
*Data = NULL;
|
||||
|
||||
ret = SetupGetStringFieldW(
|
||||
Context,
|
||||
FieldIndex,
|
||||
NULL,
|
||||
0,
|
||||
&dwSize);
|
||||
if (!ret)
|
||||
return FALSE;
|
||||
HeapFree(GetProcessHeap(), 0, pLastCallsData[NextIndex]);
|
||||
pLastCallsData[NextIndex] = HeapAlloc(GetProcessHeap(), 0, dwSize * sizeof(WCHAR));
|
||||
ret = SetupGetStringFieldW(
|
||||
Context,
|
||||
FieldIndex,
|
||||
pLastCallsData[NextIndex],
|
||||
dwSize,
|
||||
NULL);
|
||||
if (!ret)
|
||||
return FALSE;
|
||||
|
||||
*Data = pLastCallsData[NextIndex];
|
||||
NextIndex = (NextIndex + 1) % (sizeof(pLastCallsData) / sizeof(pLastCallsData[0]));
|
||||
return TRUE;
|
||||
#endif /* !__REACTOS__ */
|
||||
}
|
||||
|
||||
HINF WINAPI
|
||||
|
@ -172,6 +254,7 @@ INF_OpenBufferedFileA(
|
|||
IN DWORD InfStyle,
|
||||
OUT PUINT ErrorLine)
|
||||
{
|
||||
#ifdef __REACTOS__
|
||||
HINF hInf = NULL;
|
||||
ULONG ErrorLineUL;
|
||||
NTSTATUS Status;
|
||||
|
@ -183,15 +266,20 @@ INF_OpenBufferedFileA(
|
|||
&ErrorLineUL);
|
||||
*ErrorLine = (UINT)ErrorLineUL;
|
||||
if (!NT_SUCCESS(Status))
|
||||
return NULL;
|
||||
return INVALID_HANDLE_VALUE;
|
||||
|
||||
return hInf;
|
||||
#else
|
||||
return INVALID_HANDLE_VALUE;
|
||||
#endif /* !__REACTOS__ */
|
||||
}
|
||||
|
||||
VOID INF_SetHeap(
|
||||
IN PVOID Heap)
|
||||
{
|
||||
#ifdef __REACTOS__
|
||||
InfSetHeap(Heap);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -27,6 +27,12 @@
|
|||
#ifndef __INFFILE_H__
|
||||
#define __INFFILE_H__
|
||||
|
||||
#ifndef __REACTOS__
|
||||
|
||||
#include <setupapi.h>
|
||||
|
||||
#else /* __REACTOS__ */
|
||||
|
||||
#include <infcommon.h>
|
||||
|
||||
#define SetupCloseInfFile InfpCloseInfFile
|
||||
|
@ -107,6 +113,8 @@ InfpOpenInfFileW(
|
|||
IN DWORD InfStyle,
|
||||
OUT PUINT ErrorLine);
|
||||
|
||||
#endif /* __REACTOS__ */
|
||||
|
||||
BOOLEAN
|
||||
INF_GetData(
|
||||
IN PINFCONTEXT Context,
|
||||
|
|
|
@ -31,8 +31,33 @@
|
|||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* GLOBALS ******************************************************************/
|
||||
|
||||
HANDLE StdInput = INVALID_HANDLE_VALUE;
|
||||
HANDLE StdOutput = INVALID_HANDLE_VALUE;
|
||||
|
||||
SHORT xScreen = 0;
|
||||
SHORT yScreen = 0;
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
BOOLEAN
|
||||
CONSOLE_Init(
|
||||
VOID)
|
||||
{
|
||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
||||
if (!HOST_InitConsole())
|
||||
return FALSE;
|
||||
|
||||
StdInput = GetStdHandle(STD_INPUT_HANDLE);
|
||||
StdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
if (!GetConsoleScreenBufferInfo(StdOutput, &csbi))
|
||||
return FALSE;
|
||||
xScreen = csbi.dwSize.X;
|
||||
yScreen = 50;//csbi.dwSize.Y;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
VOID
|
||||
CONSOLE_ConInKey(
|
||||
OUT PINPUT_RECORD Buffer)
|
||||
|
@ -72,7 +97,7 @@ CONSOLE_ConOutPuts(
|
|||
WriteConsole(
|
||||
StdOutput,
|
||||
szText,
|
||||
strlen(szText),
|
||||
(ULONG)strlen(szText),
|
||||
&Written,
|
||||
NULL);
|
||||
WriteConsole(
|
||||
|
@ -88,7 +113,7 @@ CONSOLE_ConOutPrintf(
|
|||
IN LPCSTR szFormat, ...)
|
||||
{
|
||||
CHAR szOut[256];
|
||||
DWORD dwWritten;
|
||||
ULONG dwWritten;
|
||||
va_list arg_ptr;
|
||||
|
||||
va_start(arg_ptr, szFormat);
|
||||
|
@ -98,7 +123,7 @@ CONSOLE_ConOutPrintf(
|
|||
WriteConsole(
|
||||
StdOutput,
|
||||
szOut,
|
||||
strlen(szOut),
|
||||
(ULONG)strlen(szOut),
|
||||
&dwWritten,
|
||||
NULL);
|
||||
}
|
||||
|
@ -123,20 +148,6 @@ CONSOLE_GetCursorY(VOID)
|
|||
return csbi.dwCursorPosition.Y;
|
||||
}
|
||||
|
||||
VOID
|
||||
CONSOLE_GetScreenSize(
|
||||
OUT SHORT *maxx,
|
||||
OUT SHORT *maxy)
|
||||
{
|
||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
||||
|
||||
GetConsoleScreenBufferInfo(StdOutput, &csbi);
|
||||
|
||||
*maxx = csbi.dwSize.X;
|
||||
|
||||
*maxy = csbi.dwSize.Y;
|
||||
}
|
||||
|
||||
VOID
|
||||
CONSOLE_SetCursorType(
|
||||
IN BOOL bInsert,
|
||||
|
@ -219,7 +230,7 @@ CONSOLE_SetStatusText(
|
|||
WriteConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
Buffer,
|
||||
strlen(Buffer),
|
||||
(ULONG)strlen(Buffer),
|
||||
coPos,
|
||||
&Written);
|
||||
}
|
||||
|
@ -285,7 +296,7 @@ CONSOLE_SetTextXY(
|
|||
WriteConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
Text,
|
||||
strlen(Text),
|
||||
(ULONG)strlen(Text),
|
||||
coPos,
|
||||
&Written);
|
||||
}
|
||||
|
@ -298,14 +309,14 @@ CONSOLE_SetInputTextXY(
|
|||
IN LPCWSTR Text)
|
||||
{
|
||||
COORD coPos;
|
||||
ULONG Length;
|
||||
SHORT Length;
|
||||
ULONG Written;
|
||||
|
||||
coPos.X = x;
|
||||
coPos.Y = y;
|
||||
|
||||
Length = wcslen(Text);
|
||||
if (Length > (ULONG)len - 1)
|
||||
Length = (SHORT)wcslen(Text);
|
||||
if (Length > len - 1)
|
||||
Length = len - 1;
|
||||
|
||||
FillConsoleOutputAttribute(
|
||||
|
@ -318,7 +329,7 @@ CONSOLE_SetInputTextXY(
|
|||
WriteConsoleOutputCharacterW(
|
||||
StdOutput,
|
||||
Text,
|
||||
Length,
|
||||
(ULONG)Length,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
|
@ -330,7 +341,7 @@ CONSOLE_SetInputTextXY(
|
|||
coPos,
|
||||
&Written);
|
||||
|
||||
if ((ULONG)len > Length + 1)
|
||||
if (len > Length + 1)
|
||||
{
|
||||
coPos.X++;
|
||||
FillConsoleOutputCharacterA(
|
||||
|
@ -355,7 +366,7 @@ CONSOLE_SetUnderlinedTextXY(
|
|||
coPos.X = x;
|
||||
coPos.Y = y;
|
||||
|
||||
Length = strlen(Text);
|
||||
Length = (ULONG)strlen(Text);
|
||||
|
||||
WriteConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
|
@ -386,7 +397,7 @@ CONSOLE_SetInvertedTextXY(
|
|||
coPos.X = x;
|
||||
coPos.Y = y;
|
||||
|
||||
Length = strlen(Text);
|
||||
Length = (ULONG)strlen(Text);
|
||||
|
||||
FillConsoleOutputAttribute(
|
||||
StdOutput,
|
||||
|
@ -416,7 +427,7 @@ CONSOLE_SetHighlightedTextXY(
|
|||
coPos.X = x;
|
||||
coPos.Y = y;
|
||||
|
||||
Length = strlen(Text);
|
||||
Length = (ULONG)strlen(Text);
|
||||
|
||||
FillConsoleOutputAttribute(
|
||||
StdOutput,
|
||||
|
@ -454,7 +465,7 @@ CONSOLE_PrintTextXY(
|
|||
WriteConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
buffer,
|
||||
strlen(buffer),
|
||||
(ULONG)strlen(buffer),
|
||||
coPos,
|
||||
&Written);
|
||||
}
|
||||
|
@ -469,7 +480,7 @@ CONSOLE_PrintTextXYN(
|
|||
CHAR buffer[512];
|
||||
va_list ap;
|
||||
COORD coPos;
|
||||
ULONG Length;
|
||||
SHORT Length;
|
||||
ULONG Written;
|
||||
|
||||
va_start(ap, fmt);
|
||||
|
@ -479,8 +490,8 @@ CONSOLE_PrintTextXYN(
|
|||
coPos.X = x;
|
||||
coPos.Y = y;
|
||||
|
||||
Length = strlen(buffer);
|
||||
if (Length > (ULONG)len - 1)
|
||||
Length = (SHORT)strlen(buffer);
|
||||
if (Length > len - 1)
|
||||
Length = len - 1;
|
||||
|
||||
WriteConsoleOutputCharacterA(
|
||||
|
@ -492,7 +503,7 @@ CONSOLE_PrintTextXYN(
|
|||
|
||||
coPos.X += Length;
|
||||
|
||||
if ((ULONG)len > Length)
|
||||
if (len > Length)
|
||||
{
|
||||
FillConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
|
|
|
@ -34,7 +34,9 @@
|
|||
extern HANDLE StdInput, StdOutput;
|
||||
extern SHORT xScreen, yScreen;
|
||||
|
||||
#include "../native/utils/console.h"
|
||||
BOOLEAN
|
||||
CONSOLE_Init(
|
||||
VOID);
|
||||
|
||||
VOID
|
||||
CONSOLE_ClearScreen(VOID);
|
||||
|
@ -61,11 +63,6 @@ CONSOLE_GetCursorX(VOID);
|
|||
SHORT
|
||||
CONSOLE_GetCursorY(VOID);
|
||||
|
||||
VOID
|
||||
CONSOLE_GetScreenSize(
|
||||
OUT SHORT *maxx,
|
||||
OUT SHORT *maxy);
|
||||
|
||||
VOID
|
||||
CONSOLE_InvertTextXY(
|
||||
IN SHORT x,
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
* PURPOSE: Text-mode setup
|
||||
* PROGRAMMER: Eric Kohl
|
||||
* Casper S. Hornstrup (chorns@users.sourceforge.net)
|
||||
* Hervé Poussineau (hpoussin@reactos.org)
|
||||
*/
|
||||
|
||||
#include "usetup.h"
|
||||
|
@ -73,6 +74,7 @@ typedef enum _PAGE_NUMBER
|
|||
|
||||
HANDLE ProcessHeap;
|
||||
UNICODE_STRING SourceRootPath;
|
||||
UNICODE_STRING SourcePath;
|
||||
BOOLEAN IsUnattendedSetup = FALSE;
|
||||
LONG UnattendDestinationDiskNumber;
|
||||
LONG UnattendDestinationPartitionNumber;
|
||||
|
@ -86,9 +88,6 @@ static PPARTLIST PartitionList = NULL;
|
|||
|
||||
static PFILE_SYSTEM_LIST FileSystemList = NULL;
|
||||
|
||||
|
||||
static UNICODE_STRING SourcePath;
|
||||
|
||||
static UNICODE_STRING InstallPath;
|
||||
|
||||
/* Path to the install directory */
|
||||
|
@ -138,14 +137,111 @@ PrintString(char* fmt,...)
|
|||
#define POPUP_WAIT_ANY_KEY 1
|
||||
#define POPUP_WAIT_ENTER 2
|
||||
|
||||
static VOID
|
||||
DrawBox(
|
||||
IN SHORT xLeft,
|
||||
IN SHORT yTop,
|
||||
IN SHORT Width,
|
||||
IN SHORT Height)
|
||||
{
|
||||
COORD coPos;
|
||||
ULONG Written;
|
||||
|
||||
/* draw upper left corner */
|
||||
coPos.X = xLeft;
|
||||
coPos.Y = yTop;
|
||||
FillConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
0xDA, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw upper edge */
|
||||
coPos.X = xLeft + 1;
|
||||
coPos.Y = yTop;
|
||||
FillConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
0xC4, // '-',
|
||||
Width - 2,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw upper right corner */
|
||||
coPos.X = xLeft + Width - 1;
|
||||
coPos.Y = yTop;
|
||||
FillConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
0xBF, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* Draw right edge, inner space and left edge */
|
||||
for (coPos.Y = yTop + 1; coPos.Y < yTop + Height - 1; coPos.Y++)
|
||||
{
|
||||
coPos.X = xLeft;
|
||||
FillConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
0xB3, // '|',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
coPos.X = xLeft + 1;
|
||||
FillConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
' ',
|
||||
Width - 2,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
coPos.X = xLeft + Width - 1;
|
||||
FillConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
0xB3, // '|',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
}
|
||||
|
||||
/* draw lower left corner */
|
||||
coPos.X = xLeft;
|
||||
coPos.Y = yTop + Height - 1;
|
||||
FillConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
0xC0, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw lower edge */
|
||||
coPos.X = xLeft + 1;
|
||||
coPos.Y = yTop + Height - 1;
|
||||
FillConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
0xC4, // '-',
|
||||
Width - 2,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw lower right corner */
|
||||
coPos.X = xLeft + Width - 1;
|
||||
coPos.Y = yTop + Height - 1;
|
||||
FillConsoleOutputCharacterA(
|
||||
StdOutput,
|
||||
0xD9, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
}
|
||||
|
||||
static VOID
|
||||
PopupError(PCHAR Text,
|
||||
PCHAR Status,
|
||||
PINPUT_RECORD Ir,
|
||||
ULONG WaitEvent)
|
||||
{
|
||||
SHORT xScreen;
|
||||
SHORT yScreen;
|
||||
SHORT yTop;
|
||||
SHORT xLeft;
|
||||
COORD coPos;
|
||||
|
@ -195,8 +291,6 @@ PopupError(PCHAR Text,
|
|||
MaxLength = Length;
|
||||
}
|
||||
|
||||
CONSOLE_GetScreenSize(&xScreen, &yScreen);
|
||||
|
||||
Width = MaxLength + 4;
|
||||
Height = Lines + 2;
|
||||
if (Status != NULL)
|
||||
|
@ -217,84 +311,7 @@ PopupError(PCHAR Text,
|
|||
&Written);
|
||||
}
|
||||
|
||||
/* draw upper left corner */
|
||||
coPos.X = xLeft;
|
||||
coPos.Y = yTop;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xDA, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw upper edge */
|
||||
coPos.X = xLeft + 1;
|
||||
coPos.Y = yTop;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xC4, // '-',
|
||||
Width - 2,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw upper right corner */
|
||||
coPos.X = xLeft + Width - 1;
|
||||
coPos.Y = yTop;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xBF, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* Draw right edge, inner space and left edge */
|
||||
for (coPos.Y = yTop + 1; coPos.Y < yTop + Height - 1; coPos.Y++)
|
||||
{
|
||||
coPos.X = xLeft;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xB3, // '|',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
coPos.X = xLeft + 1;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
' ',
|
||||
Width - 2,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
coPos.X = xLeft + Width - 1;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xB3, // '|',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
}
|
||||
|
||||
/* draw lower left corner */
|
||||
coPos.X = xLeft;
|
||||
coPos.Y = yTop + Height - 1;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xC0, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw lower edge */
|
||||
coPos.X = xLeft + 1;
|
||||
coPos.Y = yTop + Height - 1;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xC4, // '-',
|
||||
Width - 2,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw lower right corner */
|
||||
coPos.X = xLeft + Width - 1;
|
||||
coPos.Y = yTop + Height - 1;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xD9, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
DrawBox(xLeft, yTop, Width, Height);
|
||||
|
||||
/* Print message text */
|
||||
coPos.Y = yTop + 1;
|
||||
|
@ -628,8 +645,8 @@ SetupStartPage(PINPUT_RECORD Ir)
|
|||
#endif
|
||||
|
||||
/* Load txtsetup.sif from install media. */
|
||||
wcscpy(FileNameBuffer, SourceRootPath.Buffer);
|
||||
wcscat(FileNameBuffer, L"\\reactos\\txtsetup.sif");
|
||||
wcscpy(FileNameBuffer, SourcePath.Buffer);
|
||||
wcscat(FileNameBuffer, L"\\txtsetup.sif");
|
||||
|
||||
SetupInf = SetupOpenInfFileW(FileNameBuffer,
|
||||
NULL,
|
||||
|
@ -927,7 +944,10 @@ DeviceSettingsPage(PINPUT_RECORD Ir)
|
|||
ComputerList = CreateComputerTypeList(SetupInf);
|
||||
if (ComputerList == NULL)
|
||||
{
|
||||
/* FIXME: report error */
|
||||
PopupError("Setup failed to load the computer type list.\n",
|
||||
"ENTER = Reboot computer",
|
||||
Ir, POPUP_WAIT_ENTER);
|
||||
return QUIT_PAGE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -937,7 +957,10 @@ DeviceSettingsPage(PINPUT_RECORD Ir)
|
|||
DisplayList = CreateDisplayDriverList(SetupInf);
|
||||
if (DisplayList == NULL)
|
||||
{
|
||||
/* FIXME: report error */
|
||||
PopupError("Setup failed to load the display settings list.\n",
|
||||
"ENTER = Reboot computer",
|
||||
Ir, POPUP_WAIT_ENTER);
|
||||
return QUIT_PAGE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -947,7 +970,10 @@ DeviceSettingsPage(PINPUT_RECORD Ir)
|
|||
KeyboardList = CreateKeyboardDriverList(SetupInf);
|
||||
if (KeyboardList == NULL)
|
||||
{
|
||||
/* FIXME: report error */
|
||||
PopupError("Setup failed to load the keyboard type list.\n",
|
||||
"ENTER = Reboot computer",
|
||||
Ir, POPUP_WAIT_ENTER);
|
||||
return QUIT_PAGE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1049,9 +1075,6 @@ DeviceSettingsPage(PINPUT_RECORD Ir)
|
|||
static PAGE_NUMBER
|
||||
ComputerSettingsPage(PINPUT_RECORD Ir)
|
||||
{
|
||||
SHORT xScreen;
|
||||
SHORT yScreen;
|
||||
|
||||
CONSOLE_SetTextXY(6, 8, "You want to change the type of computer to be installed.");
|
||||
|
||||
CONSOLE_SetTextXY(8, 10, "\x07 Press the UP or DOWN key to select the desired computer type.");
|
||||
|
@ -1060,8 +1083,6 @@ ComputerSettingsPage(PINPUT_RECORD Ir)
|
|||
CONSOLE_SetTextXY(8, 13, "\x07 Press the ESC key to return to the previous page without changing");
|
||||
CONSOLE_SetTextXY(8, 14, " the computer type.");
|
||||
|
||||
CONSOLE_GetScreenSize(&xScreen, &yScreen);
|
||||
|
||||
DrawGenericList(ComputerList,
|
||||
2,
|
||||
18,
|
||||
|
@ -1112,9 +1133,6 @@ ComputerSettingsPage(PINPUT_RECORD Ir)
|
|||
static PAGE_NUMBER
|
||||
DisplaySettingsPage(PINPUT_RECORD Ir)
|
||||
{
|
||||
SHORT xScreen;
|
||||
SHORT yScreen;
|
||||
|
||||
CONSOLE_SetTextXY(6, 8, "You want to change the type of display to be installed.");
|
||||
|
||||
CONSOLE_SetTextXY(8, 10, "\x07 Press the UP or DOWN key to select the desired display type.");
|
||||
|
@ -1123,8 +1141,6 @@ DisplaySettingsPage(PINPUT_RECORD Ir)
|
|||
CONSOLE_SetTextXY(8, 13, "\x07 Press the ESC key to return to the previous page without changing");
|
||||
CONSOLE_SetTextXY(8, 14, " the display type.");
|
||||
|
||||
CONSOLE_GetScreenSize(&xScreen, &yScreen);
|
||||
|
||||
DrawGenericList(DisplayList,
|
||||
2,
|
||||
18,
|
||||
|
@ -1177,9 +1193,6 @@ DisplaySettingsPage(PINPUT_RECORD Ir)
|
|||
static PAGE_NUMBER
|
||||
KeyboardSettingsPage(PINPUT_RECORD Ir)
|
||||
{
|
||||
SHORT xScreen;
|
||||
SHORT yScreen;
|
||||
|
||||
CONSOLE_SetTextXY(6, 8, "You want to change the type of keyboard to be installed.");
|
||||
|
||||
CONSOLE_SetTextXY(8, 10, "\x07 Press the UP or DOWN key to select the desired keyboard type.");
|
||||
|
@ -1188,8 +1201,6 @@ KeyboardSettingsPage(PINPUT_RECORD Ir)
|
|||
CONSOLE_SetTextXY(8, 13, "\x07 Press the ESC key to return to the previous page without changing");
|
||||
CONSOLE_SetTextXY(8, 14, " the keyboard type.");
|
||||
|
||||
CONSOLE_GetScreenSize(&xScreen, &yScreen);
|
||||
|
||||
DrawGenericList(KeyboardList,
|
||||
2,
|
||||
18,
|
||||
|
@ -1240,9 +1251,6 @@ KeyboardSettingsPage(PINPUT_RECORD Ir)
|
|||
static PAGE_NUMBER
|
||||
LayoutSettingsPage(PINPUT_RECORD Ir)
|
||||
{
|
||||
SHORT xScreen;
|
||||
SHORT yScreen;
|
||||
|
||||
CONSOLE_SetTextXY(6, 8, "You want to change the keyboard layout to be installed.");
|
||||
|
||||
CONSOLE_SetTextXY(8, 10, "\x07 Press the UP or DOWN key to select the desired keyboard");
|
||||
|
@ -1251,8 +1259,6 @@ LayoutSettingsPage(PINPUT_RECORD Ir)
|
|||
CONSOLE_SetTextXY(8, 13, "\x07 Press the ESC key to return to the previous page without changing");
|
||||
CONSOLE_SetTextXY(8, 14, " the keyboard layout.");
|
||||
|
||||
CONSOLE_GetScreenSize(&xScreen, &yScreen);
|
||||
|
||||
DrawGenericList(LayoutList,
|
||||
2,
|
||||
18,
|
||||
|
@ -1303,9 +1309,6 @@ LayoutSettingsPage(PINPUT_RECORD Ir)
|
|||
static PAGE_NUMBER
|
||||
SelectPartitionPage(PINPUT_RECORD Ir)
|
||||
{
|
||||
SHORT xScreen;
|
||||
SHORT yScreen;
|
||||
|
||||
CONSOLE_SetTextXY(6, 8, "The list below shows existing partitions and unused disk");
|
||||
CONSOLE_SetTextXY(6, 9, "space for new partitions.");
|
||||
|
||||
|
@ -1316,8 +1319,6 @@ SelectPartitionPage(PINPUT_RECORD Ir)
|
|||
|
||||
CONSOLE_SetStatusText(" Please wait...");
|
||||
|
||||
CONSOLE_GetScreenSize(&xScreen, &yScreen);
|
||||
|
||||
if (PartitionList == NULL)
|
||||
{
|
||||
PartitionList = CreatePartitionList (2,
|
||||
|
@ -1497,7 +1498,6 @@ ShowPartitionSizeInputBox(SHORT Left,
|
|||
INPUT_RECORD Ir;
|
||||
COORD coPos;
|
||||
ULONG Written;
|
||||
SHORT i;
|
||||
CHAR Buffer[100];
|
||||
ULONG Index;
|
||||
CHAR ch;
|
||||
|
@ -1510,78 +1510,7 @@ ShowPartitionSizeInputBox(SHORT Left,
|
|||
if (Cancel != NULL)
|
||||
*Cancel = FALSE;
|
||||
|
||||
/* draw upper left corner */
|
||||
coPos.X = Left;
|
||||
coPos.Y = Top;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xDA, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw upper edge */
|
||||
coPos.X = Left + 1;
|
||||
coPos.Y = Top;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xC4, // '-',
|
||||
Right - Left - 1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw upper right corner */
|
||||
coPos.X = Right;
|
||||
coPos.Y = Top;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xBF, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw left and right edge */
|
||||
for (i = Top + 1; i < Bottom; i++)
|
||||
{
|
||||
coPos.X = Left;
|
||||
coPos.Y = i;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xB3, // '|',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
coPos.X = Right;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xB3, //'|',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
}
|
||||
|
||||
/* draw lower left corner */
|
||||
coPos.X = Left;
|
||||
coPos.Y = Bottom;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xC0, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw lower edge */
|
||||
coPos.X = Left + 1;
|
||||
coPos.Y = Bottom;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xC4, // '-',
|
||||
Right - Left - 1,
|
||||
coPos,
|
||||
&Written);
|
||||
|
||||
/* draw lower right corner */
|
||||
coPos.X = Right;
|
||||
coPos.Y = Bottom;
|
||||
FillConsoleOutputCharacterA(StdOutput,
|
||||
0xD9, // '+',
|
||||
1,
|
||||
coPos,
|
||||
&Written);
|
||||
DrawBox(Left, Top, Right - Left + 1, Bottom - Top + 1);
|
||||
|
||||
/* Print message */
|
||||
coPos.X = Left + 2;
|
||||
|
@ -1671,8 +1600,6 @@ CreatePartitionPage (PINPUT_RECORD Ir)
|
|||
{
|
||||
PDISKENTRY DiskEntry;
|
||||
PPARTENTRY PartEntry;
|
||||
SHORT xScreen;
|
||||
SHORT yScreen;
|
||||
BOOLEAN Quit;
|
||||
BOOLEAN Cancel;
|
||||
CHAR InputBuffer[50];
|
||||
|
@ -1694,8 +1621,6 @@ CreatePartitionPage (PINPUT_RECORD Ir)
|
|||
|
||||
CONSOLE_SetStatusText (" Please wait...");
|
||||
|
||||
CONSOLE_GetScreenSize (&xScreen, &yScreen);
|
||||
|
||||
CONSOLE_SetTextXY (6, 8, "You have chosen to create a new partition on");
|
||||
|
||||
#if 0
|
||||
|
@ -2121,7 +2046,7 @@ SelectFileSystemPage (PINPUT_RECORD Ir)
|
|||
|
||||
if (FileSystemList == NULL)
|
||||
{
|
||||
FileSystemList = CreateFileSystemList (6, 26, PartEntry->New, "FAT");
|
||||
FileSystemList = CreateFileSystemList (6, 26, PartEntry->New, L"FAT");
|
||||
if (FileSystemList == NULL)
|
||||
{
|
||||
/* FIXME: show an error dialog */
|
||||
|
@ -2243,7 +2168,7 @@ FormatPartitionPage (PINPUT_RECORD Ir)
|
|||
|
||||
if (PartEntry->PartInfo[0].PartitionType == PARTITION_ENTRY_UNUSED)
|
||||
{
|
||||
if (strcmp(FileSystemList->Selected->FileSystem, "FAT") == 0)
|
||||
if (wcscmp(FileSystemList->Selected->FileSystem, L"FAT") == 0)
|
||||
{
|
||||
if (PartEntry->PartInfo[0].PartitionLength.QuadPart < (4200LL * 1024LL))
|
||||
{
|
||||
|
@ -2287,7 +2212,7 @@ FormatPartitionPage (PINPUT_RECORD Ir)
|
|||
}
|
||||
break;
|
||||
}
|
||||
else if (FileSystemList->Selected->FormatFunc)
|
||||
else if (!FileSystemList->Selected->FormatFunc)
|
||||
return QUIT_PAGE;
|
||||
}
|
||||
|
||||
|
@ -2382,7 +2307,7 @@ FormatPartitionPage (PINPUT_RECORD Ir)
|
|||
CheckActiveBootPartition(PartitionList);
|
||||
}
|
||||
|
||||
if (strcmp(FileSystemList->Selected->FileSystem, "FAT") == 0)
|
||||
if (wcscmp(FileSystemList->Selected->FileSystem, L"FAT") == 0)
|
||||
{
|
||||
/* FIXME: Install boot code. This is a hack! */
|
||||
if ((PartEntry->PartInfo[0].PartitionType == PARTITION_FAT32_XINT13)
|
||||
|
@ -2482,7 +2407,7 @@ CheckFileSystemPage(PINPUT_RECORD Ir)
|
|||
if (!CurrentFileSystem->ChkdskFunc)
|
||||
{
|
||||
sprintf(Buffer,
|
||||
"Setup is currently unable to check a partition formatted in %s.\n"
|
||||
"Setup is currently unable to check a partition formatted in %S.\n"
|
||||
"\n"
|
||||
" \x07 Press ENTER to continue Setup.\n"
|
||||
" \x07 Press F3 to quit Setup.",
|
||||
|
@ -2664,11 +2589,11 @@ InstallDirectoryPage(PINPUT_RECORD Ir)
|
|||
return(INSTALL_DIRECTORY_PAGE);
|
||||
}
|
||||
|
||||
|
||||
static BOOLEAN
|
||||
AddSectionToCopyQueue(HINF InfFile,
|
||||
PWCHAR SectionName,
|
||||
PWCHAR SourceCabinet,
|
||||
PCUNICODE_STRING DestinationPath,
|
||||
PINPUT_RECORD Ir)
|
||||
{
|
||||
INFCONTEXT FilesContext;
|
||||
|
@ -2752,7 +2677,7 @@ PrepareCopyPageInfFile(HINF InfFile,
|
|||
NTSTATUS Status;
|
||||
|
||||
/* Add common files */
|
||||
if (!AddSectionToCopyQueue(InfFile, L"SourceFiles", SourceCabinet, Ir))
|
||||
if (!AddSectionToCopyQueue(InfFile, L"SourceFiles", SourceCabinet, &DestinationPath, Ir))
|
||||
return FALSE;
|
||||
|
||||
/* Add specific files depending of computer type */
|
||||
|
@ -2762,7 +2687,7 @@ PrepareCopyPageInfFile(HINF InfFile,
|
|||
return FALSE;
|
||||
if (AdditionalSectionName)
|
||||
{
|
||||
if (!AddSectionToCopyQueue(InfFile, AdditionalSectionName, SourceCabinet, Ir))
|
||||
if (!AddSectionToCopyQueue(InfFile, AdditionalSectionName, SourceCabinet, &DestinationPath, Ir))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -2857,7 +2782,6 @@ PrepareCopyPageInfFile(HINF InfFile,
|
|||
return(TRUE);
|
||||
}
|
||||
|
||||
|
||||
static PAGE_NUMBER
|
||||
PrepareCopyPage(PINPUT_RECORD Ir)
|
||||
{
|
||||
|
@ -2882,7 +2806,7 @@ PrepareCopyPage(PINPUT_RECORD Ir)
|
|||
Ir, POPUP_WAIT_ENTER);
|
||||
return(QUIT_PAGE);
|
||||
}
|
||||
|
||||
|
||||
if (!PrepareCopyPageInfFile(SetupInf, NULL, Ir))
|
||||
{
|
||||
return QUIT_PAGE;
|
||||
|
@ -2907,6 +2831,7 @@ PrepareCopyPage(PINPUT_RECORD Ir)
|
|||
wcscat(PathBuffer, L"\\");
|
||||
wcscat(PathBuffer, KeyValue);
|
||||
|
||||
#ifdef __REACTOS__
|
||||
CabinetInitialize();
|
||||
CabinetSetEventHandlers(NULL, NULL, NULL);
|
||||
CabinetSetCabinetName(PathBuffer);
|
||||
|
@ -2953,6 +2878,7 @@ PrepareCopyPage(PINPUT_RECORD Ir)
|
|||
{
|
||||
return QUIT_PAGE;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
while (SetupFindNextLine (&CabinetsContext, &CabinetsContext));
|
||||
|
||||
|
@ -2997,8 +2923,6 @@ static PAGE_NUMBER
|
|||
FileCopyPage(PINPUT_RECORD Ir)
|
||||
{
|
||||
COPYCONTEXT CopyContext;
|
||||
SHORT xScreen;
|
||||
SHORT yScreen;
|
||||
|
||||
CONSOLE_SetStatusText(" \xB3 Please wait... ");
|
||||
|
||||
|
@ -3006,7 +2930,6 @@ FileCopyPage(PINPUT_RECORD Ir)
|
|||
CONSOLE_SetTextXY(30, 13, "installation folder.");
|
||||
CONSOLE_SetTextXY(20, 14, "This may take several minutes to complete.");
|
||||
|
||||
CONSOLE_GetScreenSize(&xScreen, &yScreen);
|
||||
CopyContext.DestinationRootPath = DestinationRootPath.Buffer;
|
||||
CopyContext.InstallPath = InstallPath.Buffer;
|
||||
CopyContext.TotalOperations = 0;
|
||||
|
@ -3054,6 +2977,7 @@ RegistryPage(PINPUT_RECORD Ir)
|
|||
}
|
||||
|
||||
/* Create the default hives */
|
||||
#ifdef __REACTOS__
|
||||
Status = NtInitializeRegistry(TRUE);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
|
@ -3063,6 +2987,9 @@ RegistryPage(PINPUT_RECORD Ir)
|
|||
Ir, POPUP_WAIT_ENTER);
|
||||
return QUIT_PAGE;
|
||||
}
|
||||
#else
|
||||
RegInitializeRegistry();
|
||||
#endif
|
||||
|
||||
/* Update registry */
|
||||
CONSOLE_SetStatusText(" Updating registry hives...");
|
||||
|
@ -3484,22 +3411,13 @@ FlushPage(PINPUT_RECORD Ir)
|
|||
}
|
||||
|
||||
|
||||
static VOID
|
||||
VOID
|
||||
RunUSetup(VOID)
|
||||
{
|
||||
INPUT_RECORD Ir;
|
||||
PAGE_NUMBER Page;
|
||||
BOOL ret;
|
||||
|
||||
ret = AllocConsole();
|
||||
if (!ret)
|
||||
ret = AttachConsole(ATTACH_PARENT_PROCESS);
|
||||
|
||||
if (!ret
|
||||
#ifdef WIN32_USETUP
|
||||
&& GetLastError() != ERROR_ACCESS_DENIED
|
||||
#endif
|
||||
)
|
||||
if (!CONSOLE_Init())
|
||||
{
|
||||
PrintString("Unable to open the console\n\n");
|
||||
PrintString("The most common cause of this is using an USB keyboard\n");
|
||||
|
@ -3509,17 +3427,6 @@ RunUSetup(VOID)
|
|||
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED,
|
||||
0,0,0,0,0);
|
||||
}
|
||||
else
|
||||
{
|
||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
||||
|
||||
StdInput = GetStdHandle(STD_INPUT_HANDLE);
|
||||
StdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
GetConsoleScreenBufferInfo(StdOutput, &csbi);
|
||||
xScreen = csbi.dwSize.X;
|
||||
yScreen = csbi.dwSize.Y;
|
||||
}
|
||||
|
||||
|
||||
/* Initialize global unicode strings */
|
||||
RtlInitUnicodeString(&SourcePath, NULL);
|
||||
|
@ -3680,16 +3587,7 @@ RunUSetup(VOID)
|
|||
}
|
||||
|
||||
|
||||
#ifdef WIN32_USETUP
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
ProcessHeap = GetProcessHeap();
|
||||
RunUSetup();
|
||||
return 0;
|
||||
}
|
||||
|
||||
#else
|
||||
#ifdef __REACTOS__
|
||||
|
||||
VOID NTAPI
|
||||
NtProcessStartup(PPEB Peb)
|
||||
|
@ -3700,6 +3598,6 @@ NtProcessStartup(PPEB Peb)
|
|||
INF_SetHeap(ProcessHeap);
|
||||
RunUSetup();
|
||||
}
|
||||
#endif /* !WIN32_USETUP */
|
||||
#endif /* __REACTOS__ */
|
||||
|
||||
/* EOF */
|
||||
|
|
8
reactos/base/setup/usetup/native/console.c
Normal file
8
reactos/base/setup/usetup/native/console.c
Normal file
|
@ -0,0 +1,8 @@
|
|||
#include "host_native.h"
|
||||
|
||||
BOOLEAN
|
||||
NATIVE_InitConsole(
|
||||
VOID)
|
||||
{
|
||||
return (BOOLEAN)AllocConsole();
|
||||
}
|
32
reactos/base/setup/usetup/native/fslist.c
Normal file
32
reactos/base/setup/usetup/native/fslist.c
Normal file
|
@ -0,0 +1,32 @@
|
|||
#include "usetup.h"
|
||||
|
||||
/* Filesystem headers */
|
||||
#include <fslib/vfatlib.h>
|
||||
#include <fslib/vfatxlib.h>
|
||||
|
||||
BOOLEAN
|
||||
NATIVE_CreateFileSystemList(
|
||||
IN PFILE_SYSTEM_LIST List)
|
||||
{
|
||||
FS_AddProvider(List, L"FAT", VfatFormat, VfatChkdsk);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
NATIVE_FormatPartition(
|
||||
IN PFILE_SYSTEM_ITEM FileSystem,
|
||||
IN PCUNICODE_STRING DriveRoot,
|
||||
IN PFMIFSCALLBACK Callback)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
|
||||
Status = FileSystem->FormatFunc(
|
||||
(PUNICODE_STRING)DriveRoot,
|
||||
FMIFS_HARDDISK, /* MediaFlag */
|
||||
NULL, /* Label */
|
||||
FileSystem->QuickFormat, /* QuickFormat */
|
||||
0, /* ClusterSize */
|
||||
Callback); /* Callback */
|
||||
|
||||
return NT_SUCCESS(Status);
|
||||
}
|
16
reactos/base/setup/usetup/native/host_native.h
Normal file
16
reactos/base/setup/usetup/native/host_native.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
#ifndef _HOST_NATIVE_H_
|
||||
#define _HOST_NATIVE_H_
|
||||
|
||||
#include "usetup.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
PWCHAR Source;
|
||||
PWCHAR Target;
|
||||
} *PFILEPATHS_W;
|
||||
|
||||
#define SetupInitDefaultQueueCallback(a) NULL
|
||||
#define SetupDefaultQueueCallbackW(a, b, c, d) TRUE
|
||||
#define SetupTermDefaultQueueCallback(a)
|
||||
|
||||
#endif /* _HOST_NATIVE_H_ */
|
|
@ -27,24 +27,17 @@
|
|||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include "usetup.h"
|
||||
/* Blue Driver Header */
|
||||
#include <blue/ntddblue.h>
|
||||
#include "keytrans.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* GLOBALS ******************************************************************/
|
||||
|
||||
HANDLE StdInput = INVALID_HANDLE_VALUE;
|
||||
HANDLE StdOutput = INVALID_HANDLE_VALUE;
|
||||
|
||||
SHORT xScreen = 0;
|
||||
SHORT yScreen = 0;
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
#ifndef WIN32_USETUP
|
||||
|
||||
BOOL WINAPI
|
||||
ConAllocConsole(VOID)
|
||||
AllocConsole(VOID)
|
||||
{
|
||||
UNICODE_STRING ScreenName = RTL_CONSTANT_STRING(L"\\??\\BlueScreen");
|
||||
UNICODE_STRING KeyboardName = RTL_CONSTANT_STRING(L"\\Device\\KeyboardClass0");
|
||||
|
@ -90,14 +83,14 @@ ConAllocConsole(VOID)
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConAttachConsole(
|
||||
AttachConsole(
|
||||
IN DWORD dwProcessId)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConFreeConsole(VOID)
|
||||
FreeConsole(VOID)
|
||||
{
|
||||
DPRINT("FreeConsole() called\n");
|
||||
|
||||
|
@ -112,7 +105,7 @@ ConFreeConsole(VOID)
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConWriteConsole(
|
||||
WriteConsole(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN const VOID* lpBuffer,
|
||||
IN DWORD nNumberOfCharsToWrite,
|
||||
|
@ -140,7 +133,7 @@ ConWriteConsole(
|
|||
}
|
||||
|
||||
HANDLE WINAPI
|
||||
ConGetStdHandle(
|
||||
GetStdHandle(
|
||||
IN DWORD nStdHandle)
|
||||
{
|
||||
switch (nStdHandle)
|
||||
|
@ -155,7 +148,7 @@ ConGetStdHandle(
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConReadConsoleInput(
|
||||
ReadConsoleInput(
|
||||
IN HANDLE hConsoleInput,
|
||||
OUT PINPUT_RECORD lpBuffer,
|
||||
IN DWORD nLength,
|
||||
|
@ -188,7 +181,7 @@ ConReadConsoleInput(
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConWriteConsoleOutputCharacterA(
|
||||
WriteConsoleOutputCharacterA(
|
||||
HANDLE hConsoleOutput,
|
||||
IN LPCSTR lpCharacter,
|
||||
IN DWORD nLength,
|
||||
|
@ -235,7 +228,7 @@ ConWriteConsoleOutputCharacterA(
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConWriteConsoleOutputCharacterW(
|
||||
WriteConsoleOutputCharacterW(
|
||||
HANDLE hConsoleOutput,
|
||||
IN LPCWSTR lpCharacter,
|
||||
IN DWORD nLength,
|
||||
|
@ -287,7 +280,7 @@ ConWriteConsoleOutputCharacterW(
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConFillConsoleOutputAttribute(
|
||||
FillConsoleOutputAttribute(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN WORD wAttribute,
|
||||
IN DWORD nLength,
|
||||
|
@ -322,7 +315,7 @@ ConFillConsoleOutputAttribute(
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConFillConsoleOutputCharacterA(
|
||||
FillConsoleOutputCharacterA(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN CHAR cCharacter,
|
||||
IN DWORD nLength,
|
||||
|
@ -356,7 +349,7 @@ ConFillConsoleOutputCharacterA(
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConGetConsoleScreenBufferInfo(
|
||||
GetConsoleScreenBufferInfo(
|
||||
IN HANDLE hConsoleOutput,
|
||||
OUT PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo)
|
||||
{
|
||||
|
@ -378,7 +371,7 @@ ConGetConsoleScreenBufferInfo(
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConSetConsoleCursorInfo(
|
||||
SetConsoleCursorInfo(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN const CONSOLE_CURSOR_INFO* lpConsoleCursorInfo)
|
||||
{
|
||||
|
@ -400,7 +393,7 @@ ConSetConsoleCursorInfo(
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConSetConsoleCursorPosition(
|
||||
SetConsoleCursorPosition(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN COORD dwCursorPosition)
|
||||
{
|
||||
|
@ -431,7 +424,7 @@ ConSetConsoleCursorPosition(
|
|||
}
|
||||
|
||||
BOOL WINAPI
|
||||
ConSetConsoleTextAttribute(
|
||||
SetConsoleTextAttribute(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN WORD wAttributes)
|
||||
{
|
||||
|
@ -452,6 +445,4 @@ ConSetConsoleTextAttribute(
|
|||
return NT_SUCCESS(Status);
|
||||
}
|
||||
|
||||
#endif /* !WIN32_USETUP */
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -24,51 +24,18 @@
|
|||
* PROGRAMMER: Eric Kohl
|
||||
*/
|
||||
|
||||
#ifndef __CONSOLE_H__
|
||||
#define __CONSOLE_H__
|
||||
|
||||
#define FOREGROUND_WHITE (FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
|
||||
#define FOREGROUND_YELLOW (FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN)
|
||||
#define BACKGROUND_WHITE (BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE)
|
||||
|
||||
extern HANDLE StdInput, StdOutput;
|
||||
extern SHORT xScreen, yScreen;
|
||||
|
||||
#ifdef WIN32_USETUP
|
||||
|
||||
#define NtDisplayString(str) printf("%S", (str)->Buffer)
|
||||
#define NtRaiseHardError(status, a, b, c, d, e) exit(1)
|
||||
|
||||
#else /* WIN32_USETUP */
|
||||
|
||||
#undef WriteConsole
|
||||
#undef ReadConsoleInput
|
||||
#undef FillConsoleOutputCharacter
|
||||
|
||||
#define AllocConsole ConAllocConsole
|
||||
#define AttachConsole ConAttachConsole
|
||||
#define FillConsoleOutputAttribute ConFillConsoleOutputAttribute
|
||||
#define FillConsoleOutputCharacterA ConFillConsoleOutputCharacterA
|
||||
#define FreeConsole ConFreeConsole
|
||||
#define GetConsoleScreenBufferInfo ConGetConsoleScreenBufferInfo
|
||||
#define GetStdHandle ConGetStdHandle
|
||||
#define ReadConsoleInput ConReadConsoleInput
|
||||
#define SetConsoleCursorInfo ConSetConsoleCursorInfo
|
||||
#define SetConsoleCursorPosition ConSetConsoleCursorPosition
|
||||
#define SetConsoleTextAttribute ConSetConsoleTextAttribute
|
||||
#define WriteConsole ConWriteConsole
|
||||
#define WriteConsoleOutputCharacterA ConWriteConsoleOutputCharacterA
|
||||
#define WriteConsoleOutputCharacterW ConWriteConsoleOutputCharacterW
|
||||
#ifndef _UTILS_CONSOLE_H_
|
||||
#define _UTILS_CONSOLE_H_
|
||||
|
||||
BOOL WINAPI
|
||||
ConAllocConsole(VOID);
|
||||
AllocConsole(VOID);
|
||||
|
||||
BOOL WINAPI
|
||||
ConAttachConsole(
|
||||
AttachConsole(
|
||||
IN DWORD dwProcessId);
|
||||
|
||||
BOOL WINAPI
|
||||
ConFillConsoleOutputAttribute(
|
||||
FillConsoleOutputAttribute(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN WORD wAttribute,
|
||||
IN DWORD nLength,
|
||||
|
@ -76,7 +43,7 @@ ConFillConsoleOutputAttribute(
|
|||
OUT LPDWORD lpNumberOfAttrsWritten);
|
||||
|
||||
BOOL WINAPI
|
||||
ConFillConsoleOutputCharacterA(
|
||||
FillConsoleOutputCharacterA(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN CHAR cCharacter,
|
||||
IN DWORD nLength,
|
||||
|
@ -84,41 +51,41 @@ ConFillConsoleOutputCharacterA(
|
|||
OUT LPDWORD lpNumberOfCharsWritten);
|
||||
|
||||
BOOL WINAPI
|
||||
ConFreeConsole(VOID);
|
||||
FreeConsole(VOID);
|
||||
|
||||
BOOL WINAPI
|
||||
ConGetConsoleScreenBufferInfo(
|
||||
GetConsoleScreenBufferInfo(
|
||||
IN HANDLE hConsoleOutput,
|
||||
OUT PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
|
||||
|
||||
HANDLE WINAPI
|
||||
ConGetStdHandle(
|
||||
GetStdHandle(
|
||||
IN DWORD nStdHandle);
|
||||
|
||||
BOOL WINAPI
|
||||
ConReadConsoleInput(
|
||||
ReadConsoleInput(
|
||||
IN HANDLE hConsoleInput,
|
||||
OUT PINPUT_RECORD lpBuffer,
|
||||
IN DWORD nLength,
|
||||
OUT LPDWORD lpNumberOfEventsRead);
|
||||
|
||||
BOOL WINAPI
|
||||
ConSetConsoleCursorInfo(
|
||||
SetConsoleCursorInfo(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN const CONSOLE_CURSOR_INFO* lpConsoleCursorInfo);
|
||||
|
||||
BOOL WINAPI
|
||||
ConSetConsoleCursorPosition(
|
||||
SetConsoleCursorPosition(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN COORD dwCursorPosition);
|
||||
|
||||
BOOL WINAPI
|
||||
ConSetConsoleTextAttribute(
|
||||
SetConsoleTextAttribute(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN WORD wAttributes);
|
||||
|
||||
BOOL WINAPI
|
||||
ConWriteConsole(
|
||||
WriteConsole(
|
||||
IN HANDLE hConsoleOutput,
|
||||
IN const VOID* lpBuffer,
|
||||
IN DWORD nNumberOfCharsToWrite,
|
||||
|
@ -126,7 +93,7 @@ ConWriteConsole(
|
|||
IN LPVOID lpReserved);
|
||||
|
||||
BOOL WINAPI
|
||||
ConWriteConsoleOutputCharacterA(
|
||||
WriteConsoleOutputCharacterA(
|
||||
HANDLE hConsoleOutput,
|
||||
IN LPCSTR lpCharacter,
|
||||
IN DWORD nLength,
|
||||
|
@ -134,23 +101,13 @@ ConWriteConsoleOutputCharacterA(
|
|||
OUT LPDWORD lpNumberOfCharsWritten);
|
||||
|
||||
BOOL WINAPI
|
||||
ConWriteConsoleOutputCharacterA(
|
||||
WriteConsoleOutputCharacterA(
|
||||
HANDLE hConsoleOutput,
|
||||
IN LPCSTR lpCharacter,
|
||||
IN DWORD nLength,
|
||||
IN COORD dwWriteCoord,
|
||||
OUT LPDWORD lpNumberOfCharsWritten);
|
||||
|
||||
BOOL WINAPI
|
||||
ConWriteConsoleOutputCharacterW(
|
||||
HANDLE hConsoleOutput,
|
||||
IN LPCWSTR lpCharacter,
|
||||
IN DWORD nLength,
|
||||
IN COORD dwWriteCoord,
|
||||
OUT LPDWORD lpNumberOfCharsWritten);
|
||||
|
||||
#endif /* !WIN32_USETUP */
|
||||
|
||||
#endif /* __CONSOLE_H__*/
|
||||
#endif /* _UTILS_CONSOLE_H_ */
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
* NB: Hardcoded to US keyboard
|
||||
*/
|
||||
#include "usetup.h"
|
||||
#include "keytrans.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id$
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
/* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS text-mode setup
|
||||
* FILE: subsys/system/usetup/keytrans.h
|
||||
* PURPOSE: Keyboard translation functionality
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id$
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
/* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS text-mode setup
|
||||
* FILE: subsys/system/usetup/partlist.c
|
||||
* PURPOSE: Partition list functions
|
||||
|
@ -457,31 +456,33 @@ DiskConfigurationDataQueryRoutine(PWSTR ValueName,
|
|||
PVOID Context,
|
||||
PVOID EntryContext)
|
||||
{
|
||||
PBIOSDISKENTRY BiosDiskEntry = (PBIOSDISKENTRY)Context;
|
||||
PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor;
|
||||
PCM_DISK_GEOMETRY_DEVICE_DATA DiskGeometry;
|
||||
PBIOSDISKENTRY BiosDiskEntry = (PBIOSDISKENTRY)Context;
|
||||
PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor;
|
||||
PCM_DISK_GEOMETRY_DEVICE_DATA DiskGeometry;
|
||||
ULONG i;
|
||||
|
||||
if (ValueType == REG_FULL_RESOURCE_DESCRIPTOR &&
|
||||
ValueLength == sizeof(CM_FULL_RESOURCE_DESCRIPTOR) + sizeof(CM_DISK_GEOMETRY_DEVICE_DATA))
|
||||
{
|
||||
FullResourceDescriptor = (PCM_FULL_RESOURCE_DESCRIPTOR)ValueData;
|
||||
/* FIXME:
|
||||
* Is this 'paranoia' check correct ?
|
||||
*/
|
||||
if (FullResourceDescriptor->InterfaceType != InterfaceTypeUndefined ||
|
||||
FullResourceDescriptor->BusNumber != 0 ||
|
||||
FullResourceDescriptor->PartialResourceList.Count != 1 ||
|
||||
FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].Type != CmResourceTypeDeviceSpecific ||
|
||||
FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].u.DeviceSpecificData.DataSize != sizeof(CM_DISK_GEOMETRY_DEVICE_DATA))
|
||||
{
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
DiskGeometry = (PCM_DISK_GEOMETRY_DEVICE_DATA)(FullResourceDescriptor + 1);
|
||||
BiosDiskEntry->DiskGeometry = *DiskGeometry;
|
||||
if (ValueType != REG_FULL_RESOURCE_DESCRIPTOR ||
|
||||
ValueLength < sizeof(CM_FULL_RESOURCE_DESCRIPTOR))
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
FullResourceDescriptor = (PCM_FULL_RESOURCE_DESCRIPTOR)ValueData;
|
||||
/* Hm. Version and Revision are not set on Microsoft Windows XP... */
|
||||
/*if (FullResourceDescriptor->PartialResourceList.Version != 1 ||
|
||||
FullResourceDescriptor->PartialResourceList.Revision != 1)
|
||||
return STATUS_UNSUCCESSFUL;*/
|
||||
|
||||
for (i = 0; i < FullResourceDescriptor->PartialResourceList.Count; i++)
|
||||
{
|
||||
if (FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].Type != CmResourceTypeDeviceSpecific ||
|
||||
FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].u.DeviceSpecificData.DataSize != sizeof(CM_DISK_GEOMETRY_DEVICE_DATA))
|
||||
continue;
|
||||
|
||||
DiskGeometry = (PCM_DISK_GEOMETRY_DEVICE_DATA)&FullResourceDescriptor->PartialResourceList.PartialDescriptors[i + 1];
|
||||
BiosDiskEntry->DiskGeometry = *DiskGeometry;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
|
@ -493,31 +494,36 @@ SystemConfigurationDataQueryRoutine(PWSTR ValueName,
|
|||
PVOID Context,
|
||||
PVOID EntryContext)
|
||||
{
|
||||
PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor;
|
||||
PCM_INT13_DRIVE_PARAMETER* Int13Drives = (PCM_INT13_DRIVE_PARAMETER*)Context;
|
||||
PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor;
|
||||
PCM_INT13_DRIVE_PARAMETER* Int13Drives = (PCM_INT13_DRIVE_PARAMETER*)Context;
|
||||
ULONG i;
|
||||
|
||||
if (ValueType == REG_FULL_RESOURCE_DESCRIPTOR &&
|
||||
ValueLength >= sizeof (CM_FULL_RESOURCE_DESCRIPTOR) &&
|
||||
(ValueLength - sizeof(CM_FULL_RESOURCE_DESCRIPTOR)) % sizeof(CM_INT13_DRIVE_PARAMETER) == 0)
|
||||
{
|
||||
FullResourceDescriptor = (PCM_FULL_RESOURCE_DESCRIPTOR)ValueData;
|
||||
if (FullResourceDescriptor->InterfaceType != InterfaceTypeUndefined ||
|
||||
FullResourceDescriptor->BusNumber != -1 ||
|
||||
FullResourceDescriptor->PartialResourceList.Count != 1 ||
|
||||
FullResourceDescriptor->PartialResourceList.PartialDescriptors[0].Type != CmResourceTypeDeviceSpecific)
|
||||
{
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
*Int13Drives = RtlAllocateHeap(ProcessHeap, 0, ValueLength - sizeof (CM_FULL_RESOURCE_DESCRIPTOR));
|
||||
if (*Int13Drives == NULL)
|
||||
{
|
||||
return STATUS_NO_MEMORY;
|
||||
}
|
||||
memcpy(*Int13Drives, FullResourceDescriptor + 1, ValueLength - sizeof (CM_FULL_RESOURCE_DESCRIPTOR));
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
if (ValueType != REG_FULL_RESOURCE_DESCRIPTOR ||
|
||||
ValueLength < sizeof (CM_FULL_RESOURCE_DESCRIPTOR))
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
|
||||
FullResourceDescriptor = (PCM_FULL_RESOURCE_DESCRIPTOR)ValueData;
|
||||
/* Hm. Version and Revision are not set on Microsoft Windows XP... */
|
||||
/*if (FullResourceDescriptor->PartialResourceList.Version != 1 ||
|
||||
FullResourceDescriptor->PartialResourceList.Revision != 1)
|
||||
return STATUS_UNSUCCESSFUL;*/
|
||||
|
||||
for (i = 0; i < FullResourceDescriptor->PartialResourceList.Count; i++)
|
||||
{
|
||||
if (FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].Type != CmResourceTypeDeviceSpecific ||
|
||||
FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].u.DeviceSpecificData.DataSize != sizeof(CM_INT13_DRIVE_PARAMETER))
|
||||
continue;
|
||||
|
||||
*Int13Drives = RtlAllocateHeap(ProcessHeap, 0, sizeof(CM_INT13_DRIVE_PARAMETER));
|
||||
if (*Int13Drives == NULL)
|
||||
return STATUS_NO_MEMORY;
|
||||
memcpy(
|
||||
*Int13Drives,
|
||||
&FullResourceDescriptor->PartialResourceList.PartialDescriptors[i + 1],
|
||||
sizeof(CM_INT13_DRIVE_PARAMETER));
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
#define ROOT_NAME L"\\Registry\\Machine\\HARDWARE\\DESCRIPTION\\System\\MultifunctionAdapter"
|
||||
|
||||
|
@ -948,7 +954,7 @@ CreatePartitionList (SHORT Left,
|
|||
&Iosb,
|
||||
FILE_SHARE_READ,
|
||||
FILE_SYNCHRONOUS_IO_NONALERT);
|
||||
if (NT_SUCCESS(Status))
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
AddDiskToList (FileHandle,
|
||||
DiskNumber,
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
#ifdef __REACTOS__
|
||||
#define FLG_ADDREG_BINVALUETYPE 0x00000001
|
||||
#define FLG_ADDREG_NOCLOBBER 0x00000002
|
||||
#define FLG_ADDREG_DELVAL 0x00000004
|
||||
|
@ -44,6 +45,7 @@
|
|||
#define FLG_ADDREG_TYPE_DWORD (0x00010000 | FLG_ADDREG_BINVALUETYPE)
|
||||
#define FLG_ADDREG_TYPE_NONE (0x00020000 | FLG_ADDREG_BINVALUETYPE)
|
||||
#define FLG_ADDREG_TYPE_MASK (0xFFFF0000 | FLG_ADDREG_BINVALUETYPE)
|
||||
#endif
|
||||
|
||||
#include <pshpack1.h>
|
||||
|
||||
|
@ -201,11 +203,11 @@ do_reg_operation(HANDLE KeyHandle,
|
|||
#if 0
|
||||
if (ValueName)
|
||||
{
|
||||
RegDeleteValueW( hkey, value );
|
||||
RegDeleteValueW( KeyHandle, ValueName );
|
||||
}
|
||||
else
|
||||
{
|
||||
RegDeleteKeyW( hkey, NULL );
|
||||
RegDeleteKeyW( KeyHandle, NULL );
|
||||
}
|
||||
#endif
|
||||
return TRUE;
|
||||
|
@ -308,12 +310,16 @@ do_reg_operation(HANDLE KeyHandle,
|
|||
|
||||
DPRINT("setting dword %wZ to %lx\n", ValueName, dw);
|
||||
|
||||
#ifdef __REACTOS__
|
||||
NtSetValueKey (KeyHandle,
|
||||
ValueName,
|
||||
0,
|
||||
Type,
|
||||
(PVOID)&dw,
|
||||
sizeof(ULONG));
|
||||
#else
|
||||
RegSetValueExW(KeyHandle, ValueName, 0, Type, (const UCHAR*)&dw, sizeof(ULONG));
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -321,21 +327,29 @@ do_reg_operation(HANDLE KeyHandle,
|
|||
|
||||
if (Str)
|
||||
{
|
||||
#ifdef __REACTOS__
|
||||
NtSetValueKey (KeyHandle,
|
||||
ValueName,
|
||||
0,
|
||||
Type,
|
||||
(PVOID)Str,
|
||||
Size * sizeof(WCHAR));
|
||||
#else
|
||||
RegSetValueExW(KeyHandle, ValueName, 0, Type, (const UCHAR*)Str, Size * sizeof(WCHAR));
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef __REACTOS__
|
||||
NtSetValueKey (KeyHandle,
|
||||
ValueName,
|
||||
0,
|
||||
Type,
|
||||
(PVOID)&EmptyStr,
|
||||
sizeof(WCHAR));
|
||||
#else
|
||||
RegSetValueExW(KeyHandle, ValueName, 0, Type, (const UCHAR*)&EmptyStr, sizeof(WCHAR));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
RtlFreeHeap (ProcessHeap, 0, Str);
|
||||
|
@ -357,12 +371,16 @@ do_reg_operation(HANDLE KeyHandle,
|
|||
SetupGetBinaryField (Context, 5, Data, Size, NULL);
|
||||
}
|
||||
|
||||
#ifdef __REACTOS__
|
||||
NtSetValueKey (KeyHandle,
|
||||
ValueName,
|
||||
0,
|
||||
Type,
|
||||
(PVOID)Data,
|
||||
Size);
|
||||
#else
|
||||
RegSetValueExW(KeyHandle, ValueName, 0, Type, (const UCHAR*)Data, Size);
|
||||
#endif
|
||||
|
||||
RtlFreeHeap (ProcessHeap, 0, Data);
|
||||
}
|
||||
|
@ -370,7 +388,7 @@ do_reg_operation(HANDLE KeyHandle,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
#ifdef __REACTOS__
|
||||
NTSTATUS
|
||||
CreateNestedKey (PHANDLE KeyHandle,
|
||||
ACCESS_MASK DesiredAccess,
|
||||
|
@ -465,7 +483,7 @@ CreateNestedKey (PHANDLE KeyHandle,
|
|||
|
||||
return Status;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/***********************************************************************
|
||||
* registry_callback
|
||||
|
@ -514,6 +532,7 @@ registry_callback (HINF hInf, PCWSTR Section, BOOLEAN Delete)
|
|||
|
||||
DPRINT("Flags: %lx\n", Flags);
|
||||
|
||||
#ifdef __REACTOS__
|
||||
RtlInitUnicodeString (&Name,
|
||||
Buffer);
|
||||
|
||||
|
@ -545,6 +564,26 @@ registry_callback (HINF hInf, PCWSTR Section, BOOLEAN Delete)
|
|||
continue;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (Delete || (Flags & FLG_ADDREG_OVERWRITEONLY))
|
||||
{
|
||||
LONG rc = RegOpenKeyW(NULL, Buffer, &KeyHandle);
|
||||
if (rc != ERROR_SUCCESS)
|
||||
{
|
||||
DPRINT("RegOpenKeyW(%S) failed (error %lu)\n", Buffer, rc);
|
||||
continue; /* ignore if it doesn't exist */
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LONG rc = RegCreateKeyW(NULL, Buffer, &KeyHandle);
|
||||
if (rc != ERROR_SUCCESS)
|
||||
{
|
||||
DPRINT("RegCreateKeyW(%S) failed (error %lu)\n", Buffer, rc);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* get value name */
|
||||
if (SetupGetStringFieldW (&Context, 3, Buffer, MAX_INF_STRING_LENGTH, NULL))
|
||||
|
@ -565,7 +604,9 @@ registry_callback (HINF hInf, PCWSTR Section, BOOLEAN Delete)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
#ifdef __REACTOS__
|
||||
NtClose (KeyHandle);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -583,8 +624,8 @@ ImportRegistryFile(PWSTR Filename,
|
|||
UINT ErrorLine;
|
||||
|
||||
/* Load inf file from install media. */
|
||||
wcscpy(FileNameBuffer, SourceRootPath.Buffer);
|
||||
wcscat(FileNameBuffer, L"\\reactos\\");
|
||||
wcscpy(FileNameBuffer, SourcePath.Buffer);
|
||||
wcscat(FileNameBuffer, L"\\");
|
||||
wcscat(FileNameBuffer, Filename);
|
||||
|
||||
hInf = SetupOpenInfFileW(
|
||||
|
|
|
@ -45,9 +45,6 @@
|
|||
/* DDK Disk Headers */
|
||||
#include <ntddscsi.h>
|
||||
|
||||
/* Blue Driver Header */
|
||||
#include <blue/ntddblue.h>
|
||||
|
||||
/* Helper Header */
|
||||
#include <reactos/helper.h>
|
||||
|
||||
|
@ -56,13 +53,13 @@
|
|||
|
||||
/* Internal Headers */
|
||||
#include "interface/consup.h"
|
||||
#include "native/utils/console.h"
|
||||
#include "native/utils/keytrans.h"
|
||||
#include "partlist.h"
|
||||
#include "inffile.h"
|
||||
#include "inicache.h"
|
||||
#include "progress.h"
|
||||
#ifdef __REACTOS__
|
||||
#include "filequeue.h"
|
||||
#endif
|
||||
#include "bootsup.h"
|
||||
#include "registry.h"
|
||||
#include "fslist.h"
|
||||
|
@ -73,12 +70,13 @@
|
|||
#include "drivesup.h"
|
||||
#include "genlist.h"
|
||||
#include "settings.h"
|
||||
#include "host.h"
|
||||
|
||||
extern HANDLE ProcessHeap;
|
||||
extern UNICODE_STRING SourceRootPath;
|
||||
extern UNICODE_STRING SourcePath;
|
||||
extern BOOLEAN IsUnattendedSetup;
|
||||
|
||||
|
||||
#endif /* __USETUP_H__*/
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -8,38 +8,38 @@
|
|||
<define name="_DISABLE_TIDENTS" />
|
||||
<define name="_WIN32_WINNT">0x0502</define>
|
||||
<define name="__NO_CTYPE_INLINES" />
|
||||
<define name="__REACTOS__" />
|
||||
<linkerflag>-lgcc</linkerflag>
|
||||
<library>zlib</library>
|
||||
<library>inflib</library>
|
||||
<library>vfatlib</library>
|
||||
<library>ntdll</library>
|
||||
<pch>usetup.h</pch>
|
||||
<compilationunit name="unit.c">
|
||||
<directory name="interface">
|
||||
<file>consup.c</file>
|
||||
<file>usetup.c</file>
|
||||
<directory name="interface">
|
||||
<file>consup.c</file>
|
||||
<file>usetup.c</file>
|
||||
</directory>
|
||||
<directory name="native">
|
||||
<directory name="utils">
|
||||
<file>console.c</file>
|
||||
<file>keytrans.c</file>
|
||||
</directory>
|
||||
<directory name="native">
|
||||
<directory name="utils">
|
||||
<file>console.c</file>
|
||||
<file>keytrans.c</file>
|
||||
</directory>
|
||||
</directory>
|
||||
<file>bootsup.c</file>
|
||||
<file>cabinet.c</file>
|
||||
<file>chkdsk.c</file>
|
||||
<file>drivesup.c</file>
|
||||
<file>filequeue.c</file>
|
||||
<file>filesup.c</file>
|
||||
<file>format.c</file>
|
||||
<file>console.c</file>
|
||||
<file>fslist.c</file>
|
||||
<file>genlist.c</file>
|
||||
<file>inffile.c</file>
|
||||
<file>inicache.c</file>
|
||||
<file>partlist.c</file>
|
||||
<file>progress.c</file>
|
||||
<file>registry.c</file>
|
||||
<file>settings.c</file>
|
||||
</compilationunit>
|
||||
</directory>
|
||||
<file>bootsup.c</file>
|
||||
<file>cabinet.c</file>
|
||||
<file>chkdsk.c</file>
|
||||
<file>drivesup.c</file>
|
||||
<file>filequeue.c</file>
|
||||
<file>filesup.c</file>
|
||||
<file>format.c</file>
|
||||
<file>fslist.c</file>
|
||||
<file>genlist.c</file>
|
||||
<file>inffile.c</file>
|
||||
<file>inicache.c</file>
|
||||
<file>partlist.c</file>
|
||||
<file>progress.c</file>
|
||||
<file>registry.c</file>
|
||||
<file>settings.c</file>
|
||||
<file>usetup.rc</file>
|
||||
</module>
|
||||
|
|
|
@ -3,4 +3,6 @@
|
|||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Setup\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "usetup\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "usetup.dll\0"
|
||||
#ifdef __REACTOS__
|
||||
#include <reactos/version.rc>
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue