untested implementation of the registry

svn path=/trunk/; revision=553
This commit is contained in:
Rex Jolliff 1999-06-14 07:37:55 +00:00
parent d913de5c14
commit e0c5a61982
12 changed files with 1762 additions and 473 deletions

View file

@ -3,13 +3,9 @@
:
: copy files to HD...
:
COPY /Y BLUE.SYS C:\reactos\system\drivers\blue.SYS > NUL:
COPY /Y KEYBOARD.SYS C:\reactos\system\drivers\KEYBOARD.SYS > NUL:
COPY /Y NTDLL.DLL C:\reactos\system\NTDLL.DLL > 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:
COPY /Y A:\DRIVERS\*.SYS C:\reactos\system\drivers > NUL:
COPY /Y A:\DLLS\*.DLL C:\reactos\system > NUL:
COPY /Y A:\APPS\*.EXE C:\reactos\system > NUL:
:
: present a menu to the booter...
:

View file

@ -87,12 +87,8 @@ typedef struct _KEY_VALUE_PARTIAL_INFORMATION
UCHAR Data[1];
} 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_BACKUP_RESTORE 0x00000004
#define REG_CREATED_NEW_KEY 1
#define REG_OPENED_EXISTING_KEY 2

View file

@ -111,9 +111,9 @@ typedef USHORT CSHORT;
typedef struct _TIME {
DWORD LowPart;
LONG HighPart;
} TIME;
} TIME, *PTIME;
#endif
typedef ULARGE_INTEGER TIME;
typedef ULARGE_INTEGER TIME, *PTIME;
#endif

View file

@ -155,7 +155,7 @@ DWORD RtlNtStatusToDosError(NTSTATUS Status)
case STATUS_PORT_ALREADY_SET:
case STATUS_SECTION_NOT_IMAGE:
// case STATUS_SECTION_NOT_IMAGE:
case STATUS_BAD_WORKING_SET_LIMIT:
case STATUS_INCOMPATIBLE_FILE_MAP:
case STATUS_UNABLE_TO_FREE_VM:

View file

@ -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
#
@ -21,12 +21,12 @@ endif
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
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)

View file

@ -2,26 +2,30 @@
echo copying latest files to a:...
copy /Y bootflop.bat a:\autoexec.bat > NUL:
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
copy /Y ntoskrnl\ntoskrnl.exe a: > NUL:
copy /Y ntoskrnl\ntoskrnl.exe a:\ > NUL:
echo ntoskrnl.exe
copy /Y services\dd\ide\ide.sys a: > NUL:
copy /Y services\dd\ide\ide.sys a:\ > NUL:
echo ide.sys
copy /Y services\fs\vfat\vfatfsd.sys a: > NUL:
copy /Y services\fs\vfat\vfatfsd.sys a:\ > NUL:
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
copy /Y services\dd\keyboard\keyboard.sys a: > NUL:
copy /Y services\dd\keyboard\keyboard.sys a:\drivers > NUL:
echo keyboard.sys
copy /Y lib\ntdll\ntdll.dll a: > NUL:
echo ntdll.dll
copy /Y lib\kernel32\kernel32.dll a: > NUL:
echo kernel32.dll
copy /Y apps\shell\shell.exe a: > NUL:
copy /Y lib\ntdll\ntdll.dll a:\dlls > NUL:
echo lib\advapi\ntdll.dll
copy /Y lib\kernel32\kernel32.dll a:\dlls > NUL:
echo lib\advapi\kernel32.dll
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
: copy /Y lib\crtdll\crtdll.dll a: > NUL:
: echo lib\crtdll\crtdll.dll a:

View file

@ -22,7 +22,8 @@ SUBSYS = win32k
#
# 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

View file

@ -15,14 +15,15 @@ include rules.mak
# Required to run the system
#
COMPONENTS = iface_native ntoskrnl
DLLS = ntdll kernel32 crtdll fmifs
#DLLS = advapi32
DLLS = ntdll kernel32 crtdll user32 fmifs gdi32
#DLLS = advapi32 mingw32
SUBSYS = win32k
#
# 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
@ -33,10 +34,10 @@ LOADERS = dos
#
# 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
FS_DRIVERS = vfat ext2
# FS_DRIVERS = template
FS_DRIVERS = vfat
# FS_DRIVERS = minix ext2 template
KERNEL_SERVICES = $(DEVICE_DRIVERS) $(FS_DRIVERS)
APPS = args hello shell test cat bench

File diff suppressed because it is too large Load diff

View file

@ -150,7 +150,7 @@ static struct _ERRLIST
{STATUS_OBJECT_PATH_INVALID, "OBJECT_PATH_INVALID", NULL},
{STATUS_OBJECT_PATH_NOT_FOUND, "OBJECT_PATH_NOT_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_LATE_ERROR, "DATA_LATE_ERROR", NULL},
{STATUS_DATA_ERROR, "DATA_ERROR", NULL},

View file

@ -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.
*/
@ -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
* ARGUMENTS:
@ -633,31 +633,21 @@ LdrPEProcessModule(PVOID ModuleLoadBase)
/* Check to make sure that import lib is kernel */
pName = (PCHAR) DriverBase +
ImportModuleDirectory->dwRVAModuleName;
#if 0
if (!strcmp(pName, "ntoskrnl.exe") || !strcmp(pName, "HAL.dll"))
wcscpy(NameBuffer, MODULE_ROOT_NAME);
for (Idx = 0; NameBuffer[Idx] != 0; Idx++)
;
for (Idx2 = 0; pName[Idx2] != '\0'; Idx2++)
{
LibraryModuleObject = NULL;
DPRINT("Kernel imports\n");
NameBuffer[Idx + Idx2] = (WCHAR) pName[Idx2];
}
else
#endif
NameBuffer[Idx + Idx2] = 0;
ModuleName.Length = ModuleName.MaximumLength = wcslen(NameBuffer);
ModuleName.Buffer = NameBuffer;
DPRINT("Import module: %W\n", &ModuleName);
LibraryModuleObject = LdrLoadModule(&ModuleName);
if (LibraryModuleObject == 0)
{
wcscpy(NameBuffer, MODULE_ROOT_NAME);
for (Idx = 0; NameBuffer[Idx] != 0; Idx++)
;
for (Idx2 = 0; pName[Idx2] != '\0'; Idx2++)
{
NameBuffer[Idx + Idx2] = (WCHAR) pName[Idx2];
}
NameBuffer[Idx + Idx2] = 0;
ModuleName.Length = ModuleName.MaximumLength = wcslen(NameBuffer);
ModuleName.Buffer = NameBuffer;
DPRINT("Import module: %W\n", &ModuleName);
LibraryModuleObject = LdrLoadModule(&ModuleName);
if (LibraryModuleObject == 0)
{
DbgPrint("Unknown import module: %W\n", &ModuleName);
}
DbgPrint("Unknown import module: %W\n", &ModuleName);
}
/* Get the import address list */
ImportAddressList = (PVOID *) ((DWORD)DriverBase +
@ -699,18 +689,7 @@ LdrPEProcessModule(PVOID ModuleLoadBase)
}
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);
}
#else
DbgPrint("Unresolved kernel symbol: %s\n", pName);
#endif
}
ImportAddressList++;
FunctionNameList++;
@ -878,44 +857,4 @@ LdrPEGetEnclosingSectionHeader(DWORD RVA,
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

View file

@ -30,6 +30,8 @@ NASM_CMD = nasm
RM = del
KM_SPECS = specs
DOSCLI = yes
FLOPPY_DIR=A:
DIST_DIR=dist
endif
#