Corrected additional object manager issues pointed by Philip Susi

Began added console i/o code to csrss (not working yet)
Corrected long standing page fault bug (not zeroing allocated page)

svn path=/trunk/; revision=898
This commit is contained in:
David Welch 1999-12-22 14:48:30 +00:00
parent 1667a4589a
commit dbd051cad4
29 changed files with 929 additions and 574 deletions

View file

@ -5,9 +5,9 @@ mingw32 cross compiler running on unix.
2. Building 2. Building
To build from Windows run 'make -fmakefile.dos'. To build from unix, edit To build from Windows run make. To build from unix, edit rules.mak and change
rules.mak and change the PREFIX variable to the correct value for your the PREFIX variable to the correct value for your cross-compiler, then run
cross-compiler, then run 'make'. 'make'.
3. Installation 3. Installation
@ -17,9 +17,13 @@ structure like the following
make directories C:\reactos,C:\reactos\system,C:\reactos\system\drivers make directories C:\reactos,C:\reactos\system,C:\reactos\system\drivers
Copy apps/shell/shell.exe to C:\reactos\system Copy apps/shell/shell.exe to C:\reactos\system32
Copy services/dd/keyboard/keyboard.sys to C:\reactos\system\drivers Copy subsys/smss/smss.exe to C:\reactos\system32
Copy services/dd/blue/blue.sys to C:\reactos\system\drivers Copy services/dd/keyboard/keyboard.sys to C:\reactos\system32\drivers
Copy services/dd/blue/blue.sys to C:\reactos\system32\drivers
Copy lib/ntdll/ntdll.dll to C:\reactos\system32
Copy lib/kernel32/kernel32.dll to C:\reactos\system32
Copy lib/crtdll/crtdll.dll to C:\reactos\system32
The system can only be started from DOS. Copy the following files, The system can only be started from DOS. Copy the following files,
services/dd/ide/ide.sys, services/fs/vfat/vfatfsd.sys and services/dd/ide/ide.sys, services/fs/vfat/vfatfsd.sys and

View file

@ -41,7 +41,7 @@ FS_DRIVERS = vfat
# FS_DRIVERS = minix ext2 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 apc shm lpc thread APPS = args hello shell test cat bench apc shm lpc thread event
# APPS = cmd # APPS = cmd
all: buildno $(COMPONENTS) $(DLLS) $(SUBSYS) $(LOADERS) $(KERNEL_SERVICES) $(APPS) all: buildno $(COMPONENTS) $(DLLS) $(SUBSYS) $(LOADERS) $(KERNEL_SERVICES) $(APPS)

View file

@ -1,7 +1,6 @@
0.0.14: Converted to PE format 0.0.14: Converted to PE format
All system libraries are now dlls All system libraries are now dlls
0.0.13: Mostly bugfixes (I think) 0.0.13: Mostly bugfixes (I think)
0.0.12: Added support for multiple processes (not really tested) 0.0.12: Added support for multiple processes (not really tested)

View file

@ -1,4 +1,4 @@
/* $Id: ide.c,v 1.23 1999/12/04 20:58:36 ea Exp $ /* $Id: ide.c,v 1.24 1999/12/22 14:48:27 dwelch Exp $
* *
* IDE.C - IDE Disk driver * IDE.C - IDE Disk driver
* written by Rex Jolliff * written by Rex Jolliff
@ -1231,6 +1231,7 @@ DPRINT("AdjOffset:%ld:%ld + Length:%ld = AdjExtent:%ld:%ld\n",
IrpInsertKey = InsertKeyLI.u.LowPart; IrpInsertKey = InsertKeyLI.u.LowPart;
IoStartPacket(DeviceExtension->DeviceObject, Irp, &IrpInsertKey, NULL); IoStartPacket(DeviceExtension->DeviceObject, Irp, &IrpInsertKey, NULL);
DPRINT("Returning STATUS_PENDING\n");
return STATUS_PENDING; return STATUS_PENDING;
} }

View file

@ -66,7 +66,9 @@ BOOLEAN VFATReadSectors(IN PDEVICE_OBJECT pDeviceObject,
irp); irp);
DPRINT("Waiting for IO Operation...\n"); DPRINT("Waiting for IO Operation...\n");
if (status == STATUS_PENDING) { if (status == STATUS_PENDING)
{
DPRINT("Operation pending\n");
KeWaitForSingleObject(&event, KeWaitForSingleObject(&event,
Suspended, Suspended,
KernelMode, KernelMode,

View file

@ -1,4 +1,4 @@
/* $Id: iface.c,v 1.39 1999/12/11 21:14:49 dwelch Exp $ /* $Id: iface.c,v 1.40 1999/12/22 14:48:28 dwelch Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -50,6 +50,7 @@ BOOLEAN FsdHasFileSystem(PDEVICE_OBJECT DeviceToMount)
VFATReadSectors(DeviceToMount, 0, 1, (UCHAR *)Boot); VFATReadSectors(DeviceToMount, 0, 1, (UCHAR *)Boot);
DPRINT("Boot->SysType %.5s\n", Boot->SysType);
if (strncmp(Boot->SysType,"FAT12",5)==0 || if (strncmp(Boot->SysType,"FAT12",5)==0 ||
strncmp(Boot->SysType,"FAT16",5)==0 || strncmp(Boot->SysType,"FAT16",5)==0 ||
strncmp(((struct _BootSector32 *)(Boot))->SysType,"FAT32",5)==0) strncmp(((struct _BootSector32 *)(Boot))->SysType,"FAT32",5)==0)
@ -174,6 +175,7 @@ NTSTATUS FsdFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
if (FsdHasFileSystem(DeviceToMount)) if (FsdHasFileSystem(DeviceToMount))
{ {
DPRINT("VFAT: Recognized volume\n");
Status = FsdMount(DeviceToMount); Status = FsdMount(DeviceToMount);
} }
else else
@ -181,7 +183,6 @@ NTSTATUS FsdFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
DPRINT("VFAT: Unrecognized Volume\n"); DPRINT("VFAT: Unrecognized Volume\n");
Status = STATUS_UNRECOGNIZED_VOLUME; Status = STATUS_UNRECOGNIZED_VOLUME;
} }
DPRINT("VFAT File system successfully mounted\n");
Irp->IoStatus.Status = Status; Irp->IoStatus.Status = Status;
Irp->IoStatus.Information = 0; Irp->IoStatus.Information = 0;

View file

@ -0,0 +1,25 @@
#ifndef __INCLUDE_CSRSS_CSRSS_H
#define __INCLUDE_CSRSS_CSRSS_H
#define CSRSS_CREATE_PROCESS (0x1)
#define CSRSS_TERMINATE_PROCESS (0x2)
#define CSRSS_WRITE_CONSOLE (0x3)
#define CSRSS_READ_CONSOLE (0x4)
#define CSRSS_ALLOC_CONSO (0x5)
#define CSRSS_FREE_CONSOLE (0x6)
#define CSRSS_CONNECT_PROCESS (0x7)
typedef struct
{
ULONG Type;
BYTE Data[0x12C];
} CSRSS_API_REQUEST, *PCSRSS_API_REQUEST;
typedef struct
{
NTSTATUS Status;
ULONG Count;
HANDLE Handle;
} CSRSS_API_REPLY, *PCSRSS_API_REPLY;
#endif

View file

@ -203,349 +203,354 @@
#define STATUS_SEMAPHORE_LIMIT_EXCEEDED (0xc0000047) #define STATUS_SEMAPHORE_LIMIT_EXCEEDED (0xc0000047)
#define STATUS_PORT_ALREADY_SET (0xc0000048) #define STATUS_PORT_ALREADY_SET (0xc0000048)
enum #define STATUS_SECTION_NOT_IMAGE (0xc0000049)
{ #define STATUS_SUSPEND_COUNT_EXCEEDED (0xc000004a)
STATUS_SECTION_NOT_IMAGE, #define STATUS_THREAD_IS_TERMINATING (0xc000004b)
STATUS_SUSPEND_COUNT_EXCEEDED, #define STATUS_BAD_WORKING_SET_LIMIT (0xc000004c)
STATUS_THREAD_IS_TERMINATING, #define STATUS_INCOMPATIBLE_FILE_MAP (0xc000004d)
STATUS_BAD_WORKING_SET_LIMIT, #define STATUS_SECTION_PROTECTION (0xc000004e)
STATUS_INCOMPATIBLE_FILE_MAP, #define STATUS_EAS_NOT_SUPPORTED (0xc000004f)
STATUS_SECTION_PROTECTION, #define STATUS_EA_TOO_LARGE (0xc0000050)
STATUS_EAS_NOT_SUPPORTED, #define STATUS_NONEXISTENT_EA_ENTRY (0xc0000051)
STATUS_EA_TOO_LARGE, #define STATUS_NO_EAS_ON_FILE (0xc0000052)
STATUS_NONEXISTENT_EA_ENTRY, #define STATUS_EA_CORRUPT_ERROR (0xc0000053)
STATUS_NO_EAS_ON_FILE, #define STATUS_FILE_LOCK_CONFLICT (0xc0000054)
STATUS_EA_CORRUPT_ERROR, #define STATUS_LOCK_NOT_GRANTED (0xc0000055)
STATUS_FILE_LOCK_CONFLICT, #define STATUS_DELETE_PENDING (0xc0000056)
STATUS_LOCK_NOT_GRANTED, #define STATUS_CTL_FILE_NOT_SUPPORTED (0xc0000057)
STATUS_DELETE_PENDING, #define STATUS_UNKNOWN_REVISION (0xc0000058)
STATUS_CTL_FILE_NOT_SUPPORTED, #define STATUS_REVISION_MISMATCH (0xc0000059)
STATUS_UNKNOWN_REVISION, #define STATUS_INVALID_OWNER (0xc000005a)
STATUS_REVISION_MISMATCH, #define STATUS_INVALID_PRIMARY_GROUP (0xc000005b)
STATUS_INVALID_OWNER, #define STATUS_NO_IMPERSONATION_TOKEN (0xc000005c)
STATUS_INVALID_PRIMARY_GROUP, #define STATUS_CANT_DISABLE_MANDATORY (0xc000005d)
STATUS_NO_IMPERSONATION_TOKEN, #define STATUS_NO_LOGON_SERVERS (0xc000005e)
STATUS_CANT_DISABLE_MANDATORY, #define STATUS_NO_SUCH_LOGON_SESSION (0xc000005f)
STATUS_NO_LOGON_SERVERS, #define STATUS_NO_SUCH_PRIVILEGE (0xc0000060)
STATUS_NO_SUCH_LOGON_SESSION, #define STATUS_PRIVILEGE_NOT_HELD (0xc0000061)
STATUS_NO_SUCH_PRIVILEGE, #define STATUS_INVALID_ACCOUNT_NAME (0xc0000062)
STATUS_PRIVILEGE_NOT_HELD, #define STATUS_USER_EXISTS (0xc0000063)
STATUS_INVALID_ACCOUNT_NAME, #define STATUS_NO_SUCH_USER (0xc0000064)
STATUS_USER_EXISTS, #define STATUS_GROUP_EXISTS (0xc0000065)
STATUS_NO_SUCH_USER, #define STATUS_NO_SUCH_GROUP (0xc0000066)
STATUS_GROUP_EXISTS, #define STATUS_MEMBER_IN_GROUP (0xc0000067)
STATUS_NO_SUCH_GROUP, #define STATUS_MEMBER_NOT_IN_GROUP (0xc0000068)
STATUS_MEMBER_IN_GROUP, #define STATUS_LAST_ADMIN (0xc0000069)
STATUS_MEMBER_NOT_IN_GROUP, #define STATUS_WRONG_PASSWORD (0xc000006a)
STATUS_LAST_ADMIN, #define STATUS_ILL_FORMED_PASSWORD (0xc000006b)
STATUS_WRONG_PASSWORD, #define STATUS_PASSWORD_RESTRICTION (0xc000006c)
STATUS_ILL_FORMED_PASSWORD, #define STATUS_LOGON_FAILURE (0xc000006d)
STATUS_PASSWORD_RESTRICTION, #define STATUS_ACCOUNT_RESTRICTION (0xc000006e)
STATUS_LOGON_FAILURE, #define STATUS_INVALID_LOGON_HOURS (0xc000006f)
STATUS_ACCOUNT_RESTRICTION, #define STATUS_INVALID_WORKSTATION (0xc0000070)
STATUS_INVALID_LOGON_HOURS, #define STATUS_PASSWORD_EXPIRED (0xc0000071)
STATUS_INVALID_WORKSTATION, #define STATUS_ACCOUNT_DISABLED (0xc0000072)
STATUS_PASSWORD_EXPIRED, #define STATUS_NONE_MAPPED (0xc0000073)
STATUS_ACCOUNT_DISABLED, #define STATUS_TOO_MANY_LUIDS_REQUESTED (0xc0000074)
STATUS_NONE_MAPPED, #define STATUS_LUIDS_EXHAUSTED (0xc0000075)
STATUS_TOO_MANY_LUIDS_REQUESTED, #define STATUS_INVALID_SUB_AUTHORITY (0xc0000076)
STATUS_LUIDS_EXHAUSTED, #define STATUS_INVALID_ACL (0xc0000077)
STATUS_INVALID_SUB_AUTHORITY, #define STATUS_INVALID_SID (0xc0000078)
STATUS_INVALID_ACL, #define STATUS_INVALID_SECURITY_DESCR (0xc0000079)
STATUS_INVALID_SID, #define STATUS_PROCEDURE_NOT_FOUND (0xc000007a)
STATUS_INVALID_SECURITY_DESCR, #define STATUS_INVALID_IMAGE_FORMAT (0xc000007b)
STATUS_PROCEDURE_NOT_FOUND, #define STATUS_NO_TOKEN (0xc000007c)
STATUS_INVALID_IMAGE_FORMAT, #define STATUS_BAD_INHERITANCE_ACL (0xc000007d)
STATUS_NO_TOKEN, #define STATUS_RANGE_NOT_LOCKED (0xc000007e)
STATUS_BAD_INHERITANCE_ACL, #define STATUS_DISK_FULL (0xc000007f)
STATUS_RANGE_NOT_LOCKED, #define STATUS_SERVER_DISABLED (0xc0000080)
STATUS_DISK_FULL, #define STATUS_SERVER_NOT_DISABLED (0xc0000081)
STATUS_SERVER_DISABLED, #define STATUS_TOO_MANY_GUIDS_REQUESTED (0xc0000082)
STATUS_SERVER_NOT_DISABLED, #define STATUS_GUIDS_EXHAUSTED (0xc0000083)
STATUS_TOO_MANY_GUIDS_REQUESTED, #define STATUS_INVALID_ID_AUTHORITY (0xc0000084)
STATUS_GUIDS_EXHAUSTED, #define STATUS_AGENTS_EXHAUSTED (0xc0000085)
STATUS_INVALID_ID_AUTHORITY, #define STATUS_INVALID_VOLUME_LABEL (0xc0000086)
STATUS_AGENTS_EXHAUSTED, #define STATUS_SECTION_NOT_EXTENDED (0xc0000087)
STATUS_INVALID_VOLUME_LABEL, #define STATUS_NOT_MAPPED_DATA (0xc0000088)
STATUS_SECTION_NOT_EXTENDED, #define STATUS_RESOURCE_DATA_NOT_FOUND (0xc0000089)
STATUS_NOT_MAPPED_DATA, #define STATUS_RESOURCE_TYPE_NOT_FOUND (0xc000008a)
STATUS_RESOURCE_DATA_NOT_FOUND, #define STATUS_RESOURCE_NAME_NOT_FOUND (0xc000008b)
STATUS_RESOURCE_TYPE_NOT_FOUND, #define STATUS_ARRAY_BOUNDS_EXCEEDED (0xc000008c)
STATUS_RESOURCE_NAME_NOT_FOUND, #define STATUS_FLOAT_DENORMAL_OPERAND (0xc000008d)
STATUS_ARRAY_BOUNDS_EXCEEDED, #define STATUS_FLOAT_DIVIDE_BY_ZERO (0xc000008e)
STATUS_FLOAT_DENORMAL_OPERAND, #define STATUS_FLOAT_INEXACT_RESULT (0xc000008f)
STATUS_FLOAT_DIVIDE_BY_ZERO, #define STATUS_FLOAT_INVALID_OPERATION (0xc0000090)
STATUS_FLOAT_INEXACT_RESULT, #define STATUS_FLOAT_OVERFLOW (0xc0000091)
STATUS_FLOAT_INVALID_OPERATION, #define STATUS_FLOAT_STACK_CHECK (0xc0000092)
STATUS_FLOAT_OVERFLOW, #define STATUS_FLOAT_UNDERFLOW (0xc0000093)
STATUS_FLOAT_STACK_CHECK, #define STATUS_INTEGER_DIVIDE_BY_ZERO (0xc0000094)
STATUS_FLOAT_UNDERFLOW, #define STATUS_INTEGER_OVERFLOW (0xc0000095)
STATUS_INTEGER_DIVIDE_BY_ZERO, #define STATUS_PRIVILEGED_INSTRUCTION (0xc0000096)
STATUS_INTEGER_OVERFLOW, #define STATUS_TOO_MANY_PAGING_FILES (0xc0000097)
STATUS_PRIVILEGED_INSTRUCTION, #define STATUS_FILE_INVALID (0xc0000098)
STATUS_TOO_MANY_PAGING_FILES, #define STATUS_ALLOTTED_SPACE_EXCEEDED (0xc0000099)
STATUS_FILE_INVALID, #define STATUS_INSUFFICIENT_RESOURCES (0xc000009a)
STATUS_ALLOTTED_SPACE_EXCEEDED, #define STATUS_DFS_EXIT_PATH_FOUND (0xc000009b)
STATUS_INSUFFICIENT_RESOURCES, #define STATUS_DEVICE_DATA_ERROR (0xc000009c)
STATUS_DFS_EXIT_PATH_FOUND, #define STATUS_DEVICE_NOT_CONNECTED (0xc000009d)
STATUS_DEVICE_DATA_ERROR, #define STATUS_DEVICE_POWER_FAILURE (0xc000009e)
STATUS_DEVICE_NOT_CONNECTED, #define STATUS_FREE_VM_NOT_AT_BASE (0xc000009f)
STATUS_DEVICE_POWER_FAILURE, #define STATUS_MEMORY_NOT_ALLOCATED (0xc0000100)
STATUS_FREE_VM_NOT_AT_BASE, #define STATUS_WORKING_SET_QUOTA (0xc0000101)
STATUS_MEMORY_NOT_ALLOCATED, #define STATUS_MEDIA_WRITE_PROTECTED (0xc0000102)
STATUS_WORKING_SET_QUOTA, #define STATUS_DEVICE_NOT_READY (0xc0000103)
STATUS_MEDIA_WRITE_PROTECTED, #define STATUS_INVALID_GROUP_ATTRIBUTES (0xc0000104)
STATUS_DEVICE_NOT_READY, #define STATUS_BAD_IMPERSONATION_LEVEL (0xc0000105)
STATUS_INVALID_GROUP_ATTRIBUTES, #define STATUS_CANT_OPEN_ANONYMOUS (0xc0000106)
STATUS_BAD_IMPERSONATION_LEVEL, #define STATUS_BAD_VALIDATION_CLASS (0xc0000107)
STATUS_CANT_OPEN_ANONYMOUS, #define STATUS_BAD_TOKEN_TYPE (0xc0000108)
STATUS_BAD_VALIDATION_CLASS, #define STATUS_BAD_MASTER_BOOT_RECORD (0xc0000109)
STATUS_BAD_TOKEN_TYPE, #define STATUS_INSTRUCTION_MISALIGNMENT (0xc000010a)
STATUS_BAD_MASTER_BOOT_RECORD, #define STATUS_INSTANCE_NOT_AVAILABLE (0xc000010b)
STATUS_INSTRUCTION_MISALIGNMENT, #define STATUS_PIPE_NOT_AVAILABLE (0xc000010c)
STATUS_INSTANCE_NOT_AVAILABLE, #define STATUS_INVALID_PIPE_STATE (0xc000010d)
STATUS_PIPE_NOT_AVAILABLE, #define STATUS_PIPE_BUSY (0xc000010e)
STATUS_INVALID_PIPE_STATE, #define STATUS_ILLEGAL_FUNCTION (0xc000010f)
STATUS_PIPE_BUSY, #define STATUS_PIPE_DISCONNECTED (0xc0000110)
STATUS_ILLEGAL_FUNCTION, #define STATUS_PIPE_CLOSING (0xc0000111)
STATUS_PIPE_DISCONNECTED, #define STATUS_PIPE_CONNECTED (0xc0000112)
STATUS_PIPE_CLOSING, #define STATUS_PIPE_LISTENING (0xc0000113)
STATUS_PIPE_CONNECTED, #define STATUS_INVALID_READ_MODE (0xc0000114)
STATUS_PIPE_LISTENING, #define STATUS_IO_TIMEOUT (0xc0000115)
STATUS_INVALID_READ_MODE, #define STATUS_FILE_FORCED_CLOSED (0xc0000116)
STATUS_IO_TIMEOUT, #define STATUS_PROFILING_NOT_STARTED (0xc0000117)
STATUS_FILE_FORCED_CLOSED, #define STATUS_PROFILING_NOT_STOPPED (0xc0000118)
STATUS_PROFILING_NOT_STARTED, #define STATUS_COULD_NOT_INTERPRET (0xc0000119)
STATUS_PROFILING_NOT_STOPPED, #define STATUS_FILE_IS_A_DIRECTORY (0xc000011a)
STATUS_COULD_NOT_INTERPRET, #define STATUS_NOT_SUPPORTED (0xc000011b)
STATUS_FILE_IS_A_DIRECTORY, #define STATUS_REMOTE_NOT_LISTENING (0xc000011c)
STATUS_NOT_SUPPORTED, #define STATUS_DUPLICATE_NAME (0xc000011d)
STATUS_REMOTE_NOT_LISTENING, #define STATUS_BAD_NETWORK_PATH (0xc000011e)
STATUS_DUPLICATE_NAME, #define STATUS_NETWORK_BUSY (0xc000011f)
STATUS_BAD_NETWORK_PATH, #define STATUS_DEVICE_DOES_NOT_EXIST (0xc0000120)
STATUS_NETWORK_BUSY, #define STATUS_TOO_MANY_COMMANDS (0xc0000121)
STATUS_DEVICE_DOES_NOT_EXIST, #define STATUS_ADAPTER_HARDWARE_ERROR (0xc0000122)
STATUS_TOO_MANY_COMMANDS, #define STATUS_INVALID_NETWORK_RESPONSE (0xc0000123)
STATUS_ADAPTER_HARDWARE_ERROR, #define STATUS_UNEXPECTED_NETWORK_ERROR (0xc0000124)
STATUS_INVALID_NETWORK_RESPONSE, #define STATUS_BAD_REMOTE_ADAPTER (0xc0000125)
STATUS_UNEXPECTED_NETWORK_ERROR, #define STATUS_PRINT_QUEUE_FULL (0xc0000126)
STATUS_BAD_REMOTE_ADAPTER, #define STATUS_NO_SPOOL_SPACE (0xc0000127)
STATUS_PRINT_QUEUE_FULL, #define STATUS_PRINT_CANCELLED (0xc0000128)
STATUS_NO_SPOOL_SPACE, #define STATUS_NETWORK_NAME_DELETED (0xc0000129)
STATUS_PRINT_CANCELLED, #define STATUS_NETWORK_ACCESS_DENIED (0xc000012a)
STATUS_NETWORK_NAME_DELETED, #define STATUS_BAD_DEVICE_TYPE (0xc000012b)
STATUS_NETWORK_ACCESS_DENIED, #define STATUS_BAD_NETWORK_NAME (0xc000012c)
STATUS_BAD_DEVICE_TYPE, #define STATUS_TOO_MANY_NAMES (0xc000012d)
STATUS_BAD_NETWORK_NAME, #define STATUS_TOO_MANY_SESSIONS (0xc000012e)
STATUS_TOO_MANY_NAMES, #define STATUS_SHARING_PAUSED (0xc000012f)
STATUS_TOO_MANY_SESSIONS, #define STATUS_REQUEST_NOT_ACCEPTED (0xc0000130)
STATUS_SHARING_PAUSED, #define STATUS_REDIRECTOR_PAUSED (0xc0000131)
STATUS_REQUEST_NOT_ACCEPTED, #define STATUS_NET_WRITE_FAULT (0xc0000132)
STATUS_REDIRECTOR_PAUSED, #define STATUS_PROFILING_AT_LIMIT (0xc0000133)
STATUS_NET_WRITE_FAULT, #define STATUS_NOT_SAME_DEVICE (0xc0000134)
STATUS_PROFILING_AT_LIMIT, #define STATUS_FILE_RENAMED (0xc0000135)
STATUS_NOT_SAME_DEVICE, #define STATUS_VIRTUAL_CIRCUIT_CLOSED (0xc0000136)
STATUS_FILE_RENAMED, #define STATUS_NO_SECURITY_ON_OBJECT (0xc0000137)
STATUS_VIRTUAL_CIRCUIT_CLOSED, #define STATUS_CANT_WAIT (0xc0000138)
STATUS_NO_SECURITY_ON_OBJECT, #define STATUS_PIPE_EMPTY (0xc0000139)
STATUS_CANT_WAIT, #define STATUS_CANT_ACCESS_DOMAIN_INFO (0xc000013a)
STATUS_PIPE_EMPTY, #define STATUS_CANT_TERMINATE_SELF (0xc000013b)
STATUS_CANT_ACCESS_DOMAIN_INFO, #define STATUS_INVALID_SERVER_STATE (0xc000013c)
STATUS_CANT_TERMINATE_SELF, #define STATUS_INVALID_DOMAIN_STATE (0xc000013d)
STATUS_INVALID_SERVER_STATE, #define STATUS_INVALID_DOMAIN_ROLE (0xc000013e)
STATUS_INVALID_DOMAIN_STATE, #define STATUS_NO_SUCH_DOMAIN (0xc000013f)
STATUS_INVALID_DOMAIN_ROLE, #define STATUS_DOMAIN_EXISTS (0xc0000140)
STATUS_NO_SUCH_DOMAIN, #define STATUS_DOMAIN_LIMIT_EXCEEDED (0xc0000141)
STATUS_DOMAIN_EXISTS, #define STATUS_OPLOCK_NOT_GRANTED (0xc0000142)
STATUS_DOMAIN_LIMIT_EXCEEDED, #define STATUS_INVALID_OPLOCK_PROTOCOL (0xc0000143)
STATUS_OPLOCK_NOT_GRANTED, #define STATUS_INTERNAL_DB_CORRUPTION (0xc0000144)
STATUS_INVALID_OPLOCK_PROTOCOL, #define STATUS_INTERNAL_ERROR (0xc0000145)
STATUS_INTERNAL_DB_CORRUPTION, #define STATUS_GENERIC_NOT_MAPPED (0xc0000146)
STATUS_INTERNAL_ERROR, #define STATUS_BAD_DESCRIPTOR_FORMAT (0xc0000147)
STATUS_GENERIC_NOT_MAPPED, #define STATUS_INVALID_USER_BUFFER (0xc0000148)
STATUS_BAD_DESCRIPTOR_FORMAT, #define STATUS_UNEXPECTED_IO_ERROR (0xc0000149)
STATUS_INVALID_USER_BUFFER, #define STATUS_UNEXPECTED_MM_CREATE_ERR (0xc000014a)
STATUS_UNEXPECTED_IO_ERROR, #define STATUS_UNEXPECTED_MM_MAP_ERROR (0xc000014b)
STATUS_UNEXPECTED_MM_CREATE_ERR, #define STATUS_UNEXPECTED_MM_EXTEND_ERR (0xc000014c)
STATUS_UNEXPECTED_MM_MAP_ERROR, #define STATUS_NOT_LOGON_PROCESS (0xc000014d)
STATUS_UNEXPECTED_MM_EXTEND_ERR, #define STATUS_LOGON_SESSION_EXISTS (0xc000014e)
STATUS_NOT_LOGON_PROCESS, #define STATUS_INVALID_PARAMETER_1 (0xc000014f)
STATUS_LOGON_SESSION_EXISTS, #define STATUS_INVALID_PARAMETER_2 (0xc0000150)
STATUS_INVALID_PARAMETER_1, #define STATUS_INVALID_PARAMETER_3 (0xc0000151)
STATUS_INVALID_PARAMETER_2, #define STATUS_INVALID_PARAMETER_4 (0xc0000152)
STATUS_INVALID_PARAMETER_3, #define STATUS_INVALID_PARAMETER_5 (0xc0000153)
STATUS_INVALID_PARAMETER_4, #define STATUS_INVALID_PARAMETER_6 (0xc0000154)
STATUS_INVALID_PARAMETER_5, #define STATUS_INVALID_PARAMETER_7 (0xc0000155)
STATUS_INVALID_PARAMETER_6, #define STATUS_INVALID_PARAMETER_8 (0xc0000156)
STATUS_INVALID_PARAMETER_7, #define STATUS_INVALID_PARAMETER_9 (0xc0000157)
STATUS_INVALID_PARAMETER_8, #define STATUS_INVALID_PARAMETER_10 (0xc0000158)
STATUS_INVALID_PARAMETER_9, #define STATUS_INVALID_PARAMETER_11 (0xc0000159)
STATUS_INVALID_PARAMETER_10, #define STATUS_INVALID_PARAMETER_12 (0xc000015a)
STATUS_INVALID_PARAMETER_11, #define STATUS_REDIRECTOR_NOT_STARTED (0xc000015b)
STATUS_INVALID_PARAMETER_12, #define STATUS_REDIRECTOR_STARTED (0xc000015c)
STATUS_REDIRECTOR_NOT_STARTED, #define STATUS_STACK_OVERFLOW (0xc000015d)
STATUS_REDIRECTOR_STARTED, #define STATUS_NO_SUCH_PACKAGE (0xc000015e)
STATUS_STACK_OVERFLOW, #define STATUS_BAD_FUNCTION_TABLE (0xc000015f)
STATUS_NO_SUCH_PACKAGE, #define STATUS_VARIABLE_NOT_FOUND (0xc0000160)
STATUS_BAD_FUNCTION_TABLE, #define STATUS_DIRECTORY_NOT_EMPTY (0xc0000161)
STATUS_VARIABLE_NOT_FOUND, #define STATUS_FILE_CORRUPT_ERROR (0xc0000162)
STATUS_DIRECTORY_NOT_EMPTY, #define STATUS_NOT_A_DIRECTORY (0xc0000163)
STATUS_FILE_CORRUPT_ERROR, #define STATUS_BAD_LOGON_SESSION_STATE (0xc0000164)
STATUS_NOT_A_DIRECTORY, #define STATUS_LOGON_SESSION_COLLISION (0xc0000165)
STATUS_BAD_LOGON_SESSION_STATE, #define STATUS_NAME_TOO_LONG (0xc0000166)
STATUS_LOGON_SESSION_COLLISION, #define STATUS_FILES_OPEN (0xc0000167)
STATUS_NAME_TOO_LONG, #define STATUS_CONNECTION_IN_USE (0xc0000168)
STATUS_FILES_OPEN, #define STATUS_MESSAGE_NOT_FOUND (0xc0000169)
STATUS_CONNECTION_IN_USE, #define STATUS_PROCESS_IS_TERMINATING (0xc000016a)
STATUS_MESSAGE_NOT_FOUND, #define STATUS_INVALID_LOGON_TYPE (0xc000016b)
STATUS_PROCESS_IS_TERMINATING, #define STATUS_NO_GUID_TRANSLATION (0xc000016c)
STATUS_INVALID_LOGON_TYPE, #define STATUS_CANNOT_IMPERSONATE (0xc000016d)
STATUS_NO_GUID_TRANSLATION, #define STATUS_IMAGE_ALREADY_LOADED (0xc000016e)
STATUS_CANNOT_IMPERSONATE, #define STATUS_ABIOS_NOT_PRESENT (0xc000016f)
STATUS_IMAGE_ALREADY_LOADED, #define STATUS_ABIOS_LID_NOT_EXIST (0xc0000170)
STATUS_ABIOS_NOT_PRESENT, #define STATUS_ABIOS_LID_ALREADY_OWNED (0xc0000171)
STATUS_ABIOS_LID_NOT_EXIST, #define STATUS_ABIOS_NOT_LID_OWNER (0xc0000172)
STATUS_ABIOS_LID_ALREADY_OWNED, #define STATUS_ABIOS_INVALID_COMMAND (0xc0000173)
STATUS_ABIOS_NOT_LID_OWNER, #define STATUS_ABIOS_INVALID_LID (0xc0000174)
STATUS_ABIOS_INVALID_COMMAND, #define STATUS_ABIOS_SELECTOR_NOT_AVAILABLE (0xc0000175)
STATUS_ABIOS_INVALID_LID, #define STATUS_ABIOS_INVALID_SELECTOR (0xc0000176)
STATUS_ABIOS_SELECTOR_NOT_AVAILABLE, #define STATUS_NO_LDT (0xc0000177)
STATUS_ABIOS_INVALID_SELECTOR, #define STATUS_INVALID_LDT_SIZE (0xc0000178)
STATUS_NO_LDT, #define STATUS_INVALID_LDT_OFFSET (0xc0000179)
STATUS_INVALID_LDT_SIZE, #define STATUS_INVALID_LDT_DESCRIPTOR (0xc000017a)
STATUS_INVALID_LDT_OFFSET, #define STATUS_INVALID_IMAGE_NE_FORMAT (0xc000017b)
STATUS_INVALID_LDT_DESCRIPTOR, #define STATUS_RXACT_INVALID_STATE (0xc000017c)
STATUS_INVALID_IMAGE_NE_FORMAT, #define STATUS_RXACT_COMMIT_FAILURE (0xc000017d)
STATUS_RXACT_INVALID_STATE, #define STATUS_MAPPED_FILE_SIZE_ZERO (0xc000017e)
STATUS_RXACT_COMMIT_FAILURE, #define STATUS_TOO_MANY_OPENED_FILES (0xc000017f)
STATUS_MAPPED_FILE_SIZE_ZERO, #define STATUS_CANCELLED (0xc0000180)
STATUS_TOO_MANY_OPENED_FILES, #define STATUS_CANNOT_DELETE (0xc0000181)
STATUS_CANCELLED, #define STATUS_INVALID_COMPUTER_NAME (0xc0000182)
STATUS_CANNOT_DELETE, #define STATUS_FILE_DELETED (0xc0000183)
STATUS_INVALID_COMPUTER_NAME, #define STATUS_SPECIAL_ACCOUNT (0xc0000184)
STATUS_FILE_DELETED, #define STATUS_SPECIAL_GROUP (0xc0000185)
STATUS_SPECIAL_ACCOUNT, #define STATUS_SPECIAL_USER (0xc0000186)
STATUS_SPECIAL_GROUP, #define STATUS_MEMBERS_PRIMARY_GROUP (0xc0000187)
STATUS_SPECIAL_USER, #define STATUS_FILE_CLOSED (0xc0000188)
STATUS_MEMBERS_PRIMARY_GROUP, #define STATUS_TOO_MANY_THREADS (0xc0000189)
STATUS_FILE_CLOSED, #define STATUS_THREAD_NOT_IN_PROCESS (0xc000018a)
STATUS_TOO_MANY_THREADS, #define STATUS_TOKEN_ALREADY_IN_USE (0xc000018b)
STATUS_THREAD_NOT_IN_PROCESS, #define STATUS_PAGEFILE_QUOTA_EXCEEDED (0xc000018c)
STATUS_TOKEN_ALREADY_IN_USE, #define STATUS_COMMITMENT_LIMIT (0xc000018d)
STATUS_PAGEFILE_QUOTA_EXCEEDED, #define STATUS_INVALID_IMAGE_LE_FORMAT (0xc000018e)
STATUS_COMMITMENT_LIMIT, #define STATUS_INVALID_IMAGE_NOT_MZ (0xc000018f)
STATUS_INVALID_IMAGE_LE_FORMAT, #define STATUS_INVALID_IMAGE_PROTECT (0xc0000190)
STATUS_INVALID_IMAGE_NOT_MZ, #define STATUS_INVALID_IMAGE_WIN_16 (0xc0000191)
STATUS_INVALID_IMAGE_PROTECT, #define STATUS_LOGON_SERVER_CONFLICT (0xc0000192)
STATUS_INVALID_IMAGE_WIN_16, #define STATUS_TIME_DIFFERENCE_AT_DC (0xc0000193)
STATUS_LOGON_SERVER_CONFLICT, #define STATUS_SYNCHRONIZATION_REQUIRED (0xc0000194)
STATUS_TIME_DIFFERENCE_AT_DC, #define STATUS_DLL_NOT_FOUND (0xc0000195)
STATUS_SYNCHRONIZATION_REQUIRED, #define STATUS_OPEN_FAILED (0xc0000196)
STATUS_DLL_NOT_FOUND, #define STATUS_IO_PRIVILEGE_FAILED (0xc0000197)
STATUS_OPEN_FAILED, #define STATUS_ORDINAL_NOT_FOUND (0xc0000198)
STATUS_IO_PRIVILEGE_FAILED, #define STATUS_ENTRYPOINT_NOT_FOUND (0xc0000199)
STATUS_ORDINAL_NOT_FOUND, #define STATUS_CONTROL_C_EXIT (0xc000019a)
STATUS_ENTRYPOINT_NOT_FOUND, #define STATUS_LOCAL_DISCONNECT (0xc000019b)
STATUS_CONTROL_C_EXIT, #define STATUS_REMOTE_DISCONNECT (0xc000019c)
STATUS_LOCAL_DISCONNECT, #define STATUS_REMOTE_RESOURCES (0xc000019d)
STATUS_REMOTE_DISCONNECT, #define STATUS_LINK_FAILED (0xc000019e)
STATUS_REMOTE_RESOURCES, #define STATUS_LINK_TIMEOUT (0xc000019f)
STATUS_LINK_FAILED, #define STATUS_INVALID_CONNECTION (0xc0000200)
STATUS_LINK_TIMEOUT, #define STATUS_INVALID_ADDRESS (0xc0000201)
STATUS_INVALID_CONNECTION, #define STATUS_DLL_INIT_FAILED (0xc0000202)
STATUS_INVALID_ADDRESS, #define STATUS_MISSING_SYSTEMFILE (0xc0000203)
STATUS_DLL_INIT_FAILED, #define STATUS_UNHANDLED_EXCEPTION (0xc0000204)
STATUS_MISSING_SYSTEMFILE, #define STATUS_APP_INIT_FAILURE (0xc0000205)
STATUS_UNHANDLED_EXCEPTION, #define STATUS_PAGEFILE_CREATE_FAILED (0xc0000206)
STATUS_APP_INIT_FAILURE, #define STATUS_NO_PAGEFILE (0xc0000207)
STATUS_PAGEFILE_CREATE_FAILED, #define STATUS_INVALID_LEVEL (0xc0000208)
STATUS_NO_PAGEFILE, #define STATUS_WRONG_PASSWORD_CORE (0xc0000209)
STATUS_INVALID_LEVEL, #define STATUS_ILLEGAL_FLOAT_CONTEXT (0xc000020a)
STATUS_WRONG_PASSWORD_CORE, #define STATUS_PIPE_BROKEN (0xc000020b)
STATUS_ILLEGAL_FLOAT_CONTEXT, #define STATUS_REGISTRY_CORRUPT (0xc000020c)
STATUS_PIPE_BROKEN, #define STATUS_REGISTRY_IO_FAILED (0xc000020d)
STATUS_REGISTRY_CORRUPT, #define STATUS_NO_EVENT_PAIR (0xc000020e)
STATUS_REGISTRY_IO_FAILED, #define STATUS_UNRECOGNIZED_VOLUME (0xc000020f)
STATUS_NO_EVENT_PAIR, #define STATUS_SERIAL_NO_DEVICE_INITED (0xc0000210)
STATUS_UNRECOGNIZED_VOLUME, #define STATUS_NO_SUCH_ALIAS (0xc0000211)
STATUS_SERIAL_NO_DEVICE_INITED, #define STATUS_MEMBER_NOT_IN_ALIAS (0xc0000212)
STATUS_NO_SUCH_ALIAS, #define STATUS_MEMBER_IN_ALIAS (0xc0000213)
STATUS_MEMBER_NOT_IN_ALIAS, #define STATUS_ALIAS_EXISTS (0xc0000214)
STATUS_MEMBER_IN_ALIAS, #define STATUS_LOGON_NOT_GRANTED (0xc0000215)
STATUS_ALIAS_EXISTS, #define STATUS_TOO_MANY_SECRETS (0xc0000216)
STATUS_LOGON_NOT_GRANTED, #define STATUS_SECRET_TOO_LONG (0xc0000217)
STATUS_TOO_MANY_SECRETS, #define STATUS_INTERNAL_DB_ERROR (0xc0000218)
STATUS_SECRET_TOO_LONG, #define STATUS_FULLSCREEN_MODE (0xc0000219)
STATUS_INTERNAL_DB_ERROR, #define STATUS_TOO_MANY_CONTEXT_IDS (0xc000021a)
STATUS_FULLSCREEN_MODE, #define STATUS_LOGON_TYPE_NOT_GRANTED (0xc000021b)
STATUS_TOO_MANY_CONTEXT_IDS, #define STATUS_NOT_REGISTRY_FILE (0xc000021c)
STATUS_LOGON_TYPE_NOT_GRANTED, #define STATUS_NT_CROSS_ENCRYPTION_REQUIRED (0xc000021d)
STATUS_NOT_REGISTRY_FILE, #define STATUS_DOMAIN_CTRLR_CONFIG_ERROR (0xc000021e)
STATUS_NT_CROSS_ENCRYPTION_REQUIRED, #define STATUS_FT_MISSING_MEMBER (0xc000021f)
STATUS_DOMAIN_CTRLR_CONFIG_ERROR, #define STATUS_ILL_FORMED_SERVICE_ENTRY (0xc0000220)
STATUS_FT_MISSING_MEMBER, #define STATUS_ILLEGAL_CHARACTER (0xc0000221)
STATUS_ILL_FORMED_SERVICE_ENTRY, #define STATUS_UNMAPPABLE_CHARACTER (0xc0000222)
STATUS_ILLEGAL_CHARACTER, #define STATUS_UNDEFINED_CHARACTER (0xc0000223)
STATUS_UNMAPPABLE_CHARACTER, #define STATUS_FLOPPY_VOLUME (0xc0000224)
STATUS_UNDEFINED_CHARACTER, #define STATUS_FLOPPY_ID_MARK_NOT_FOUND (0xc0000225)
STATUS_FLOPPY_VOLUME, #define STATUS_FLOPPY_WRONG_CYLINDER (0xc0000226)
STATUS_FLOPPY_ID_MARK_NOT_FOUND, #define STATUS_FLOPPY_UNKNOWN_ERROR (0xc0000227)
STATUS_FLOPPY_WRONG_CYLINDER, #define STATUS_FLOPPY_BAD_REGISTERS (0xc0000228)
STATUS_FLOPPY_UNKNOWN_ERROR, #define STATUS_DISK_RECALIBRATE_FAILED (0xc0000229)
STATUS_FLOPPY_BAD_REGISTERS, #define STATUS_DISK_OPERATION_FAILED (0xc000022a)
STATUS_DISK_RECALIBRATE_FAILED, #define STATUS_DISK_RESET_FAILED (0xc000022b)
STATUS_DISK_OPERATION_FAILED, #define STATUS_SHARED_IRQ_BUSY (0xc000022c)
STATUS_DISK_RESET_FAILED, #define STATUS_FT_ORPHANING (0xc000022d)
STATUS_SHARED_IRQ_BUSY, #define STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT (0xc000022e)
STATUS_FT_ORPHANING,
STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT,
};
#define STATUS_PARTITION_FAILURE (0xC0000172) #define STATUS_PARTITION_FAILURE (0xC000022f)
#define STATUS_INVALID_BLOCK_LENGTH (0xC0000173) #define STATUS_INVALID_BLOCK_LENGTH (0xC0000230)
#define STATUS_DEVICE_NOT_PARTITIONED (0xC0000174) #define STATUS_DEVICE_NOT_PARTITIONED (0xC0000231)
#define STATUS_UNABLE_TO_LOCK_MEDIA (0xC0000175) #define STATUS_UNABLE_TO_LOCK_MEDIA (0xC0000232)
#define STATUS_UNABLE_TO_UNLOAD_MEDIA (0xC0000176) #define STATUS_UNABLE_TO_UNLOAD_MEDIA (0xC0000233)
#define STATUS_EOM_OVERFLOW (0xC0000177) #define STATUS_EOM_OVERFLOW (0xC0000234)
#define STATUS_NO_MEDIA (0xC0000178) #define STATUS_NO_MEDIA (0xC0000235)
#define STATUS_NO_SUCH_MEMBER (0xC000017A) #define STATUS_NO_SUCH_MEMBER (0xC0000236)
#define STATUS_INVALID_MEMBER (0xC000017B) #define STATUS_INVALID_MEMBER (0xC0000237)
#define STATUS_KEY_DELETED (0xC000017C) #define STATUS_KEY_DELETED (0xC0000238)
#define STATUS_NO_LOG_SPACE (0xC000017D) #define STATUS_NO_LOG_SPACE (0xC0000239)
#define STATUS_TOO_MANY_SIDS (0xC000017E) #define STATUS_TOO_MANY_SIDS (0xC000023a)
#define STATUS_LM_CROSS_ENCRYPTION_REQUIRED (0xC000017F) #define STATUS_LM_CROSS_ENCRYPTION_REQUIRED (0xC000023b)
#define STATUS_KEY_HAS_CHILDREN (0xC0000180) #define STATUS_KEY_HAS_CHILDREN (0xC000023c)
#define STATUS_CHILD_MUST_BE_VOLATILE (0xC0000181) #define STATUS_CHILD_MUST_BE_VOLATILE (0xC000023d)
#define STATUS_DEVICE_CONFIGURATION_ERROR (0xC0000182) #define STATUS_DEVICE_CONFIGURATION_ERROR (0xC000023e)
#define STATUS_DRIVER_INTERNAL_ERROR (0xC0000183) #define STATUS_DRIVER_INTERNAL_ERROR (0xC000023f)
#define STATUS_INVALID_DEVICE_STATE (0xC0000184) #define STATUS_INVALID_DEVICE_STATE (0xC0000240)
#define STATUS_IO_DEVICE_ERROR (0xC0000185) #define STATUS_IO_DEVICE_ERROR (0xC0000241)
#define STATUS_DEVICE_PROTOCOL_ERROR (0xC0000186) #define STATUS_DEVICE_PROTOCOL_ERROR (0xC0000242)
#define STATUS_BACKUP_CONTROLLER (0xC0000187) #define STATUS_BACKUP_CONTROLLER (0xC0000243)
#define STATUS_LOG_FILE_FULL (0xC0000188) #define STATUS_LOG_FILE_FULL (0xC0000244)
#define STATUS_TOO_LATE (0xC0000189) #define STATUS_TOO_LATE (0xC0000245)
#define STATUS_NO_TRUST_LSA_SECRET (0xC000018A) #define STATUS_NO_TRUST_LSA_SECRET (0xC0000246)
#define STATUS_NO_TRUST_SAM_ACCOUNT (0xC000018B) #define STATUS_NO_TRUST_SAM_ACCOUNT (0xC0000247)
#define STATUS_TRUSTED_DOMAIN_FAILURE (0xC000018C) #define STATUS_TRUSTED_DOMAIN_FAILURE (0xC0000248)
#define STATUS_TRUSTED_RELATIONSHIP_FAILURE (0xC000018D) #define STATUS_TRUSTED_RELATIONSHIP_FAILURE (0xC0000249)
#define STATUS_EVENTLOG_FILE_CORRUPT (0xC000018E) #define STATUS_EVENTLOG_FILE_CORRUPT (0xC000024a)
#define STATUS_EVENTLOG_CANT_START (0xC000018F) #define STATUS_EVENTLOG_CANT_START (0xC000024b)
#define STATUS_TRUST_FAILURE (0xC0000190) #define STATUS_TRUST_FAILURE (0xC000024c)
#define STATUS_MUTANT_LIMIT_EXCEEDED (0xC0000191) #define STATUS_MUTANT_LIMIT_EXCEEDED (0xC000024d)
#define STATUS_NETLOGON_NOT_STARTED (0xC0000192) #define STATUS_NETLOGON_NOT_STARTED (0xC000024e)
#define STATUS_ACCOUNT_EXPIRED (0xC0000193) #define STATUS_ACCOUNT_EXPIRED (0xC000024f)
#define STATUS_POSSIBLE_DEADLOCK (0xC0000194) #define STATUS_POSSIBLE_DEADLOCK (0xC0000250)
#define STATUS_NETWORK_CREDENTIAL_CONFLICT (0xC0000195) #define STATUS_NETWORK_CREDENTIAL_CONFLICT (0xC0000251)
#define STATUS_REMOTE_SESSION_LIMIT (0xC0000196) #define STATUS_REMOTE_SESSION_LIMIT (0xC0000252)
#define STATUS_EVENTLOG_FILE_CHANGED (0xC0000197) #define STATUS_EVENTLOG_FILE_CHANGED (0xC0000253)
#define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT (0xC0000198) #define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT (0xC0000254)
#define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT (0xC0000199) #define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT (0xC0000255)
#define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT (0xC000019A) #define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT (0xC0000256)
#define STATUS_DOMAIN_TRUST_INCONSISTENT (0xC000019B) #define STATUS_DOMAIN_TRUST_INCONSISTENT (0xC0000257)
#define STATUS_FS_DRIVER_REQUIRED (0xC000019C) #define STATUS_FS_DRIVER_REQUIRED (0xC0000258)
#define STATUS_RESOURCE_LANG_NOT_FOUND (0xC0000259)
#define STATUS_FS_QUERY_REQUIRED (0xC1000001)
#define STATUS_HANDLE_NOT_WAITABLE (0xC1000002)
#define STATUS_OBJECT_FILE_MISMATCH (0xC1000003)
#define STATUS_INVALID_PARAMETER_MAX (0xC1000004)
#define STATUS_CONFLICTING_ADDRESS (0xC1000005)
#define STATUS_NO_MEDIA_IN_DRIVE (0xC1000006)
#define STATUS_RESOURCE_LANG_NOT_FOUND (0xC0000204)
enum enum
{ {
@ -582,15 +587,6 @@ enum
RPC_NT_SS_IN_NULL_CONTEXT=0xC0030004, RPC_NT_SS_IN_NULL_CONTEXT=0xC0030004,
/*
* Reactos codes
*/
STATUS_FS_QUERY_REQUIRED,
STATUS_HANDLE_NOT_WAITABLE,//FIXME
STATUS_OBJECT_FILE_MISMATCH,//FIXME
STATUS_INVALID_PARAMETER_MAX,//FIXME
STATUS_CONFLICTING_ADDRESS,//FIXME : ADDRESSES ?
STATUS_NO_MEDIA_IN_DRIVE,//FIXME : no_media or no_media_in_device ?
}; };
#endif /* __INCLUDE_DDK_STATUS_H */ #endif /* __INCLUDE_DDK_STATUS_H */

View file

@ -2,6 +2,7 @@ mkdir -p $1/reactos
mkdir -p $1/reactos/system32 mkdir -p $1/reactos/system32
mkdir -p $1/reactos/system32/drivers mkdir -p $1/reactos/system32/drivers
mkdir -p $1/reactos/bin mkdir -p $1/reactos/bin
cp loaders/dos/loadros.com $1
cp ntoskrnl/ntoskrnl.exe $1 cp ntoskrnl/ntoskrnl.exe $1
cp services/fs/vfat/vfatfs.sys $1 cp services/fs/vfat/vfatfs.sys $1
cp services/dd/ide/ide.sys $1 cp services/dd/ide/ide.sys $1
@ -25,3 +26,4 @@ cp apps/shm/shmclt.exe $1/reactos/bin
cp apps/lpc/lpcsrv.exe $1/reactos/bin cp apps/lpc/lpcsrv.exe $1/reactos/bin
cp apps/lpc/lpcclt.exe $1/reactos/bin cp apps/lpc/lpcclt.exe $1/reactos/bin
cp apps/thread/thread.exe $1/reactos/bin cp apps/thread/thread.exe $1/reactos/bin
cp apps/event/event.exe $1/reactos/bin

View file

@ -1,4 +1,4 @@
; $Id: ntdll.def,v 1.30 1999/12/18 10:16:11 ea Exp $ ; $Id: ntdll.def,v 1.31 1999/12/22 14:48:23 dwelch Exp $
; ;
; ReactOS Operating System ; ReactOS Operating System
; ;
@ -450,6 +450,8 @@ RtlCompareString@12
RtlCompareUnicodeString@12 RtlCompareUnicodeString@12
RtlConvertLongToLargeInteger@4 RtlConvertLongToLargeInteger@4
RtlConvertUlongToLargeInteger@4 RtlConvertUlongToLargeInteger@4
;RtlCopyMemory@12
RtlCopyMemory
RtlCopyString@8 RtlCopyString@8
RtlCopyUnicodeString@8 RtlCopyUnicodeString@8
RtlDeNormalizeProcessParams@4 RtlDeNormalizeProcessParams@4

View file

@ -1,4 +1,4 @@
; $Id: ntdll.edf,v 1.20 1999/12/18 10:16:11 ea Exp $ ; $Id: ntdll.edf,v 1.21 1999/12/22 14:48:23 dwelch Exp $
; ;
; ReactOS Operating System ; ReactOS Operating System
; ;
@ -594,3 +594,4 @@ LdrMapNTDllForProcess
LdrUnloadDll LdrUnloadDll
LdrAccessResource LdrAccessResource
LdrFindResource_U LdrFindResource_U
;RtlCopyMemory=RtlCopyMemory@12

View file

@ -41,6 +41,7 @@ NTSTATUS IopCreateFile(PVOID ObjectBody,
if (DeviceObject == NULL) if (DeviceObject == NULL)
{ {
DPRINT("DeviceObject was NULL\n");
return(STATUS_SUCCESS); return(STATUS_SUCCESS);
} }
@ -74,13 +75,18 @@ NTSTATUS IopCreateFile(PVOID ObjectBody,
if (DeviceObject->DeviceType != FILE_DEVICE_FILE_SYSTEM && if (DeviceObject->DeviceType != FILE_DEVICE_FILE_SYSTEM &&
DeviceObject->DeviceType != FILE_DEVICE_DISK) DeviceObject->DeviceType != FILE_DEVICE_DISK)
{ {
DPRINT("Device was wrong type\n");
return(STATUS_UNSUCCESSFUL); return(STATUS_UNSUCCESSFUL);
} }
if (!(DeviceObject->Vpb->Flags & VPB_MOUNTED)) if (!(DeviceObject->Vpb->Flags & VPB_MOUNTED))
{ {
DPRINT("Trying to mount storage device\n");
Status = IoTryToMountStorageDevice(DeviceObject); Status = IoTryToMountStorageDevice(DeviceObject);
if (Status!=STATUS_SUCCESS) DPRINT("Status %x\n", Status);
if (!NT_SUCCESS(Status))
{ {
DPRINT("Failed to mount storage device (statux %x)\n",
Status);
return(Status); return(Status);
} }
DeviceObject = IoGetAttachedDevice(DeviceObject); DeviceObject = IoGetAttachedDevice(DeviceObject);
@ -89,6 +95,7 @@ NTSTATUS IopCreateFile(PVOID ObjectBody,
} }
DPRINT("FileObject->FileName.Buffer %w\n",FileObject->FileName.Buffer); DPRINT("FileObject->FileName.Buffer %w\n",FileObject->FileName.Buffer);
FileObject->DeviceObject = DeviceObject; FileObject->DeviceObject = DeviceObject;
DPRINT("FileObject %x DeviceObject %x\n", FileObject, DeviceObject);
FileObject->Vpb = DeviceObject->Vpb; FileObject->Vpb = DeviceObject->Vpb;
FileObject->Type = InternalFileType; FileObject->Type = InternalFileType;
@ -204,6 +211,8 @@ NtCreateFile (
KeInitializeEvent(&Event, NotificationEvent, FALSE); KeInitializeEvent(&Event, NotificationEvent, FALSE);
DPRINT("FileObject %x\n", FileObject);
DPRINT("FileObject->DeviceObject %x\n", FileObject->DeviceObject);
Irp = IoAllocateIrp(FileObject->DeviceObject->StackSize, FALSE); Irp = IoAllocateIrp(FileObject->DeviceObject->StackSize, FALSE);
if (Irp==NULL) if (Irp==NULL)
{ {
@ -240,16 +249,12 @@ NtCreateFile (
} }
NTSTATUS NTSTATUS STDCALL NtOpenFile(PHANDLE FileHandle,
STDCALL ACCESS_MASK DesiredAccess,
NtOpenFile ( POBJECT_ATTRIBUTES ObjectAttributes,
PHANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock,
ACCESS_MASK DesiredAccess, ULONG ShareAccess,
POBJECT_ATTRIBUTES ObjectAttributes, ULONG OpenOptions)
PIO_STATUS_BLOCK IoStatusBlock,
ULONG ShareAccess,
ULONG OpenOptions
)
/* /*
* FUNCTION: Opens a file (simpler than ZwCreateFile) * FUNCTION: Opens a file (simpler than ZwCreateFile)
* ARGUMENTS: * ARGUMENTS:
@ -264,18 +269,17 @@ NtOpenFile (
* NOTE: Undocumented * NOTE: Undocumented
*/ */
{ {
return(ZwCreateFile( return(ZwCreateFile(FileHandle,
FileHandle, DesiredAccess,
DesiredAccess, ObjectAttributes,
ObjectAttributes, IoStatusBlock,
IoStatusBlock, NULL,
NULL, 0,
0, ShareAccess,
ShareAccess, FILE_OPEN,
FILE_OPEN, OpenOptions,
OpenOptions, NULL,
NULL, 0));
0));
} }

View file

@ -26,8 +26,8 @@ typedef struct
/* GLOBALS ******************************************************************/ /* GLOBALS ******************************************************************/
static KSPIN_LOCK FileSystemListLock = {0,}; static KSPIN_LOCK FileSystemListLock;
static LIST_ENTRY FileSystemListHead = {NULL,NULL}; static LIST_ENTRY FileSystemListHead;
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/

View file

@ -314,7 +314,7 @@ BOOLEAN KeDispatcherObjectWake(DISPATCHER_HEADER* hdr)
case InternalMutexType: case InternalMutexType:
return(KeDispatcherObjectWakeOne(hdr)); return(KeDispatcherObjectWakeOne(hdr));
} }
DPRINT("Dispatcher object %x has unknown type\n",hdr); DbgPrint("Dispatcher object %x has unknown type %d\n", hdr, hdr->Type);
KeBugCheck(0); KeBugCheck(0);
return(FALSE); return(FALSE);
} }

View file

@ -1,4 +1,4 @@
/* $Id: loader.c,v 1.40 1999/12/13 22:04:37 dwelch Exp $ /* $Id: loader.c,v 1.41 1999/12/22 14:48:24 dwelch Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -190,6 +190,7 @@ static VOID LdrLoadAutoConfigDriver (LPWSTR RelativeDriverName)
{ {
DbgPrint("driver load failed, status;%d(%x)\n", Status, Status); DbgPrint("driver load failed, status;%d(%x)\n", Status, Status);
DbgPrintErrorMessage(Status); DbgPrintErrorMessage(Status);
KeBugCheck(0);
} }
} }
@ -208,11 +209,11 @@ LdrLoadAutoConfigDrivers (VOID)
/* /*
* VideoPort driver * VideoPort driver
*/ */
LdrLoadAutoConfigDriver( L"vidport.sys" ); // LdrLoadAutoConfigDriver( L"vidport.sys" );
/* /*
* VGA Miniport driver * VGA Miniport driver
*/ */
LdrLoadAutoConfigDriver( L"vgamp.sys" ); // LdrLoadAutoConfigDriver( L"vgamp.sys" );
} }

View file

@ -95,8 +95,9 @@ NTSTATUS MmCopyMmInfo(PEPROCESS Src, PEPROCESS Dest)
{ {
PageDirectory[i] = CurrentPageDirectory[i]; PageDirectory[i] = CurrentPageDirectory[i];
} }
DPRINT("Addr %x\n",0xf0000000 / (4*1024*1024)); DPRINT("Addr %x\n",PAGETABLE_MAP / (4*1024*1024));
PageDirectory[0xf0000000 / (4*1024*1024)] = (ULONG)PhysPageDirectory | 0x7; PageDirectory[PAGETABLE_MAP / (4*1024*1024)] =
(ULONG)PhysPageDirectory | 0x7;
ExUnmapPage(PageDirectory); ExUnmapPage(PageDirectory);
@ -208,6 +209,7 @@ PULONG MmGetPageEntry(PVOID PAddress)
if ((*page_dir) == 0) if ((*page_dir) == 0)
{ {
(*page_dir) = ((ULONG)MmAllocPage()) | 0x7; (*page_dir) = ((ULONG)MmAllocPage()) | 0x7;
memset((PVOID)PAGE_ROUND_DOWN(ADDR_TO_PTE(Address)), 0, PAGESIZE);
FLUSH_TLB; FLUSH_TLB;
} }
page_tlb = ADDR_TO_PTE(Address); page_tlb = ADDR_TO_PTE(Address);
@ -229,7 +231,10 @@ VOID MmSetPage(PEPROCESS Process,
PEPROCESS CurrentProcess = PsGetCurrentProcess(); PEPROCESS CurrentProcess = PsGetCurrentProcess();
ULONG Attributes = 0; ULONG Attributes = 0;
if (PAGE_ROUND_DOWN(Address) == 0x77631000) if (PAGE_ROUND_DOWN(Address) == 0x77630000 ||
PAGE_ROUND_DOWN(Address) == 0x77631000 ||
PAGE_ROUND_DOWN(Address) == 0x77632000 ||
PAGE_ROUND_DOWN(Address) == 0x77633000)
{ {
DPRINT1("MmSetPage(Process %x, Address %x, flProtect %x, " DPRINT1("MmSetPage(Process %x, Address %x, flProtect %x, "
"PhysicalAddress %x)\n",Process,Address,flProtect, "PhysicalAddress %x)\n",Process,Address,flProtect,
@ -285,14 +290,14 @@ PHYSICAL_ADDRESS MmGetPhysicalAddress(PVOID vaddr)
* FUNCTION: Returns the physical address corresponding to a virtual address * FUNCTION: Returns the physical address corresponding to a virtual address
*/ */
{ {
PHYSICAL_ADDRESS p; PHYSICAL_ADDRESS p;
p.QuadPart = 0; p.QuadPart = 0;
DPRINT("MmGetPhysicalAddress(vaddr %x)\n", vaddr); DPRINT("MmGetPhysicalAddress(vaddr %x)\n", vaddr);
p.u.LowPart = PAGE_MASK(*MmGetPageEntry(vaddr)); p.u.LowPart = PAGE_MASK(*MmGetPageEntry(vaddr));
p.u.HighPart = 0; p.u.HighPart = 0;
return p; return p;
} }

View file

@ -1,4 +1,4 @@
/* $Id: section.c,v 1.19 1999/12/20 02:14:39 dwelch Exp $ /* $Id: section.c,v 1.20 1999/12/22 14:48:25 dwelch Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -220,6 +220,7 @@ NTSTATUS STDCALL NtCreateSection (OUT PHANDLE SectionHandle,
} }
DPRINT("NtCreateSection() = STATUS_SUCCESS\n"); DPRINT("NtCreateSection() = STATUS_SUCCESS\n");
ObDereferenceObject(Section);
return(STATUS_SUCCESS); return(STATUS_SUCCESS);
} }
@ -425,7 +426,6 @@ NTSTATUS STDCALL NtMapViewOfSection(HANDLE SectionHandle,
DPRINT("*BaseAddress %x\n",*BaseAddress); DPRINT("*BaseAddress %x\n",*BaseAddress);
ObDereferenceObject(Process); ObDereferenceObject(Process);
ObDereferenceObject(Section);
return(STATUS_SUCCESS); return(STATUS_SUCCESS);
} }
@ -440,6 +440,7 @@ NTSTATUS MmUnmapViewOfSection(PEPROCESS Process,
KeAcquireSpinLock(&Section->ViewListLock, &oldIrql); KeAcquireSpinLock(&Section->ViewListLock, &oldIrql);
RemoveEntryList(&MemoryArea->Data.SectionData.ViewListEntry); RemoveEntryList(&MemoryArea->Data.SectionData.ViewListEntry);
KeReleaseSpinLock(&Section->ViewListLock, oldIrql); KeReleaseSpinLock(&Section->ViewListLock, oldIrql);
ObDereferenceObject(Section);
return(STATUS_SUCCESS); return(STATUS_SUCCESS);
} }

View file

@ -1,5 +1,4 @@
/* $Id: handle.c,v 1.16 1999/12/22 14:48:25 dwelch Exp $
/* $Id: handle.c,v 1.15 1999/12/20 02:14:40 dwelch Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel

View file

@ -30,7 +30,15 @@ VOID ObInitializeObject(POBJECT_HEADER ObjectHeader,
ObjectHeader->HandleCount = 0; ObjectHeader->HandleCount = 0;
ObjectHeader->RefCount = 1; ObjectHeader->RefCount = 1;
ObjectHeader->ObjectType = Type; ObjectHeader->ObjectType = Type;
ObjectHeader->Permanent = FALSE; if (ObjectAttributes != NULL &&
ObjectAttributes->Attributes & OBJ_PERMANENT)
{
ObjectHeader->Permanent = TRUE;
}
else
{
ObjectHeader->Permanent = FALSE;
}
RtlInitUnicodeString(&(ObjectHeader->Name),NULL); RtlInitUnicodeString(&(ObjectHeader->Name),NULL);
if (Handle != NULL) if (Handle != NULL)
{ {

View file

@ -1,4 +1,4 @@
/* $Id: create.c,v 1.4 1999/12/20 02:14:40 dwelch Exp $ /* $Id: create.c,v 1.5 1999/12/22 14:48:26 dwelch Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -73,7 +73,7 @@ VOID PiDeleteThread(PVOID ObjectBody)
{ {
KIRQL oldIrql; KIRQL oldIrql;
DPRINT1("PiDeleteThread(ObjectBody %x)\n",ObjectBody); DPRINT("PiDeleteThread(ObjectBody %x)\n",ObjectBody);
KeAcquireSpinLock(&PiThreadListLock, &oldIrql); KeAcquireSpinLock(&PiThreadListLock, &oldIrql);
ObDereferenceObject(((PETHREAD)ObjectBody)->ThreadsProcess); ObDereferenceObject(((PETHREAD)ObjectBody)->ThreadsProcess);
@ -82,7 +82,7 @@ VOID PiDeleteThread(PVOID ObjectBody)
RemoveEntryList(&((PETHREAD)ObjectBody)->Tcb.ThreadListEntry); RemoveEntryList(&((PETHREAD)ObjectBody)->Tcb.ThreadListEntry);
HalReleaseTask((PETHREAD)ObjectBody); HalReleaseTask((PETHREAD)ObjectBody);
KeReleaseSpinLock(&PiThreadListLock, oldIrql); KeReleaseSpinLock(&PiThreadListLock, oldIrql);
DPRINT1("PiDeleteThread() finished\n"); DPRINT("PiDeleteThread() finished\n");
} }
VOID PiCloseThread(PVOID ObjectBody, ULONG HandleCount) VOID PiCloseThread(PVOID ObjectBody, ULONG HandleCount)

View file

@ -131,7 +131,7 @@ VOID PiDeleteProcess(PVOID ObjectBody)
{ {
KIRQL oldIrql; KIRQL oldIrql;
DPRINT1("PiDeleteProcess(ObjectBody %x)\n",ObjectBody); DPRINT("PiDeleteProcess(ObjectBody %x)\n",ObjectBody);
KeAcquireSpinLock(&PsProcessListLock, &oldIrql); KeAcquireSpinLock(&PsProcessListLock, &oldIrql);
RemoveEntryList(&((PEPROCESS)ObjectBody)->Pcb.ProcessListEntry); RemoveEntryList(&((PEPROCESS)ObjectBody)->Pcb.ProcessListEntry);

View file

@ -1,14 +1,50 @@
#include <ddk/ntddk.h> #include <ddk/ntddk.h>
DWORD #include <csrss/csrss.h>
CSR_CreateProcess (
PLPC_MESSAGE pLpcMessage
);
DWORD typedef struct
CSR_TerminateProcess( {
PLPC_MESSAGE pLpcMessage BOOL TopLevel;
); HANDLE ActiveEvent;
BYTE Screen[80*25*2];
ULONG ReferenceCount;
HANDLE LockMutant;
ULONG CurrentX;
ULONG CurrentY;
} CSRSS_CONSOLE, *PCSRSS_CONSOLE;
typedef struct
{
PCSRSS_CONSOLE Console;
} CSRSS_PROCESS_DATA, *PCSRSS_PROCESS_DATA;
/* EOF */ NTSTATUS CsrCreateProcess (PCSRSS_PROCESS_DATA ProcessData,
PCSRSS_API_REQUEST LpcMessage);
NTSTATUS CsrTerminateProcess(PCSRSS_PROCESS_DATA ProcessData,
PCSRSS_API_REQUEST LpcMessage);
NTSTATUS CsrWriteConsole(PCSRSS_PROCESS_DATA ProcessData,
PCSRSS_API_REQUEST LpcMessage,
PULONG CharCount);
NTSTATUS CsrAllocConsole(PCSRSS_PROCESS_DATA ProcessData,
PCSRSS_API_REQUEST LpcMessage,
PHANDLE ReturnedHandle);
NTSTATUS CsrFreeConsole(PCSRSS_PROCESS_DATA ProcessData,
PCSRSS_API_REQUEST LpcMessage);
NTSTATUS CsrReadConsole(PCSRSS_PROCESS_DATA ProcessData,
PCSRSS_API_REQUEST LpcMessage,
PULONG CharCount);
NTSTATUS CsrConnectProcess(PCSRSS_PROCESS_DATA ProcessData,
PCSRSS_API_REQUEST Request);
/* print.c */
VOID DisplayString(LPCWSTR lpwString);
VOID PrintString (char* fmt, ...);
/* api/wapi.c */
VOID Thread_Api(PVOID PortHandle);

View file

@ -0,0 +1,91 @@
/* $Id: conio.c,v 1.1 1999/12/22 14:48:30 dwelch Exp $
*
* reactos/subsys/csrss/api/conio.c
*
* Console I/O functions
*
* ReactOS Operating System
*/
/* INCLUDES ******************************************************************/
#include <ddk/ntddk.h>
#include "csrss.h"
#include "api.h"
/* GLOBALS *******************************************************************/
static HANDLE ConsoleDevice;
static HANDLE KeyboardDevice;
/* FUNCTIONS *****************************************************************/
NTSTATUS CsrWriteConsole(PCSRSS_CONIO_PROCESS ProcessData,
PCSRSS_REQUEST Message,
PULONG CharCount)
{
NTSTATUS Status;
if (ProcessData->Console == NULL)
{
return(STATUS_UNSUCCESSFUL);
}
Status = NtWaitForSingleObject(ProcessData->Console->LockMutant,
TRUE,
NULL);
if (!NT_SUCCESS(Status))
{
return(Status);
}
if (Status == STATUS_ALERTED ||
Status == STATUS_USER_APC)
{
return(Status);
}
if (TopLevel == TRUE)
{
Status = NtReleaseMutant(ProcessData->Console->LockMutant, NULL);
if (!NT_SUCCESS(Status))
{
return(Status);
}
return(Status);
}
else
{
Status = NtReleaseMutant(ProcessData->Console->LockMutant, NULL);
if (!NT_SUCCESS(Status))
{
return(Status);
}
return(Status);
}
}
PCSRSS_CONIO_PROCESS CsrAllocConioProcess(VOID)
{
PCSRSS_CONIO_PROCESS ProcessData;
ThreadData = RtlAllocHeap(NULL, HEAP_ZERO_MEMORY,
sizeof(PROCESS_CONIO_THREAD));
if (ThreadData == NULL)
{
return(NULL);
}
ProcessData->Console = NULL;
return(ProcessData);
}
VOID CsrFreeConioProcess(PCSRSS_CONIO_PROCESS ProcessData)
{
RtlFreeHeap(NULL, 0, ProcessData);
}
/* EOF */

View file

@ -1,4 +1,4 @@
/* $Id: process.c,v 1.2 1999/07/17 23:10:30 ea Exp $ /* $Id: process.c,v 1.3 1999/12/22 14:48:30 dwelch Exp $
* *
* reactos/subsys/csrss/api/process.c * reactos/subsys/csrss/api/process.c
* *
@ -6,25 +6,39 @@
* *
* ReactOS Operating System * ReactOS Operating System
*/ */
#define PROTO_LPC
/* INCLUDES ******************************************************************/
#include <ddk/ntddk.h> #include <ddk/ntddk.h>
#include <csrss/csrss.h>
DWORD #include "api.h"
CSR_CreateProcess (
PLPC_MESSAGE pLpcMessage /* FUNCTIONS *****************************************************************/
)
NTSTATUS CsrCreateProcess (PCSRSS_PROCESS_DATA ProcessData,
PCSRSS_API_REQUEST LpcMessage)
{ {
return LPC_ERROR_CALL_NOT_IMPLEMENTED; return(STATUS_NOT_IMPLEMENTED);
} }
NTSTATUS CsrTerminateProcess(PCSRSS_PROCESS_DATA ProcessData,
DWORD PCSRSS_API_REQUEST LpcMessage)
CSR_TerminateProcess(
PLPC_MESSAGE pLpcMessage
)
{ {
return LPC_ERROR_CALL_NOT_IMPLEMENTED; return(STATUS_NOT_IMPLEMENTED);
}
NTSTATUS CsrConnectProcess(CSRSS_PROCESS_DATA ProcessData,
PCSRSS_API_REQUEST Request)
{
HANDLE ConsoleHandle;
ConsoleHandle = ((PULONG)Request.MessageData)[0];
ProcessData.Console = CsrReferenceConsoleByHandle(ConsoleHandle);
return(STATUS_SUCCESS);
} }
/* EOF */ /* EOF */

View file

@ -0,0 +1,148 @@
/* $Id: wapi.c,v 1.1 1999/12/22 14:48:30 dwelch Exp $
*
* reactos/subsys/csrss/init.c
*
* Initialize the CSRSS subsystem server process.
*
* ReactOS Operating System
*
*/
/* INCLUDES ******************************************************************/
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#include <csrss/csrss.h>
#include "api.h"
/* FUNCTIONS *****************************************************************/
static void Thread_Api2(HANDLE ServerPort)
{
NTSTATUS Status;
PLPCMESSAGE LpcReply;
LPCMESSAGE LpcRequest;
PCSRSS_API_REQUEST Request;
CSRSS_API_REPLY Reply;
CSRSS_PROCESS_DATA ProcessData;
LpcReply = NULL;
for (;;)
{
Status = NtReplyWaitReceivePort(ServerPort,
0,
LpcReply,
&LpcRequest);
if (!NT_SUCCESS(Status))
{
DisplayString(L"NtReplyWaitReceivePort failed\n");
}
Request = (PCSRSS_API_REQUEST)LpcRequest.MessageData;
DisplayString(L"Received request\n");
switch (Request->Type)
{
case CSRSS_CREATE_PROCESS:
Reply.Status = CsrCreateProcess(&ProcessData, Request);
break;
case CSRSS_TERMINATE_PROCESS:
Reply.Status = CsrTerminateProcess(&ProcessData, Request);
break;
case CSRSS_WRITE_CONSOLE:
Reply.Status = CsrWriteConsole(&ProcessData, Request,
&Reply.Count);
break;
case CSRSS_READ_CONSOLE:
Reply.Status = CsrReadConsole(&ProcessData, Request,
&Reply.Count);
break;
case CSRSS_NEW_CONSOLE:
Reply.Status = CsrAllocConsole(&ProcessData, Request,
&Reply.Handle);
break;
case CSRSS_FREE_CONSOLE:
Reply.Status = CsrFreeConsole(&ProcessData, Request);
break;
case CSRSS_CONNECT_PROCESS:
Reply.Status = CsrConnectProcess(&ProcessData, Request);
default:
Reply.Status = STATUS_NOT_IMPLEMENTED;
}
LpcReply = &LpcRequest;
RtlCopyMemory(LpcReply->MessageData, &Reply, sizeof(Reply));
}
}
/**********************************************************************
* NAME
* Thread_Api
*
* DESCRIPTION
* Handle connection requests from clients to the port
* "\Windows\ApiPort".
*/
void Thread_Api(PVOID PortHandle)
{
NTSTATUS Status;
LPCMESSAGE Request;
HANDLE ServerPort;
for (;;)
{
Status = NtListenPort(PortHandle, &Request);
if (!NT_SUCCESS(Status))
{
DisplayString(L"NtListenPort() failed\n");
NtTerminateThread(NtCurrentThread(), Status);
}
Status = NtAcceptConnectPort(&ServerPort,
PortHandle,
NULL,
1,
0,
NULL);
if (!NT_SUCCESS(Status))
{
DisplayString(L"NtAcceptConnectPort() failed\n");
NtTerminateThread(NtCurrentThread(), Status);
}
Status = NtCompleteConnectPort(ServerPort);
if (!NT_SUCCESS(Status))
{
DisplayString(L"NtCompleteConnectPort() failed\n");
NtTerminateThread(NtCurrentThread(), Status);
}
Status = RtlCreateUserThread(NtCurrentProcess(),
NULL,
FALSE,
0,
NULL,
NULL,
(PTHREAD_START_ROUTINE)Thread_Api2,
ServerPort,
NULL,
NULL);
if (!NT_SUCCESS(Status))
{
DisplayString(L"Unable to create server thread\n");
NtClose(ServerPort);
NtTerminateThread(NtCurrentThread(), Status);
}
}
}

View file

@ -1,4 +1,4 @@
/* $Id: csrss.c,v 1.2 1999/07/17 23:10:30 ea Exp $ /* $Id: csrss.c,v 1.3 1999/12/22 14:48:29 dwelch Exp $
* *
* csrss.c - Client/Server Runtime subsystem * csrss.c - Client/Server Runtime subsystem
* *
@ -38,46 +38,42 @@ BOOL TerminationRequestPending = FALSE;
BOOL InitializeServer(void); BOOL InitializeServer(void);
void void DisplayString(LPCWSTR Message)
DisplayString(
LPCWSTR Message
)
{ {
UNICODE_STRING title; UNICODE_STRING title;
title.Buffer = (LPWSTR) Message; title.Buffer = (LPWSTR) Message;
title.Length = wcslen(title.Buffer) * sizeof (WCHAR); title.Length = wcslen(title.Buffer) * sizeof (WCHAR);
title.MaximumLength = title.Length + sizeof (WCHAR); title.MaximumLength = title.Length + sizeof (WCHAR);
NtDisplayString( & title ); NtDisplayString(&title);
} }
/* Native process' entry point */ /* Native process' entry point */
void VOID NtProcessStartup(PPEB Peb)
NtProcessStartup( PSTARTUP_ARGUMENT StartupArgument )
{ {
DisplayString( L"Client/Server Runtime Subsystem\n" ); DisplayString(L"Client/Server Runtime Subsystem\n");
if (TRUE == InitializeServer()) if (InitializeServer() == TRUE)
{ {
while (FALSE == TerminationRequestPending) while (FALSE == TerminationRequestPending)
{ {
/* Do nothing! Should it /* Do nothing! Should it
* be the SbApi port's * be the SbApi port's
* thread instead? * thread instead?
*/ */
NtYieldExecution(); NtYieldExecution();
} }
} }
else else
{ {
DisplayString( L"CSR: Subsystem initialization failed.\n" ); DisplayString( L"CSR: Subsystem initialization failed.\n" );
/* /*
* Tell SM we failed. * Tell SM we failed.
*/ */
} }
NtTerminateProcess( NtCurrentProcess(), 0 ); NtTerminateProcess( NtCurrentProcess(), 0 );
} }
/* EOF */ /* EOF */

View file

@ -1,4 +1,4 @@
/* $Id: init.c,v 1.2 1999/07/17 23:10:30 ea Exp $ /* $Id: init.c,v 1.3 1999/12/22 14:48:29 dwelch Exp $
* *
* reactos/subsys/csrss/init.c * reactos/subsys/csrss/init.c
* *
@ -7,83 +7,28 @@
* ReactOS Operating System * ReactOS Operating System
* *
*/ */
#define PROTO_LPC
/* INCLUDES ******************************************************************/
#include <ddk/ntddk.h> #include <ddk/ntddk.h>
#include "csrss.h" #include <ntdll/rtl.h>
#include <csrss/csrss.h>
#include "api.h"
void Thread_Api(void*); /* GLOBALS ******************************************************************/
void Thread_SbApi(void*);
/* /*
* Server's named ports. * Server's named ports.
*/ */
struct _SERVER_PORTS static HANDLE ApiPortHandle;
Server =
{
{INVALID_HANDLE_VALUE,Thread_Api},
{INVALID_HANDLE_VALUE,Thread_SbApi}
};
/**********************************************************************
* NAME
* Thread_Api
*
* DESCRIPTION
* Handle connection requests from clients to the port
* "\Windows\ApiPort".
*/
static
void
Thread_Api(void * pPort)
{
NTSTATUS Status;
HANDLE Port;
HANDLE ConnectedPort;
Port = * (HANDLE*) pPort; #if 0
static HANDLE SbApiPortHandle;
/* #endif
* Make the CSR API port listen.
*/
Status = NtListenPort(
Port,
CSRSS_API_PORT_QUEUE_SIZE
);
if (!NT_SUCCESS(Status))
{
/*
* FIXME: notify SM we could not
* make the port listen.
*/
return;
}
/*
* Wait for a client to connect
*/
while (TRUE)
{
/*
* Wait for a connection request;
* the new connected port's handle
* is stored in ConnectedPort.
*/
Status = NtAcceptConnectPort(
Port,
& ConnectedPort
);
if (NT_SUCCESS(Status))
{
if (NT_SUCCESS(NtCompleteConnectPort(ConnectedPort)))
{
/* dispatch call */
continue;
}
/* error */
}
}
}
#if 0
/********************************************************************** /**********************************************************************
* NAME * NAME
* Thread_SbApi * Thread_SbApi
@ -148,40 +93,51 @@ Thread_SbApi(void * pPort)
* RETURN VALUE * RETURN VALUE
* TRUE: Initialization OK; otherwise FALSE. * TRUE: Initialization OK; otherwise FALSE.
*/ */
BOOL BOOL InitializeServer(void)
InitializeServer(void)
{ {
NTSTATUS Status; NTSTATUS Status;
OBJECT_ATTRIBUTES ObAttributes; OBJECT_ATTRIBUTES ObAttributes;
UNICODE_STRING PortName;
/* NEW NAMED PORT: \ApiPort */
RtlInitUnicodeString(&PortName, L"\\ApiPort");
InitializeObjectAttributes(&ObAttributes,
&PortName,
0,
NULL,
NULL);
Status = NtCreatePort(&ApiPortHandle,
&ObAttributes,
260,
328,
0);
if (!NT_SUCCESS(Status))
{
DisplayString(L"Unable to create \\ApiPort (Status %x)\n");
return(FALSE);
}
/* NEW NAMED PORT: \ApiPort */ Status = RtlCreateUserThread(NtCurrentProcess(),
Status = NtCreatePort( NULL,
& Server.Api.Port, /* New port's handle */ FALSE,
& ObAttributes, /* Port object's attributes */ 0,
... NULL,
); NULL,
if (!NT_SUCCESS(Status)) (PTHREAD_START_ROUTINE)Thread_Api,
{ ApiPortHandle,
return FALSE; NULL,
} NULL);
Status = NtCreateThread( if (!NT_SUCCESS(Status))
& Server.Api.Thread, {
0, /* desired access */ DisplayString(L"Unable to create server thread\n");
& ObAttributes, /* object attributes */ NtClose(ApiPortHandle);
NtCurrentProcess(), /* process' handle */ return FALSE;
0, /* client id */ }
Thread_ApiPort,
(void*) & Server.Api.Port #if 0
); /* NEW NAMED PORT: \SbApiPort */
if (!NT_SUCCESS(Status)) Status = NtCreatePort(
{ &Server.SbApi.Port,
NtClose(Server.Api.Port);
return FALSE;
}
/* NEW NAMED PORT: \SbApiPort */
Status = NtCreatePort(
& Server.SbApi.Port,
& ObAttributes, & ObAttributes,
... ...
); );
@ -201,7 +157,9 @@ InitializeServer(void)
NtClose(Server.SbApi.Port); NtClose(Server.SbApi.Port);
return FALSE; return FALSE;
} }
return TRUE; #endif
return TRUE;
} }

View file

@ -1,4 +1,4 @@
# $Id: makefile,v 1.2 1999/08/29 13:45:07 dwelch Exp $ # $Id: makefile,v 1.3 1999/12/22 14:48:29 dwelch Exp $
# #
# CSRSS: Client/server runtime subsystem # CSRSS: Client/server runtime subsystem
# #
@ -6,13 +6,13 @@
# #
TARGET=csrss TARGET=csrss
BASE_CFLAGS = -I../../include BASE_CFLAGS = -I../../include -I.
OBJECTS_API = api/process.o OBJECTS_API = api/process.o api/wapi.o
OBJECTS_SBAPI = OBJECTS_SBAPI =
OBJECTS_MISC = $(TARGET).o init.o lpcstub.o $(TARGET).coff OBJECTS_MISC = $(TARGET).o init.o $(TARGET).coff
OBJECTS = $(OBJECTS_API) $(OBJECTS_SBAPI) $(OBJECTS_MISC) OBJECTS = $(OBJECTS_API) $(OBJECTS_SBAPI) $(OBJECTS_MISC)

View file

@ -0,0 +1,61 @@
/* $Id: print.c,v 1.1 1999/12/22 14:48:29 dwelch Exp $
*
* smss.c - Session Manager
*
* ReactOS Operating System
*
* --------------------------------------------------------------------
*
* This software is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING.LIB. If not, write
* to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
* MA 02139, USA.
*
* --------------------------------------------------------------------
*
* 19990529 (Emanuele Aliberti)
* Compiled successfully with egcs 1.1.2
*/
#include <ddk/ntddk.h>
#include "csrss.h"
VOID DisplayString(LPCWSTR lpwString)
{
UNICODE_STRING us;
RtlInitUnicodeString (&us, lpwString);
NtDisplayString (&us);
}
VOID PrintString (char* fmt,. ..)
{
char buffer[512];
va_list ap;
UNICODE_STRING UnicodeString;
ANSI_STRING AnsiString;
ULONG i;
va_start(ap, fmt);
vsprintf(buffer, fmt, ap);
va_end(ap);
RtlInitAnsiString (&AnsiString, buffer);
RtlAnsiStringToUnicodeString (&UnicodeString,
&AnsiString,
TRUE);
NtDisplayString(&UnicodeString);
RtlFreeUnicodeString (&UnicodeString);
}