mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 15:03:00 +00:00
untested implementation of the registry
svn path=/trunk/; revision=553
This commit is contained in:
parent
d913de5c14
commit
e0c5a61982
12 changed files with 1762 additions and 473 deletions
|
@ -3,13 +3,9 @@
|
||||||
:
|
:
|
||||||
: copy files to HD...
|
: copy files to HD...
|
||||||
:
|
:
|
||||||
COPY /Y BLUE.SYS C:\reactos\system\drivers\blue.SYS > NUL:
|
COPY /Y A:\DRIVERS\*.SYS C:\reactos\system\drivers > NUL:
|
||||||
COPY /Y KEYBOARD.SYS C:\reactos\system\drivers\KEYBOARD.SYS > NUL:
|
COPY /Y A:\DLLS\*.DLL C:\reactos\system > NUL:
|
||||||
COPY /Y NTDLL.DLL C:\reactos\system\NTDLL.DLL > NUL:
|
COPY /Y A:\APPS\*.EXE C:\reactos\system > NUL:
|
||||||
COPY /Y KERNEL32.DLL C:\reactos\system\KERNEL32.DLL > NUL:
|
|
||||||
: COPY /Y CRTDLL.DLL C:\reactos\system\CRTDLL.DLL > NUL:
|
|
||||||
COPY /Y SHELL.EXE C:\reactos\system\SHELL.EXE > NUL:
|
|
||||||
|
|
||||||
:
|
:
|
||||||
: present a menu to the booter...
|
: present a menu to the booter...
|
||||||
:
|
:
|
||||||
|
|
|
@ -87,12 +87,8 @@ typedef struct _KEY_VALUE_PARTIAL_INFORMATION
|
||||||
UCHAR Data[1];
|
UCHAR Data[1];
|
||||||
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
|
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
|
||||||
|
|
||||||
#define REG_OPTION_VOLATILE 0x00000000
|
|
||||||
#define REG_OPTION_NON_VOLATILE 0x00000001
|
|
||||||
#define REG_OPTION_CREATE_LINK 0x00000002
|
#define REG_OPTION_CREATE_LINK 0x00000002
|
||||||
#define REG_OPTION_BACKUP_RESTORE 0x00000004
|
#define REG_OPTION_BACKUP_RESTORE 0x00000004
|
||||||
|
|
||||||
#define REG_CREATED_NEW_KEY 1
|
|
||||||
#define REG_OPENED_EXISTING_KEY 2
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -111,9 +111,9 @@ typedef USHORT CSHORT;
|
||||||
typedef struct _TIME {
|
typedef struct _TIME {
|
||||||
DWORD LowPart;
|
DWORD LowPart;
|
||||||
LONG HighPart;
|
LONG HighPart;
|
||||||
} TIME;
|
} TIME, *PTIME;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef ULARGE_INTEGER TIME;
|
typedef ULARGE_INTEGER TIME, *PTIME;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -155,7 +155,7 @@ DWORD RtlNtStatusToDosError(NTSTATUS Status)
|
||||||
|
|
||||||
|
|
||||||
case STATUS_PORT_ALREADY_SET:
|
case STATUS_PORT_ALREADY_SET:
|
||||||
case STATUS_SECTION_NOT_IMAGE:
|
// case STATUS_SECTION_NOT_IMAGE:
|
||||||
case STATUS_BAD_WORKING_SET_LIMIT:
|
case STATUS_BAD_WORKING_SET_LIMIT:
|
||||||
case STATUS_INCOMPATIBLE_FILE_MAP:
|
case STATUS_INCOMPATIBLE_FILE_MAP:
|
||||||
case STATUS_UNABLE_TO_FREE_VM:
|
case STATUS_UNABLE_TO_FREE_VM:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $Id: makefile_rex,v 1.3 1999/06/05 19:02:15 ariadne Exp $
|
# $Id: makefile_rex,v 1.4 1999/06/14 07:37:52 rex Exp $
|
||||||
#
|
#
|
||||||
# ReactOS Operating System
|
# ReactOS Operating System
|
||||||
#
|
#
|
||||||
|
@ -21,12 +21,12 @@ endif
|
||||||
all: $(DLLTARGET)
|
all: $(DLLTARGET)
|
||||||
|
|
||||||
|
|
||||||
MISC_OBJECTS = misc/sprintf.o misc/exitwin.o misc/dllmain.o misc/string.o
|
MISC_OBJECTS = misc/sprintf.o misc/exitwin.o misc/dllmain.o #misc/string.o
|
||||||
|
|
||||||
#RESOURCE_OBJECT = $(TARGET).coff
|
#RESOURCE_OBJECT = $(TARGET).coff
|
||||||
|
|
||||||
WINDOWS_OBJECTS = windows/message.o windows/wndproc.o windows/win.o windows/hook.o windows/spy.o\
|
WINDOWS_OBJECTS = windows/message.o windows/wndproc.o windows/win.o windows/hook.o windows/spy.o\
|
||||||
windows/queue.o
|
#windows/queue.o
|
||||||
|
|
||||||
OBJECTS = $(MISC_OBJECTS) $(WINDOWS_OBJECTS)
|
OBJECTS = $(MISC_OBJECTS) $(WINDOWS_OBJECTS)
|
||||||
|
|
||||||
|
|
|
@ -2,26 +2,30 @@
|
||||||
echo copying latest files to a:...
|
echo copying latest files to a:...
|
||||||
copy /Y bootflop.bat a:\autoexec.bat > NUL:
|
copy /Y bootflop.bat a:\autoexec.bat > NUL:
|
||||||
echo bootflop.bat to a:\autoexec.bat
|
echo bootflop.bat to a:\autoexec.bat
|
||||||
copy /Y loaders\dos\loadros.com a: > NUL:
|
copy /Y loaders\dos\loadros.com a:\ > NUL:
|
||||||
echo loadros.com
|
echo loadros.com
|
||||||
copy /Y ntoskrnl\ntoskrnl.exe a: > NUL:
|
copy /Y ntoskrnl\ntoskrnl.exe a:\ > NUL:
|
||||||
echo ntoskrnl.exe
|
echo ntoskrnl.exe
|
||||||
copy /Y services\dd\ide\ide.sys a: > NUL:
|
copy /Y services\dd\ide\ide.sys a:\ > NUL:
|
||||||
echo ide.sys
|
echo ide.sys
|
||||||
copy /Y services\fs\vfat\vfatfsd.sys a: > NUL:
|
copy /Y services\fs\vfat\vfatfsd.sys a:\ > NUL:
|
||||||
echo vfatfsd.sys
|
echo vfatfsd.sys
|
||||||
copy /Y services\dd\blue\blue.sys a: > NUL:
|
copy /Y services\dd\blue\blue.sys a:\drivers > NUL:
|
||||||
echo blue.sys
|
echo blue.sys
|
||||||
copy /Y services\dd\keyboard\keyboard.sys a: > NUL:
|
copy /Y services\dd\keyboard\keyboard.sys a:\drivers > NUL:
|
||||||
echo keyboard.sys
|
echo keyboard.sys
|
||||||
copy /Y lib\ntdll\ntdll.dll a: > NUL:
|
copy /Y lib\ntdll\ntdll.dll a:\dlls > NUL:
|
||||||
echo ntdll.dll
|
echo lib\advapi\ntdll.dll
|
||||||
copy /Y lib\kernel32\kernel32.dll a: > NUL:
|
copy /Y lib\kernel32\kernel32.dll a:\dlls > NUL:
|
||||||
echo kernel32.dll
|
echo lib\advapi\kernel32.dll
|
||||||
copy /Y apps\shell\shell.exe a: > NUL:
|
copy /Y lib\advapi32\advapi32.dll a:\dlls > NUL:
|
||||||
|
echo lib\advapi32\advapi32.dll a:
|
||||||
|
copy /Y lib\user32\user32.dll a:\dlls > NUL:
|
||||||
|
echo lib\user32\user32.dll a:
|
||||||
|
copy /Y lib\crtdll\crtdll.dll a:\dlls > NUL:
|
||||||
|
echo lib\crtdll\crtdll.dll a:
|
||||||
|
copy /Y apps\shell\shell.exe a:\apps > NUL:
|
||||||
echo shell.exe
|
echo shell.exe
|
||||||
: copy /Y lib\crtdll\crtdll.dll a: > NUL:
|
|
||||||
: echo lib\crtdll\crtdll.dll a:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,8 @@ SUBSYS = win32k
|
||||||
#
|
#
|
||||||
# Select the server(s) you want to build
|
# Select the server(s) you want to build
|
||||||
#
|
#
|
||||||
SERVERS = win32 posix linux os2
|
SERVERS = win32
|
||||||
|
# SERVERS = posix linux os2
|
||||||
|
|
||||||
#
|
#
|
||||||
# Select the loader(s) you want to build
|
# Select the loader(s) you want to build
|
||||||
|
|
|
@ -15,14 +15,15 @@ include rules.mak
|
||||||
# Required to run the system
|
# Required to run the system
|
||||||
#
|
#
|
||||||
COMPONENTS = iface_native ntoskrnl
|
COMPONENTS = iface_native ntoskrnl
|
||||||
DLLS = ntdll kernel32 crtdll fmifs
|
DLLS = ntdll kernel32 crtdll user32 fmifs gdi32
|
||||||
#DLLS = advapi32
|
#DLLS = advapi32 mingw32
|
||||||
SUBSYS = win32k
|
SUBSYS = win32k
|
||||||
|
|
||||||
#
|
#
|
||||||
# Select the server(s) you want to build
|
# Select the server(s) you want to build
|
||||||
#
|
#
|
||||||
SERVERS = win32 posix linux os2
|
SERVERS = win32
|
||||||
|
# SERVERS = posix linux os2
|
||||||
|
|
||||||
#
|
#
|
||||||
# Select the loader(s) you want to build
|
# Select the loader(s) you want to build
|
||||||
|
@ -33,10 +34,10 @@ LOADERS = dos
|
||||||
#
|
#
|
||||||
# Select the device drivers and filesystems you want
|
# Select the device drivers and filesystems you want
|
||||||
#
|
#
|
||||||
DEVICE_DRIVERS = blue ide keyboard mouse null parallel serial
|
DEVICE_DRIVERS = blue ide keyboard mouse null parallel serial vidport
|
||||||
# DEVICE_DRIVERS = beep event floppy ide_test sound test test1
|
# DEVICE_DRIVERS = beep event floppy ide_test sound test test1
|
||||||
FS_DRIVERS = vfat ext2
|
FS_DRIVERS = vfat
|
||||||
# FS_DRIVERS = template
|
# FS_DRIVERS = minix ext2 template
|
||||||
KERNEL_SERVICES = $(DEVICE_DRIVERS) $(FS_DRIVERS)
|
KERNEL_SERVICES = $(DEVICE_DRIVERS) $(FS_DRIVERS)
|
||||||
|
|
||||||
APPS = args hello shell test cat bench
|
APPS = args hello shell test cat bench
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -150,7 +150,7 @@ static struct _ERRLIST
|
||||||
{STATUS_OBJECT_PATH_INVALID, "OBJECT_PATH_INVALID", NULL},
|
{STATUS_OBJECT_PATH_INVALID, "OBJECT_PATH_INVALID", NULL},
|
||||||
{STATUS_OBJECT_PATH_NOT_FOUND, "OBJECT_PATH_NOT_FOUND", NULL},
|
{STATUS_OBJECT_PATH_NOT_FOUND, "OBJECT_PATH_NOT_FOUND", NULL},
|
||||||
{STATUS_DFS_EXIT_PATH_FOUND, "DFS_EXIT_PATH_FOUND", NULL},
|
{STATUS_DFS_EXIT_PATH_FOUND, "DFS_EXIT_PATH_FOUND", NULL},
|
||||||
{STATUS_OBJECT_PATH_SYNTAX_BAD, "OBJECT_PATH_SYNTAX_BAD", NULL},
|
{STATUS_PATH_SYNTAX_BAD, "PATH_SYNTAX_BAD", NULL},
|
||||||
{STATUS_DATA_OVERRUN, "DATA_OVERRUN", NULL},
|
{STATUS_DATA_OVERRUN, "DATA_OVERRUN", NULL},
|
||||||
{STATUS_DATA_LATE_ERROR, "DATA_LATE_ERROR", NULL},
|
{STATUS_DATA_LATE_ERROR, "DATA_LATE_ERROR", NULL},
|
||||||
{STATUS_DATA_ERROR, "DATA_ERROR", NULL},
|
{STATUS_DATA_ERROR, "DATA_ERROR", NULL},
|
||||||
|
|
|
@ -165,28 +165,6 @@ VOID LdrInitModuleManagement(VOID)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS
|
|
||||||
LdrCreateModule(PVOID ObjectBody,
|
|
||||||
PVOID Parent,
|
|
||||||
PWSTR RemainingPath,
|
|
||||||
POBJECT_ATTRIBUTES ObjectAttributes)
|
|
||||||
{
|
|
||||||
DPRINT("LdrCreateModule(ObjectBody %x, Parent %x, RemainingPath %w)\n",
|
|
||||||
ObjectBody,
|
|
||||||
Parent,
|
|
||||||
RemainingPath);
|
|
||||||
if (RemainingPath != NULL && wcschr(RemainingPath + 1, '\\') != NULL)
|
|
||||||
{
|
|
||||||
return STATUS_UNSUCCESSFUL;
|
|
||||||
}
|
|
||||||
if (Parent != NULL && RemainingPath != NULL)
|
|
||||||
{
|
|
||||||
ObAddEntryDirectory(Parent, ObjectBody, RemainingPath + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* load the auto config drivers.
|
* load the auto config drivers.
|
||||||
*/
|
*/
|
||||||
|
@ -217,6 +195,28 @@ VOID LdrLoadAutoConfigDrivers(VOID)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static NTSTATUS
|
||||||
|
LdrCreateModule(PVOID ObjectBody,
|
||||||
|
PVOID Parent,
|
||||||
|
PWSTR RemainingPath,
|
||||||
|
POBJECT_ATTRIBUTES ObjectAttributes)
|
||||||
|
{
|
||||||
|
DPRINT("LdrCreateModule(ObjectBody %x, Parent %x, RemainingPath %w)\n",
|
||||||
|
ObjectBody,
|
||||||
|
Parent,
|
||||||
|
RemainingPath);
|
||||||
|
if (RemainingPath != NULL && wcschr(RemainingPath + 1, '\\') != NULL)
|
||||||
|
{
|
||||||
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
if (Parent != NULL && RemainingPath != NULL)
|
||||||
|
{
|
||||||
|
ObAddEntryDirectory(Parent, ObjectBody, RemainingPath + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Loads a kernel driver
|
* FUNCTION: Loads a kernel driver
|
||||||
* ARGUMENTS:
|
* ARGUMENTS:
|
||||||
|
@ -633,15 +633,6 @@ LdrPEProcessModule(PVOID ModuleLoadBase)
|
||||||
/* Check to make sure that import lib is kernel */
|
/* Check to make sure that import lib is kernel */
|
||||||
pName = (PCHAR) DriverBase +
|
pName = (PCHAR) DriverBase +
|
||||||
ImportModuleDirectory->dwRVAModuleName;
|
ImportModuleDirectory->dwRVAModuleName;
|
||||||
#if 0
|
|
||||||
if (!strcmp(pName, "ntoskrnl.exe") || !strcmp(pName, "HAL.dll"))
|
|
||||||
{
|
|
||||||
LibraryModuleObject = NULL;
|
|
||||||
DPRINT("Kernel imports\n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
wcscpy(NameBuffer, MODULE_ROOT_NAME);
|
wcscpy(NameBuffer, MODULE_ROOT_NAME);
|
||||||
for (Idx = 0; NameBuffer[Idx] != 0; Idx++)
|
for (Idx = 0; NameBuffer[Idx] != 0; Idx++)
|
||||||
;
|
;
|
||||||
|
@ -658,7 +649,6 @@ LdrPEProcessModule(PVOID ModuleLoadBase)
|
||||||
{
|
{
|
||||||
DbgPrint("Unknown import module: %W\n", &ModuleName);
|
DbgPrint("Unknown import module: %W\n", &ModuleName);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
/* Get the import address list */
|
/* Get the import address list */
|
||||||
ImportAddressList = (PVOID *) ((DWORD)DriverBase +
|
ImportAddressList = (PVOID *) ((DWORD)DriverBase +
|
||||||
ImportModuleDirectory->dwRVAFunctionAddressList);
|
ImportModuleDirectory->dwRVAFunctionAddressList);
|
||||||
|
@ -699,19 +689,8 @@ LdrPEProcessModule(PVOID ModuleLoadBase)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
/* Get address for symbol */
|
|
||||||
*SymbolNameBuf = '_';
|
|
||||||
strcpy(SymbolNameBuf + 1, pName);
|
|
||||||
*ImportAddressList = (PVOID) LdrGetKernelSymbolAddr(SymbolNameBuf);
|
|
||||||
if (*ImportAddressList == 0L)
|
|
||||||
{
|
|
||||||
DbgPrint("Unresolved kernel symbol: %s\n", pName);
|
DbgPrint("Unresolved kernel symbol: %s\n", pName);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
DbgPrint("Unresolved kernel symbol: %s\n", pName);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
ImportAddressList++;
|
ImportAddressList++;
|
||||||
FunctionNameList++;
|
FunctionNameList++;
|
||||||
}
|
}
|
||||||
|
@ -878,44 +857,4 @@ LdrPEGetEnclosingSectionHeader(DWORD RVA,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
/*
|
|
||||||
* FUNCTION: Get the address of a kernel symbol
|
|
||||||
* ARGUMENTS:
|
|
||||||
* name = symbol name
|
|
||||||
* RETURNS: The address of the symbol on success
|
|
||||||
* NULL on failure
|
|
||||||
*/
|
|
||||||
|
|
||||||
static unsigned int
|
|
||||||
LdrGetKernelSymbolAddr(char *Name)
|
|
||||||
{
|
|
||||||
int i = 0;
|
|
||||||
char* s;
|
|
||||||
|
|
||||||
if ((s=strchr(Name,'@'))!=NULL)
|
|
||||||
{
|
|
||||||
*s=0;
|
|
||||||
DPRINT("Name %s ",Name);
|
|
||||||
}
|
|
||||||
while (symbol_table[i].name != NULL)
|
|
||||||
{
|
|
||||||
if (strcmp(symbol_table[i].name, Name) == 0)
|
|
||||||
{
|
|
||||||
if (s!=NULL)
|
|
||||||
{
|
|
||||||
*s=0;
|
|
||||||
DPRINT("Matched with %s\n",symbol_table[i].name);
|
|
||||||
}
|
|
||||||
return symbol_table[i].value;
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
if (s!=NULL)
|
|
||||||
{
|
|
||||||
*s=0;
|
|
||||||
}
|
|
||||||
return 0L;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -30,6 +30,8 @@ NASM_CMD = nasm
|
||||||
RM = del
|
RM = del
|
||||||
KM_SPECS = specs
|
KM_SPECS = specs
|
||||||
DOSCLI = yes
|
DOSCLI = yes
|
||||||
|
FLOPPY_DIR=A:
|
||||||
|
DIST_DIR=dist
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue