mirror of
https://github.com/reactos/reactos.git
synced 2025-07-30 15:22:21 +00:00
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:
parent
1667a4589a
commit
dbd051cad4
29 changed files with 929 additions and 574 deletions
|
@ -5,9 +5,9 @@ mingw32 cross compiler running on unix.
|
|||
|
||||
2. Building
|
||||
|
||||
To build from Windows run 'make -fmakefile.dos'. To build from unix, edit
|
||||
rules.mak and change the PREFIX variable to the correct value for your
|
||||
cross-compiler, then run 'make'.
|
||||
To build from Windows run make. To build from unix, edit rules.mak and change
|
||||
the PREFIX variable to the correct value for your cross-compiler, then run
|
||||
'make'.
|
||||
|
||||
3. Installation
|
||||
|
||||
|
@ -17,9 +17,13 @@ structure like the following
|
|||
|
||||
make directories C:\reactos,C:\reactos\system,C:\reactos\system\drivers
|
||||
|
||||
Copy apps/shell/shell.exe to C:\reactos\system
|
||||
Copy services/dd/keyboard/keyboard.sys to C:\reactos\system\drivers
|
||||
Copy services/dd/blue/blue.sys to C:\reactos\system\drivers
|
||||
Copy apps/shell/shell.exe to C:\reactos\system32
|
||||
Copy subsys/smss/smss.exe to C:\reactos\system32
|
||||
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,
|
||||
services/dd/ide/ide.sys, services/fs/vfat/vfatfsd.sys and
|
||||
|
|
|
@ -41,7 +41,7 @@ FS_DRIVERS = vfat
|
|||
# FS_DRIVERS = minix ext2 template
|
||||
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
|
||||
|
||||
all: buildno $(COMPONENTS) $(DLLS) $(SUBSYS) $(LOADERS) $(KERNEL_SERVICES) $(APPS)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
0.0.14: Converted to PE format
|
||||
All system libraries are now dlls
|
||||
|
||||
|
||||
0.0.13: Mostly bugfixes (I think)
|
||||
|
||||
0.0.12: Added support for multiple processes (not really tested)
|
||||
|
|
|
@ -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
|
||||
* written by Rex Jolliff
|
||||
|
@ -1230,7 +1230,8 @@ DPRINT("AdjOffset:%ld:%ld + Length:%ld = AdjExtent:%ld:%ld\n",
|
|||
InsertKeyLI = RtlLargeIntegerShiftRight(IrpStack->Parameters.Read.ByteOffset, 9);
|
||||
IrpInsertKey = InsertKeyLI.u.LowPart;
|
||||
IoStartPacket(DeviceExtension->DeviceObject, Irp, &IrpInsertKey, NULL);
|
||||
|
||||
|
||||
DPRINT("Returning STATUS_PENDING\n");
|
||||
return STATUS_PENDING;
|
||||
}
|
||||
|
||||
|
|
|
@ -66,7 +66,9 @@ BOOLEAN VFATReadSectors(IN PDEVICE_OBJECT pDeviceObject,
|
|||
irp);
|
||||
|
||||
DPRINT("Waiting for IO Operation...\n");
|
||||
if (status == STATUS_PENDING) {
|
||||
if (status == STATUS_PENDING)
|
||||
{
|
||||
DPRINT("Operation pending\n");
|
||||
KeWaitForSingleObject(&event,
|
||||
Suspended,
|
||||
KernelMode,
|
||||
|
|
|
@ -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
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -49,7 +49,8 @@ BOOLEAN FsdHasFileSystem(PDEVICE_OBJECT DeviceToMount)
|
|||
Boot = ExAllocatePool(NonPagedPool,512);
|
||||
|
||||
VFATReadSectors(DeviceToMount, 0, 1, (UCHAR *)Boot);
|
||||
|
||||
|
||||
DPRINT("Boot->SysType %.5s\n", Boot->SysType);
|
||||
if (strncmp(Boot->SysType,"FAT12",5)==0 ||
|
||||
strncmp(Boot->SysType,"FAT16",5)==0 ||
|
||||
strncmp(((struct _BootSector32 *)(Boot))->SysType,"FAT32",5)==0)
|
||||
|
@ -174,6 +175,7 @@ NTSTATUS FsdFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
|||
|
||||
if (FsdHasFileSystem(DeviceToMount))
|
||||
{
|
||||
DPRINT("VFAT: Recognized volume\n");
|
||||
Status = FsdMount(DeviceToMount);
|
||||
}
|
||||
else
|
||||
|
@ -181,7 +183,6 @@ NTSTATUS FsdFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
|||
DPRINT("VFAT: Unrecognized Volume\n");
|
||||
Status = STATUS_UNRECOGNIZED_VOLUME;
|
||||
}
|
||||
DPRINT("VFAT File system successfully mounted\n");
|
||||
|
||||
Irp->IoStatus.Status = Status;
|
||||
Irp->IoStatus.Information = 0;
|
||||
|
|
25
reactos/include/csrss/csrss.h
Normal file
25
reactos/include/csrss/csrss.h
Normal 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
|
|
@ -203,349 +203,354 @@
|
|||
#define STATUS_SEMAPHORE_LIMIT_EXCEEDED (0xc0000047)
|
||||
#define STATUS_PORT_ALREADY_SET (0xc0000048)
|
||||
|
||||
enum
|
||||
{
|
||||
STATUS_SECTION_NOT_IMAGE,
|
||||
STATUS_SUSPEND_COUNT_EXCEEDED,
|
||||
STATUS_THREAD_IS_TERMINATING,
|
||||
STATUS_BAD_WORKING_SET_LIMIT,
|
||||
STATUS_INCOMPATIBLE_FILE_MAP,
|
||||
STATUS_SECTION_PROTECTION,
|
||||
STATUS_EAS_NOT_SUPPORTED,
|
||||
STATUS_EA_TOO_LARGE,
|
||||
STATUS_NONEXISTENT_EA_ENTRY,
|
||||
STATUS_NO_EAS_ON_FILE,
|
||||
STATUS_EA_CORRUPT_ERROR,
|
||||
STATUS_FILE_LOCK_CONFLICT,
|
||||
STATUS_LOCK_NOT_GRANTED,
|
||||
STATUS_DELETE_PENDING,
|
||||
STATUS_CTL_FILE_NOT_SUPPORTED,
|
||||
STATUS_UNKNOWN_REVISION,
|
||||
STATUS_REVISION_MISMATCH,
|
||||
STATUS_INVALID_OWNER,
|
||||
STATUS_INVALID_PRIMARY_GROUP,
|
||||
STATUS_NO_IMPERSONATION_TOKEN,
|
||||
STATUS_CANT_DISABLE_MANDATORY,
|
||||
STATUS_NO_LOGON_SERVERS,
|
||||
STATUS_NO_SUCH_LOGON_SESSION,
|
||||
STATUS_NO_SUCH_PRIVILEGE,
|
||||
STATUS_PRIVILEGE_NOT_HELD,
|
||||
STATUS_INVALID_ACCOUNT_NAME,
|
||||
STATUS_USER_EXISTS,
|
||||
STATUS_NO_SUCH_USER,
|
||||
STATUS_GROUP_EXISTS,
|
||||
STATUS_NO_SUCH_GROUP,
|
||||
STATUS_MEMBER_IN_GROUP,
|
||||
STATUS_MEMBER_NOT_IN_GROUP,
|
||||
STATUS_LAST_ADMIN,
|
||||
STATUS_WRONG_PASSWORD,
|
||||
STATUS_ILL_FORMED_PASSWORD,
|
||||
STATUS_PASSWORD_RESTRICTION,
|
||||
STATUS_LOGON_FAILURE,
|
||||
STATUS_ACCOUNT_RESTRICTION,
|
||||
STATUS_INVALID_LOGON_HOURS,
|
||||
STATUS_INVALID_WORKSTATION,
|
||||
STATUS_PASSWORD_EXPIRED,
|
||||
STATUS_ACCOUNT_DISABLED,
|
||||
STATUS_NONE_MAPPED,
|
||||
STATUS_TOO_MANY_LUIDS_REQUESTED,
|
||||
STATUS_LUIDS_EXHAUSTED,
|
||||
STATUS_INVALID_SUB_AUTHORITY,
|
||||
STATUS_INVALID_ACL,
|
||||
STATUS_INVALID_SID,
|
||||
STATUS_INVALID_SECURITY_DESCR,
|
||||
STATUS_PROCEDURE_NOT_FOUND,
|
||||
STATUS_INVALID_IMAGE_FORMAT,
|
||||
STATUS_NO_TOKEN,
|
||||
STATUS_BAD_INHERITANCE_ACL,
|
||||
STATUS_RANGE_NOT_LOCKED,
|
||||
STATUS_DISK_FULL,
|
||||
STATUS_SERVER_DISABLED,
|
||||
STATUS_SERVER_NOT_DISABLED,
|
||||
STATUS_TOO_MANY_GUIDS_REQUESTED,
|
||||
STATUS_GUIDS_EXHAUSTED,
|
||||
STATUS_INVALID_ID_AUTHORITY,
|
||||
STATUS_AGENTS_EXHAUSTED,
|
||||
STATUS_INVALID_VOLUME_LABEL,
|
||||
STATUS_SECTION_NOT_EXTENDED,
|
||||
STATUS_NOT_MAPPED_DATA,
|
||||
STATUS_RESOURCE_DATA_NOT_FOUND,
|
||||
STATUS_RESOURCE_TYPE_NOT_FOUND,
|
||||
STATUS_RESOURCE_NAME_NOT_FOUND,
|
||||
STATUS_ARRAY_BOUNDS_EXCEEDED,
|
||||
STATUS_FLOAT_DENORMAL_OPERAND,
|
||||
STATUS_FLOAT_DIVIDE_BY_ZERO,
|
||||
STATUS_FLOAT_INEXACT_RESULT,
|
||||
STATUS_FLOAT_INVALID_OPERATION,
|
||||
STATUS_FLOAT_OVERFLOW,
|
||||
STATUS_FLOAT_STACK_CHECK,
|
||||
STATUS_FLOAT_UNDERFLOW,
|
||||
STATUS_INTEGER_DIVIDE_BY_ZERO,
|
||||
STATUS_INTEGER_OVERFLOW,
|
||||
STATUS_PRIVILEGED_INSTRUCTION,
|
||||
STATUS_TOO_MANY_PAGING_FILES,
|
||||
STATUS_FILE_INVALID,
|
||||
STATUS_ALLOTTED_SPACE_EXCEEDED,
|
||||
STATUS_INSUFFICIENT_RESOURCES,
|
||||
STATUS_DFS_EXIT_PATH_FOUND,
|
||||
STATUS_DEVICE_DATA_ERROR,
|
||||
STATUS_DEVICE_NOT_CONNECTED,
|
||||
STATUS_DEVICE_POWER_FAILURE,
|
||||
STATUS_FREE_VM_NOT_AT_BASE,
|
||||
STATUS_MEMORY_NOT_ALLOCATED,
|
||||
STATUS_WORKING_SET_QUOTA,
|
||||
STATUS_MEDIA_WRITE_PROTECTED,
|
||||
STATUS_DEVICE_NOT_READY,
|
||||
STATUS_INVALID_GROUP_ATTRIBUTES,
|
||||
STATUS_BAD_IMPERSONATION_LEVEL,
|
||||
STATUS_CANT_OPEN_ANONYMOUS,
|
||||
STATUS_BAD_VALIDATION_CLASS,
|
||||
STATUS_BAD_TOKEN_TYPE,
|
||||
STATUS_BAD_MASTER_BOOT_RECORD,
|
||||
STATUS_INSTRUCTION_MISALIGNMENT,
|
||||
STATUS_INSTANCE_NOT_AVAILABLE,
|
||||
STATUS_PIPE_NOT_AVAILABLE,
|
||||
STATUS_INVALID_PIPE_STATE,
|
||||
STATUS_PIPE_BUSY,
|
||||
STATUS_ILLEGAL_FUNCTION,
|
||||
STATUS_PIPE_DISCONNECTED,
|
||||
STATUS_PIPE_CLOSING,
|
||||
STATUS_PIPE_CONNECTED,
|
||||
STATUS_PIPE_LISTENING,
|
||||
STATUS_INVALID_READ_MODE,
|
||||
STATUS_IO_TIMEOUT,
|
||||
STATUS_FILE_FORCED_CLOSED,
|
||||
STATUS_PROFILING_NOT_STARTED,
|
||||
STATUS_PROFILING_NOT_STOPPED,
|
||||
STATUS_COULD_NOT_INTERPRET,
|
||||
STATUS_FILE_IS_A_DIRECTORY,
|
||||
STATUS_NOT_SUPPORTED,
|
||||
STATUS_REMOTE_NOT_LISTENING,
|
||||
STATUS_DUPLICATE_NAME,
|
||||
STATUS_BAD_NETWORK_PATH,
|
||||
STATUS_NETWORK_BUSY,
|
||||
STATUS_DEVICE_DOES_NOT_EXIST,
|
||||
STATUS_TOO_MANY_COMMANDS,
|
||||
STATUS_ADAPTER_HARDWARE_ERROR,
|
||||
STATUS_INVALID_NETWORK_RESPONSE,
|
||||
STATUS_UNEXPECTED_NETWORK_ERROR,
|
||||
STATUS_BAD_REMOTE_ADAPTER,
|
||||
STATUS_PRINT_QUEUE_FULL,
|
||||
STATUS_NO_SPOOL_SPACE,
|
||||
STATUS_PRINT_CANCELLED,
|
||||
STATUS_NETWORK_NAME_DELETED,
|
||||
STATUS_NETWORK_ACCESS_DENIED,
|
||||
STATUS_BAD_DEVICE_TYPE,
|
||||
STATUS_BAD_NETWORK_NAME,
|
||||
STATUS_TOO_MANY_NAMES,
|
||||
STATUS_TOO_MANY_SESSIONS,
|
||||
STATUS_SHARING_PAUSED,
|
||||
STATUS_REQUEST_NOT_ACCEPTED,
|
||||
STATUS_REDIRECTOR_PAUSED,
|
||||
STATUS_NET_WRITE_FAULT,
|
||||
STATUS_PROFILING_AT_LIMIT,
|
||||
STATUS_NOT_SAME_DEVICE,
|
||||
STATUS_FILE_RENAMED,
|
||||
STATUS_VIRTUAL_CIRCUIT_CLOSED,
|
||||
STATUS_NO_SECURITY_ON_OBJECT,
|
||||
STATUS_CANT_WAIT,
|
||||
STATUS_PIPE_EMPTY,
|
||||
STATUS_CANT_ACCESS_DOMAIN_INFO,
|
||||
STATUS_CANT_TERMINATE_SELF,
|
||||
STATUS_INVALID_SERVER_STATE,
|
||||
STATUS_INVALID_DOMAIN_STATE,
|
||||
STATUS_INVALID_DOMAIN_ROLE,
|
||||
STATUS_NO_SUCH_DOMAIN,
|
||||
STATUS_DOMAIN_EXISTS,
|
||||
STATUS_DOMAIN_LIMIT_EXCEEDED,
|
||||
STATUS_OPLOCK_NOT_GRANTED,
|
||||
STATUS_INVALID_OPLOCK_PROTOCOL,
|
||||
STATUS_INTERNAL_DB_CORRUPTION,
|
||||
STATUS_INTERNAL_ERROR,
|
||||
STATUS_GENERIC_NOT_MAPPED,
|
||||
STATUS_BAD_DESCRIPTOR_FORMAT,
|
||||
STATUS_INVALID_USER_BUFFER,
|
||||
STATUS_UNEXPECTED_IO_ERROR,
|
||||
STATUS_UNEXPECTED_MM_CREATE_ERR,
|
||||
STATUS_UNEXPECTED_MM_MAP_ERROR,
|
||||
STATUS_UNEXPECTED_MM_EXTEND_ERR,
|
||||
STATUS_NOT_LOGON_PROCESS,
|
||||
STATUS_LOGON_SESSION_EXISTS,
|
||||
STATUS_INVALID_PARAMETER_1,
|
||||
STATUS_INVALID_PARAMETER_2,
|
||||
STATUS_INVALID_PARAMETER_3,
|
||||
STATUS_INVALID_PARAMETER_4,
|
||||
STATUS_INVALID_PARAMETER_5,
|
||||
STATUS_INVALID_PARAMETER_6,
|
||||
STATUS_INVALID_PARAMETER_7,
|
||||
STATUS_INVALID_PARAMETER_8,
|
||||
STATUS_INVALID_PARAMETER_9,
|
||||
STATUS_INVALID_PARAMETER_10,
|
||||
STATUS_INVALID_PARAMETER_11,
|
||||
STATUS_INVALID_PARAMETER_12,
|
||||
STATUS_REDIRECTOR_NOT_STARTED,
|
||||
STATUS_REDIRECTOR_STARTED,
|
||||
STATUS_STACK_OVERFLOW,
|
||||
STATUS_NO_SUCH_PACKAGE,
|
||||
STATUS_BAD_FUNCTION_TABLE,
|
||||
STATUS_VARIABLE_NOT_FOUND,
|
||||
STATUS_DIRECTORY_NOT_EMPTY,
|
||||
STATUS_FILE_CORRUPT_ERROR,
|
||||
STATUS_NOT_A_DIRECTORY,
|
||||
STATUS_BAD_LOGON_SESSION_STATE,
|
||||
STATUS_LOGON_SESSION_COLLISION,
|
||||
STATUS_NAME_TOO_LONG,
|
||||
STATUS_FILES_OPEN,
|
||||
STATUS_CONNECTION_IN_USE,
|
||||
STATUS_MESSAGE_NOT_FOUND,
|
||||
STATUS_PROCESS_IS_TERMINATING,
|
||||
STATUS_INVALID_LOGON_TYPE,
|
||||
STATUS_NO_GUID_TRANSLATION,
|
||||
STATUS_CANNOT_IMPERSONATE,
|
||||
STATUS_IMAGE_ALREADY_LOADED,
|
||||
STATUS_ABIOS_NOT_PRESENT,
|
||||
STATUS_ABIOS_LID_NOT_EXIST,
|
||||
STATUS_ABIOS_LID_ALREADY_OWNED,
|
||||
STATUS_ABIOS_NOT_LID_OWNER,
|
||||
STATUS_ABIOS_INVALID_COMMAND,
|
||||
STATUS_ABIOS_INVALID_LID,
|
||||
STATUS_ABIOS_SELECTOR_NOT_AVAILABLE,
|
||||
STATUS_ABIOS_INVALID_SELECTOR,
|
||||
STATUS_NO_LDT,
|
||||
STATUS_INVALID_LDT_SIZE,
|
||||
STATUS_INVALID_LDT_OFFSET,
|
||||
STATUS_INVALID_LDT_DESCRIPTOR,
|
||||
STATUS_INVALID_IMAGE_NE_FORMAT,
|
||||
STATUS_RXACT_INVALID_STATE,
|
||||
STATUS_RXACT_COMMIT_FAILURE,
|
||||
STATUS_MAPPED_FILE_SIZE_ZERO,
|
||||
STATUS_TOO_MANY_OPENED_FILES,
|
||||
STATUS_CANCELLED,
|
||||
STATUS_CANNOT_DELETE,
|
||||
STATUS_INVALID_COMPUTER_NAME,
|
||||
STATUS_FILE_DELETED,
|
||||
STATUS_SPECIAL_ACCOUNT,
|
||||
STATUS_SPECIAL_GROUP,
|
||||
STATUS_SPECIAL_USER,
|
||||
STATUS_MEMBERS_PRIMARY_GROUP,
|
||||
STATUS_FILE_CLOSED,
|
||||
STATUS_TOO_MANY_THREADS,
|
||||
STATUS_THREAD_NOT_IN_PROCESS,
|
||||
STATUS_TOKEN_ALREADY_IN_USE,
|
||||
STATUS_PAGEFILE_QUOTA_EXCEEDED,
|
||||
STATUS_COMMITMENT_LIMIT,
|
||||
STATUS_INVALID_IMAGE_LE_FORMAT,
|
||||
STATUS_INVALID_IMAGE_NOT_MZ,
|
||||
STATUS_INVALID_IMAGE_PROTECT,
|
||||
STATUS_INVALID_IMAGE_WIN_16,
|
||||
STATUS_LOGON_SERVER_CONFLICT,
|
||||
STATUS_TIME_DIFFERENCE_AT_DC,
|
||||
STATUS_SYNCHRONIZATION_REQUIRED,
|
||||
STATUS_DLL_NOT_FOUND,
|
||||
STATUS_OPEN_FAILED,
|
||||
STATUS_IO_PRIVILEGE_FAILED,
|
||||
STATUS_ORDINAL_NOT_FOUND,
|
||||
STATUS_ENTRYPOINT_NOT_FOUND,
|
||||
STATUS_CONTROL_C_EXIT,
|
||||
STATUS_LOCAL_DISCONNECT,
|
||||
STATUS_REMOTE_DISCONNECT,
|
||||
STATUS_REMOTE_RESOURCES,
|
||||
STATUS_LINK_FAILED,
|
||||
STATUS_LINK_TIMEOUT,
|
||||
STATUS_INVALID_CONNECTION,
|
||||
STATUS_INVALID_ADDRESS,
|
||||
STATUS_DLL_INIT_FAILED,
|
||||
STATUS_MISSING_SYSTEMFILE,
|
||||
STATUS_UNHANDLED_EXCEPTION,
|
||||
STATUS_APP_INIT_FAILURE,
|
||||
STATUS_PAGEFILE_CREATE_FAILED,
|
||||
STATUS_NO_PAGEFILE,
|
||||
STATUS_INVALID_LEVEL,
|
||||
STATUS_WRONG_PASSWORD_CORE,
|
||||
STATUS_ILLEGAL_FLOAT_CONTEXT,
|
||||
STATUS_PIPE_BROKEN,
|
||||
STATUS_REGISTRY_CORRUPT,
|
||||
STATUS_REGISTRY_IO_FAILED,
|
||||
STATUS_NO_EVENT_PAIR,
|
||||
STATUS_UNRECOGNIZED_VOLUME,
|
||||
STATUS_SERIAL_NO_DEVICE_INITED,
|
||||
STATUS_NO_SUCH_ALIAS,
|
||||
STATUS_MEMBER_NOT_IN_ALIAS,
|
||||
STATUS_MEMBER_IN_ALIAS,
|
||||
STATUS_ALIAS_EXISTS,
|
||||
STATUS_LOGON_NOT_GRANTED,
|
||||
STATUS_TOO_MANY_SECRETS,
|
||||
STATUS_SECRET_TOO_LONG,
|
||||
STATUS_INTERNAL_DB_ERROR,
|
||||
STATUS_FULLSCREEN_MODE,
|
||||
STATUS_TOO_MANY_CONTEXT_IDS,
|
||||
STATUS_LOGON_TYPE_NOT_GRANTED,
|
||||
STATUS_NOT_REGISTRY_FILE,
|
||||
STATUS_NT_CROSS_ENCRYPTION_REQUIRED,
|
||||
STATUS_DOMAIN_CTRLR_CONFIG_ERROR,
|
||||
STATUS_FT_MISSING_MEMBER,
|
||||
STATUS_ILL_FORMED_SERVICE_ENTRY,
|
||||
STATUS_ILLEGAL_CHARACTER,
|
||||
STATUS_UNMAPPABLE_CHARACTER,
|
||||
STATUS_UNDEFINED_CHARACTER,
|
||||
STATUS_FLOPPY_VOLUME,
|
||||
STATUS_FLOPPY_ID_MARK_NOT_FOUND,
|
||||
STATUS_FLOPPY_WRONG_CYLINDER,
|
||||
STATUS_FLOPPY_UNKNOWN_ERROR,
|
||||
STATUS_FLOPPY_BAD_REGISTERS,
|
||||
STATUS_DISK_RECALIBRATE_FAILED,
|
||||
STATUS_DISK_OPERATION_FAILED,
|
||||
STATUS_DISK_RESET_FAILED,
|
||||
STATUS_SHARED_IRQ_BUSY,
|
||||
STATUS_FT_ORPHANING,
|
||||
STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT,
|
||||
};
|
||||
#define STATUS_SECTION_NOT_IMAGE (0xc0000049)
|
||||
#define STATUS_SUSPEND_COUNT_EXCEEDED (0xc000004a)
|
||||
#define STATUS_THREAD_IS_TERMINATING (0xc000004b)
|
||||
#define STATUS_BAD_WORKING_SET_LIMIT (0xc000004c)
|
||||
#define STATUS_INCOMPATIBLE_FILE_MAP (0xc000004d)
|
||||
#define STATUS_SECTION_PROTECTION (0xc000004e)
|
||||
#define STATUS_EAS_NOT_SUPPORTED (0xc000004f)
|
||||
#define STATUS_EA_TOO_LARGE (0xc0000050)
|
||||
#define STATUS_NONEXISTENT_EA_ENTRY (0xc0000051)
|
||||
#define STATUS_NO_EAS_ON_FILE (0xc0000052)
|
||||
#define STATUS_EA_CORRUPT_ERROR (0xc0000053)
|
||||
#define STATUS_FILE_LOCK_CONFLICT (0xc0000054)
|
||||
#define STATUS_LOCK_NOT_GRANTED (0xc0000055)
|
||||
#define STATUS_DELETE_PENDING (0xc0000056)
|
||||
#define STATUS_CTL_FILE_NOT_SUPPORTED (0xc0000057)
|
||||
#define STATUS_UNKNOWN_REVISION (0xc0000058)
|
||||
#define STATUS_REVISION_MISMATCH (0xc0000059)
|
||||
#define STATUS_INVALID_OWNER (0xc000005a)
|
||||
#define STATUS_INVALID_PRIMARY_GROUP (0xc000005b)
|
||||
#define STATUS_NO_IMPERSONATION_TOKEN (0xc000005c)
|
||||
#define STATUS_CANT_DISABLE_MANDATORY (0xc000005d)
|
||||
#define STATUS_NO_LOGON_SERVERS (0xc000005e)
|
||||
#define STATUS_NO_SUCH_LOGON_SESSION (0xc000005f)
|
||||
#define STATUS_NO_SUCH_PRIVILEGE (0xc0000060)
|
||||
#define STATUS_PRIVILEGE_NOT_HELD (0xc0000061)
|
||||
#define STATUS_INVALID_ACCOUNT_NAME (0xc0000062)
|
||||
#define STATUS_USER_EXISTS (0xc0000063)
|
||||
#define STATUS_NO_SUCH_USER (0xc0000064)
|
||||
#define STATUS_GROUP_EXISTS (0xc0000065)
|
||||
#define STATUS_NO_SUCH_GROUP (0xc0000066)
|
||||
#define STATUS_MEMBER_IN_GROUP (0xc0000067)
|
||||
#define STATUS_MEMBER_NOT_IN_GROUP (0xc0000068)
|
||||
#define STATUS_LAST_ADMIN (0xc0000069)
|
||||
#define STATUS_WRONG_PASSWORD (0xc000006a)
|
||||
#define STATUS_ILL_FORMED_PASSWORD (0xc000006b)
|
||||
#define STATUS_PASSWORD_RESTRICTION (0xc000006c)
|
||||
#define STATUS_LOGON_FAILURE (0xc000006d)
|
||||
#define STATUS_ACCOUNT_RESTRICTION (0xc000006e)
|
||||
#define STATUS_INVALID_LOGON_HOURS (0xc000006f)
|
||||
#define STATUS_INVALID_WORKSTATION (0xc0000070)
|
||||
#define STATUS_PASSWORD_EXPIRED (0xc0000071)
|
||||
#define STATUS_ACCOUNT_DISABLED (0xc0000072)
|
||||
#define STATUS_NONE_MAPPED (0xc0000073)
|
||||
#define STATUS_TOO_MANY_LUIDS_REQUESTED (0xc0000074)
|
||||
#define STATUS_LUIDS_EXHAUSTED (0xc0000075)
|
||||
#define STATUS_INVALID_SUB_AUTHORITY (0xc0000076)
|
||||
#define STATUS_INVALID_ACL (0xc0000077)
|
||||
#define STATUS_INVALID_SID (0xc0000078)
|
||||
#define STATUS_INVALID_SECURITY_DESCR (0xc0000079)
|
||||
#define STATUS_PROCEDURE_NOT_FOUND (0xc000007a)
|
||||
#define STATUS_INVALID_IMAGE_FORMAT (0xc000007b)
|
||||
#define STATUS_NO_TOKEN (0xc000007c)
|
||||
#define STATUS_BAD_INHERITANCE_ACL (0xc000007d)
|
||||
#define STATUS_RANGE_NOT_LOCKED (0xc000007e)
|
||||
#define STATUS_DISK_FULL (0xc000007f)
|
||||
#define STATUS_SERVER_DISABLED (0xc0000080)
|
||||
#define STATUS_SERVER_NOT_DISABLED (0xc0000081)
|
||||
#define STATUS_TOO_MANY_GUIDS_REQUESTED (0xc0000082)
|
||||
#define STATUS_GUIDS_EXHAUSTED (0xc0000083)
|
||||
#define STATUS_INVALID_ID_AUTHORITY (0xc0000084)
|
||||
#define STATUS_AGENTS_EXHAUSTED (0xc0000085)
|
||||
#define STATUS_INVALID_VOLUME_LABEL (0xc0000086)
|
||||
#define STATUS_SECTION_NOT_EXTENDED (0xc0000087)
|
||||
#define STATUS_NOT_MAPPED_DATA (0xc0000088)
|
||||
#define STATUS_RESOURCE_DATA_NOT_FOUND (0xc0000089)
|
||||
#define STATUS_RESOURCE_TYPE_NOT_FOUND (0xc000008a)
|
||||
#define STATUS_RESOURCE_NAME_NOT_FOUND (0xc000008b)
|
||||
#define STATUS_ARRAY_BOUNDS_EXCEEDED (0xc000008c)
|
||||
#define STATUS_FLOAT_DENORMAL_OPERAND (0xc000008d)
|
||||
#define STATUS_FLOAT_DIVIDE_BY_ZERO (0xc000008e)
|
||||
#define STATUS_FLOAT_INEXACT_RESULT (0xc000008f)
|
||||
#define STATUS_FLOAT_INVALID_OPERATION (0xc0000090)
|
||||
#define STATUS_FLOAT_OVERFLOW (0xc0000091)
|
||||
#define STATUS_FLOAT_STACK_CHECK (0xc0000092)
|
||||
#define STATUS_FLOAT_UNDERFLOW (0xc0000093)
|
||||
#define STATUS_INTEGER_DIVIDE_BY_ZERO (0xc0000094)
|
||||
#define STATUS_INTEGER_OVERFLOW (0xc0000095)
|
||||
#define STATUS_PRIVILEGED_INSTRUCTION (0xc0000096)
|
||||
#define STATUS_TOO_MANY_PAGING_FILES (0xc0000097)
|
||||
#define STATUS_FILE_INVALID (0xc0000098)
|
||||
#define STATUS_ALLOTTED_SPACE_EXCEEDED (0xc0000099)
|
||||
#define STATUS_INSUFFICIENT_RESOURCES (0xc000009a)
|
||||
#define STATUS_DFS_EXIT_PATH_FOUND (0xc000009b)
|
||||
#define STATUS_DEVICE_DATA_ERROR (0xc000009c)
|
||||
#define STATUS_DEVICE_NOT_CONNECTED (0xc000009d)
|
||||
#define STATUS_DEVICE_POWER_FAILURE (0xc000009e)
|
||||
#define STATUS_FREE_VM_NOT_AT_BASE (0xc000009f)
|
||||
#define STATUS_MEMORY_NOT_ALLOCATED (0xc0000100)
|
||||
#define STATUS_WORKING_SET_QUOTA (0xc0000101)
|
||||
#define STATUS_MEDIA_WRITE_PROTECTED (0xc0000102)
|
||||
#define STATUS_DEVICE_NOT_READY (0xc0000103)
|
||||
#define STATUS_INVALID_GROUP_ATTRIBUTES (0xc0000104)
|
||||
#define STATUS_BAD_IMPERSONATION_LEVEL (0xc0000105)
|
||||
#define STATUS_CANT_OPEN_ANONYMOUS (0xc0000106)
|
||||
#define STATUS_BAD_VALIDATION_CLASS (0xc0000107)
|
||||
#define STATUS_BAD_TOKEN_TYPE (0xc0000108)
|
||||
#define STATUS_BAD_MASTER_BOOT_RECORD (0xc0000109)
|
||||
#define STATUS_INSTRUCTION_MISALIGNMENT (0xc000010a)
|
||||
#define STATUS_INSTANCE_NOT_AVAILABLE (0xc000010b)
|
||||
#define STATUS_PIPE_NOT_AVAILABLE (0xc000010c)
|
||||
#define STATUS_INVALID_PIPE_STATE (0xc000010d)
|
||||
#define STATUS_PIPE_BUSY (0xc000010e)
|
||||
#define STATUS_ILLEGAL_FUNCTION (0xc000010f)
|
||||
#define STATUS_PIPE_DISCONNECTED (0xc0000110)
|
||||
#define STATUS_PIPE_CLOSING (0xc0000111)
|
||||
#define STATUS_PIPE_CONNECTED (0xc0000112)
|
||||
#define STATUS_PIPE_LISTENING (0xc0000113)
|
||||
#define STATUS_INVALID_READ_MODE (0xc0000114)
|
||||
#define STATUS_IO_TIMEOUT (0xc0000115)
|
||||
#define STATUS_FILE_FORCED_CLOSED (0xc0000116)
|
||||
#define STATUS_PROFILING_NOT_STARTED (0xc0000117)
|
||||
#define STATUS_PROFILING_NOT_STOPPED (0xc0000118)
|
||||
#define STATUS_COULD_NOT_INTERPRET (0xc0000119)
|
||||
#define STATUS_FILE_IS_A_DIRECTORY (0xc000011a)
|
||||
#define STATUS_NOT_SUPPORTED (0xc000011b)
|
||||
#define STATUS_REMOTE_NOT_LISTENING (0xc000011c)
|
||||
#define STATUS_DUPLICATE_NAME (0xc000011d)
|
||||
#define STATUS_BAD_NETWORK_PATH (0xc000011e)
|
||||
#define STATUS_NETWORK_BUSY (0xc000011f)
|
||||
#define STATUS_DEVICE_DOES_NOT_EXIST (0xc0000120)
|
||||
#define STATUS_TOO_MANY_COMMANDS (0xc0000121)
|
||||
#define STATUS_ADAPTER_HARDWARE_ERROR (0xc0000122)
|
||||
#define STATUS_INVALID_NETWORK_RESPONSE (0xc0000123)
|
||||
#define STATUS_UNEXPECTED_NETWORK_ERROR (0xc0000124)
|
||||
#define STATUS_BAD_REMOTE_ADAPTER (0xc0000125)
|
||||
#define STATUS_PRINT_QUEUE_FULL (0xc0000126)
|
||||
#define STATUS_NO_SPOOL_SPACE (0xc0000127)
|
||||
#define STATUS_PRINT_CANCELLED (0xc0000128)
|
||||
#define STATUS_NETWORK_NAME_DELETED (0xc0000129)
|
||||
#define STATUS_NETWORK_ACCESS_DENIED (0xc000012a)
|
||||
#define STATUS_BAD_DEVICE_TYPE (0xc000012b)
|
||||
#define STATUS_BAD_NETWORK_NAME (0xc000012c)
|
||||
#define STATUS_TOO_MANY_NAMES (0xc000012d)
|
||||
#define STATUS_TOO_MANY_SESSIONS (0xc000012e)
|
||||
#define STATUS_SHARING_PAUSED (0xc000012f)
|
||||
#define STATUS_REQUEST_NOT_ACCEPTED (0xc0000130)
|
||||
#define STATUS_REDIRECTOR_PAUSED (0xc0000131)
|
||||
#define STATUS_NET_WRITE_FAULT (0xc0000132)
|
||||
#define STATUS_PROFILING_AT_LIMIT (0xc0000133)
|
||||
#define STATUS_NOT_SAME_DEVICE (0xc0000134)
|
||||
#define STATUS_FILE_RENAMED (0xc0000135)
|
||||
#define STATUS_VIRTUAL_CIRCUIT_CLOSED (0xc0000136)
|
||||
#define STATUS_NO_SECURITY_ON_OBJECT (0xc0000137)
|
||||
#define STATUS_CANT_WAIT (0xc0000138)
|
||||
#define STATUS_PIPE_EMPTY (0xc0000139)
|
||||
#define STATUS_CANT_ACCESS_DOMAIN_INFO (0xc000013a)
|
||||
#define STATUS_CANT_TERMINATE_SELF (0xc000013b)
|
||||
#define STATUS_INVALID_SERVER_STATE (0xc000013c)
|
||||
#define STATUS_INVALID_DOMAIN_STATE (0xc000013d)
|
||||
#define STATUS_INVALID_DOMAIN_ROLE (0xc000013e)
|
||||
#define STATUS_NO_SUCH_DOMAIN (0xc000013f)
|
||||
#define STATUS_DOMAIN_EXISTS (0xc0000140)
|
||||
#define STATUS_DOMAIN_LIMIT_EXCEEDED (0xc0000141)
|
||||
#define STATUS_OPLOCK_NOT_GRANTED (0xc0000142)
|
||||
#define STATUS_INVALID_OPLOCK_PROTOCOL (0xc0000143)
|
||||
#define STATUS_INTERNAL_DB_CORRUPTION (0xc0000144)
|
||||
#define STATUS_INTERNAL_ERROR (0xc0000145)
|
||||
#define STATUS_GENERIC_NOT_MAPPED (0xc0000146)
|
||||
#define STATUS_BAD_DESCRIPTOR_FORMAT (0xc0000147)
|
||||
#define STATUS_INVALID_USER_BUFFER (0xc0000148)
|
||||
#define STATUS_UNEXPECTED_IO_ERROR (0xc0000149)
|
||||
#define STATUS_UNEXPECTED_MM_CREATE_ERR (0xc000014a)
|
||||
#define STATUS_UNEXPECTED_MM_MAP_ERROR (0xc000014b)
|
||||
#define STATUS_UNEXPECTED_MM_EXTEND_ERR (0xc000014c)
|
||||
#define STATUS_NOT_LOGON_PROCESS (0xc000014d)
|
||||
#define STATUS_LOGON_SESSION_EXISTS (0xc000014e)
|
||||
#define STATUS_INVALID_PARAMETER_1 (0xc000014f)
|
||||
#define STATUS_INVALID_PARAMETER_2 (0xc0000150)
|
||||
#define STATUS_INVALID_PARAMETER_3 (0xc0000151)
|
||||
#define STATUS_INVALID_PARAMETER_4 (0xc0000152)
|
||||
#define STATUS_INVALID_PARAMETER_5 (0xc0000153)
|
||||
#define STATUS_INVALID_PARAMETER_6 (0xc0000154)
|
||||
#define STATUS_INVALID_PARAMETER_7 (0xc0000155)
|
||||
#define STATUS_INVALID_PARAMETER_8 (0xc0000156)
|
||||
#define STATUS_INVALID_PARAMETER_9 (0xc0000157)
|
||||
#define STATUS_INVALID_PARAMETER_10 (0xc0000158)
|
||||
#define STATUS_INVALID_PARAMETER_11 (0xc0000159)
|
||||
#define STATUS_INVALID_PARAMETER_12 (0xc000015a)
|
||||
#define STATUS_REDIRECTOR_NOT_STARTED (0xc000015b)
|
||||
#define STATUS_REDIRECTOR_STARTED (0xc000015c)
|
||||
#define STATUS_STACK_OVERFLOW (0xc000015d)
|
||||
#define STATUS_NO_SUCH_PACKAGE (0xc000015e)
|
||||
#define STATUS_BAD_FUNCTION_TABLE (0xc000015f)
|
||||
#define STATUS_VARIABLE_NOT_FOUND (0xc0000160)
|
||||
#define STATUS_DIRECTORY_NOT_EMPTY (0xc0000161)
|
||||
#define STATUS_FILE_CORRUPT_ERROR (0xc0000162)
|
||||
#define STATUS_NOT_A_DIRECTORY (0xc0000163)
|
||||
#define STATUS_BAD_LOGON_SESSION_STATE (0xc0000164)
|
||||
#define STATUS_LOGON_SESSION_COLLISION (0xc0000165)
|
||||
#define STATUS_NAME_TOO_LONG (0xc0000166)
|
||||
#define STATUS_FILES_OPEN (0xc0000167)
|
||||
#define STATUS_CONNECTION_IN_USE (0xc0000168)
|
||||
#define STATUS_MESSAGE_NOT_FOUND (0xc0000169)
|
||||
#define STATUS_PROCESS_IS_TERMINATING (0xc000016a)
|
||||
#define STATUS_INVALID_LOGON_TYPE (0xc000016b)
|
||||
#define STATUS_NO_GUID_TRANSLATION (0xc000016c)
|
||||
#define STATUS_CANNOT_IMPERSONATE (0xc000016d)
|
||||
#define STATUS_IMAGE_ALREADY_LOADED (0xc000016e)
|
||||
#define STATUS_ABIOS_NOT_PRESENT (0xc000016f)
|
||||
#define STATUS_ABIOS_LID_NOT_EXIST (0xc0000170)
|
||||
#define STATUS_ABIOS_LID_ALREADY_OWNED (0xc0000171)
|
||||
#define STATUS_ABIOS_NOT_LID_OWNER (0xc0000172)
|
||||
#define STATUS_ABIOS_INVALID_COMMAND (0xc0000173)
|
||||
#define STATUS_ABIOS_INVALID_LID (0xc0000174)
|
||||
#define STATUS_ABIOS_SELECTOR_NOT_AVAILABLE (0xc0000175)
|
||||
#define STATUS_ABIOS_INVALID_SELECTOR (0xc0000176)
|
||||
#define STATUS_NO_LDT (0xc0000177)
|
||||
#define STATUS_INVALID_LDT_SIZE (0xc0000178)
|
||||
#define STATUS_INVALID_LDT_OFFSET (0xc0000179)
|
||||
#define STATUS_INVALID_LDT_DESCRIPTOR (0xc000017a)
|
||||
#define STATUS_INVALID_IMAGE_NE_FORMAT (0xc000017b)
|
||||
#define STATUS_RXACT_INVALID_STATE (0xc000017c)
|
||||
#define STATUS_RXACT_COMMIT_FAILURE (0xc000017d)
|
||||
#define STATUS_MAPPED_FILE_SIZE_ZERO (0xc000017e)
|
||||
#define STATUS_TOO_MANY_OPENED_FILES (0xc000017f)
|
||||
#define STATUS_CANCELLED (0xc0000180)
|
||||
#define STATUS_CANNOT_DELETE (0xc0000181)
|
||||
#define STATUS_INVALID_COMPUTER_NAME (0xc0000182)
|
||||
#define STATUS_FILE_DELETED (0xc0000183)
|
||||
#define STATUS_SPECIAL_ACCOUNT (0xc0000184)
|
||||
#define STATUS_SPECIAL_GROUP (0xc0000185)
|
||||
#define STATUS_SPECIAL_USER (0xc0000186)
|
||||
#define STATUS_MEMBERS_PRIMARY_GROUP (0xc0000187)
|
||||
#define STATUS_FILE_CLOSED (0xc0000188)
|
||||
#define STATUS_TOO_MANY_THREADS (0xc0000189)
|
||||
#define STATUS_THREAD_NOT_IN_PROCESS (0xc000018a)
|
||||
#define STATUS_TOKEN_ALREADY_IN_USE (0xc000018b)
|
||||
#define STATUS_PAGEFILE_QUOTA_EXCEEDED (0xc000018c)
|
||||
#define STATUS_COMMITMENT_LIMIT (0xc000018d)
|
||||
#define STATUS_INVALID_IMAGE_LE_FORMAT (0xc000018e)
|
||||
#define STATUS_INVALID_IMAGE_NOT_MZ (0xc000018f)
|
||||
#define STATUS_INVALID_IMAGE_PROTECT (0xc0000190)
|
||||
#define STATUS_INVALID_IMAGE_WIN_16 (0xc0000191)
|
||||
#define STATUS_LOGON_SERVER_CONFLICT (0xc0000192)
|
||||
#define STATUS_TIME_DIFFERENCE_AT_DC (0xc0000193)
|
||||
#define STATUS_SYNCHRONIZATION_REQUIRED (0xc0000194)
|
||||
#define STATUS_DLL_NOT_FOUND (0xc0000195)
|
||||
#define STATUS_OPEN_FAILED (0xc0000196)
|
||||
#define STATUS_IO_PRIVILEGE_FAILED (0xc0000197)
|
||||
#define STATUS_ORDINAL_NOT_FOUND (0xc0000198)
|
||||
#define STATUS_ENTRYPOINT_NOT_FOUND (0xc0000199)
|
||||
#define STATUS_CONTROL_C_EXIT (0xc000019a)
|
||||
#define STATUS_LOCAL_DISCONNECT (0xc000019b)
|
||||
#define STATUS_REMOTE_DISCONNECT (0xc000019c)
|
||||
#define STATUS_REMOTE_RESOURCES (0xc000019d)
|
||||
#define STATUS_LINK_FAILED (0xc000019e)
|
||||
#define STATUS_LINK_TIMEOUT (0xc000019f)
|
||||
#define STATUS_INVALID_CONNECTION (0xc0000200)
|
||||
#define STATUS_INVALID_ADDRESS (0xc0000201)
|
||||
#define STATUS_DLL_INIT_FAILED (0xc0000202)
|
||||
#define STATUS_MISSING_SYSTEMFILE (0xc0000203)
|
||||
#define STATUS_UNHANDLED_EXCEPTION (0xc0000204)
|
||||
#define STATUS_APP_INIT_FAILURE (0xc0000205)
|
||||
#define STATUS_PAGEFILE_CREATE_FAILED (0xc0000206)
|
||||
#define STATUS_NO_PAGEFILE (0xc0000207)
|
||||
#define STATUS_INVALID_LEVEL (0xc0000208)
|
||||
#define STATUS_WRONG_PASSWORD_CORE (0xc0000209)
|
||||
#define STATUS_ILLEGAL_FLOAT_CONTEXT (0xc000020a)
|
||||
#define STATUS_PIPE_BROKEN (0xc000020b)
|
||||
#define STATUS_REGISTRY_CORRUPT (0xc000020c)
|
||||
#define STATUS_REGISTRY_IO_FAILED (0xc000020d)
|
||||
#define STATUS_NO_EVENT_PAIR (0xc000020e)
|
||||
#define STATUS_UNRECOGNIZED_VOLUME (0xc000020f)
|
||||
#define STATUS_SERIAL_NO_DEVICE_INITED (0xc0000210)
|
||||
#define STATUS_NO_SUCH_ALIAS (0xc0000211)
|
||||
#define STATUS_MEMBER_NOT_IN_ALIAS (0xc0000212)
|
||||
#define STATUS_MEMBER_IN_ALIAS (0xc0000213)
|
||||
#define STATUS_ALIAS_EXISTS (0xc0000214)
|
||||
#define STATUS_LOGON_NOT_GRANTED (0xc0000215)
|
||||
#define STATUS_TOO_MANY_SECRETS (0xc0000216)
|
||||
#define STATUS_SECRET_TOO_LONG (0xc0000217)
|
||||
#define STATUS_INTERNAL_DB_ERROR (0xc0000218)
|
||||
#define STATUS_FULLSCREEN_MODE (0xc0000219)
|
||||
#define STATUS_TOO_MANY_CONTEXT_IDS (0xc000021a)
|
||||
#define STATUS_LOGON_TYPE_NOT_GRANTED (0xc000021b)
|
||||
#define STATUS_NOT_REGISTRY_FILE (0xc000021c)
|
||||
#define STATUS_NT_CROSS_ENCRYPTION_REQUIRED (0xc000021d)
|
||||
#define STATUS_DOMAIN_CTRLR_CONFIG_ERROR (0xc000021e)
|
||||
#define STATUS_FT_MISSING_MEMBER (0xc000021f)
|
||||
#define STATUS_ILL_FORMED_SERVICE_ENTRY (0xc0000220)
|
||||
#define STATUS_ILLEGAL_CHARACTER (0xc0000221)
|
||||
#define STATUS_UNMAPPABLE_CHARACTER (0xc0000222)
|
||||
#define STATUS_UNDEFINED_CHARACTER (0xc0000223)
|
||||
#define STATUS_FLOPPY_VOLUME (0xc0000224)
|
||||
#define STATUS_FLOPPY_ID_MARK_NOT_FOUND (0xc0000225)
|
||||
#define STATUS_FLOPPY_WRONG_CYLINDER (0xc0000226)
|
||||
#define STATUS_FLOPPY_UNKNOWN_ERROR (0xc0000227)
|
||||
#define STATUS_FLOPPY_BAD_REGISTERS (0xc0000228)
|
||||
#define STATUS_DISK_RECALIBRATE_FAILED (0xc0000229)
|
||||
#define STATUS_DISK_OPERATION_FAILED (0xc000022a)
|
||||
#define STATUS_DISK_RESET_FAILED (0xc000022b)
|
||||
#define STATUS_SHARED_IRQ_BUSY (0xc000022c)
|
||||
#define STATUS_FT_ORPHANING (0xc000022d)
|
||||
#define STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT (0xc000022e)
|
||||
|
||||
#define STATUS_PARTITION_FAILURE (0xC0000172)
|
||||
#define STATUS_INVALID_BLOCK_LENGTH (0xC0000173)
|
||||
#define STATUS_DEVICE_NOT_PARTITIONED (0xC0000174)
|
||||
#define STATUS_UNABLE_TO_LOCK_MEDIA (0xC0000175)
|
||||
#define STATUS_UNABLE_TO_UNLOAD_MEDIA (0xC0000176)
|
||||
#define STATUS_EOM_OVERFLOW (0xC0000177)
|
||||
#define STATUS_NO_MEDIA (0xC0000178)
|
||||
#define STATUS_PARTITION_FAILURE (0xC000022f)
|
||||
#define STATUS_INVALID_BLOCK_LENGTH (0xC0000230)
|
||||
#define STATUS_DEVICE_NOT_PARTITIONED (0xC0000231)
|
||||
#define STATUS_UNABLE_TO_LOCK_MEDIA (0xC0000232)
|
||||
#define STATUS_UNABLE_TO_UNLOAD_MEDIA (0xC0000233)
|
||||
#define STATUS_EOM_OVERFLOW (0xC0000234)
|
||||
#define STATUS_NO_MEDIA (0xC0000235)
|
||||
|
||||
#define STATUS_NO_SUCH_MEMBER (0xC000017A)
|
||||
#define STATUS_INVALID_MEMBER (0xC000017B)
|
||||
#define STATUS_KEY_DELETED (0xC000017C)
|
||||
#define STATUS_NO_LOG_SPACE (0xC000017D)
|
||||
#define STATUS_TOO_MANY_SIDS (0xC000017E)
|
||||
#define STATUS_LM_CROSS_ENCRYPTION_REQUIRED (0xC000017F)
|
||||
#define STATUS_KEY_HAS_CHILDREN (0xC0000180)
|
||||
#define STATUS_CHILD_MUST_BE_VOLATILE (0xC0000181)
|
||||
#define STATUS_DEVICE_CONFIGURATION_ERROR (0xC0000182)
|
||||
#define STATUS_DRIVER_INTERNAL_ERROR (0xC0000183)
|
||||
#define STATUS_INVALID_DEVICE_STATE (0xC0000184)
|
||||
#define STATUS_IO_DEVICE_ERROR (0xC0000185)
|
||||
#define STATUS_DEVICE_PROTOCOL_ERROR (0xC0000186)
|
||||
#define STATUS_BACKUP_CONTROLLER (0xC0000187)
|
||||
#define STATUS_LOG_FILE_FULL (0xC0000188)
|
||||
#define STATUS_TOO_LATE (0xC0000189)
|
||||
#define STATUS_NO_TRUST_LSA_SECRET (0xC000018A)
|
||||
#define STATUS_NO_TRUST_SAM_ACCOUNT (0xC000018B)
|
||||
#define STATUS_TRUSTED_DOMAIN_FAILURE (0xC000018C)
|
||||
#define STATUS_TRUSTED_RELATIONSHIP_FAILURE (0xC000018D)
|
||||
#define STATUS_EVENTLOG_FILE_CORRUPT (0xC000018E)
|
||||
#define STATUS_EVENTLOG_CANT_START (0xC000018F)
|
||||
#define STATUS_TRUST_FAILURE (0xC0000190)
|
||||
#define STATUS_MUTANT_LIMIT_EXCEEDED (0xC0000191)
|
||||
#define STATUS_NETLOGON_NOT_STARTED (0xC0000192)
|
||||
#define STATUS_ACCOUNT_EXPIRED (0xC0000193)
|
||||
#define STATUS_POSSIBLE_DEADLOCK (0xC0000194)
|
||||
#define STATUS_NETWORK_CREDENTIAL_CONFLICT (0xC0000195)
|
||||
#define STATUS_REMOTE_SESSION_LIMIT (0xC0000196)
|
||||
#define STATUS_EVENTLOG_FILE_CHANGED (0xC0000197)
|
||||
#define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT (0xC0000198)
|
||||
#define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT (0xC0000199)
|
||||
#define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT (0xC000019A)
|
||||
#define STATUS_DOMAIN_TRUST_INCONSISTENT (0xC000019B)
|
||||
#define STATUS_FS_DRIVER_REQUIRED (0xC000019C)
|
||||
#define STATUS_NO_SUCH_MEMBER (0xC0000236)
|
||||
#define STATUS_INVALID_MEMBER (0xC0000237)
|
||||
#define STATUS_KEY_DELETED (0xC0000238)
|
||||
#define STATUS_NO_LOG_SPACE (0xC0000239)
|
||||
#define STATUS_TOO_MANY_SIDS (0xC000023a)
|
||||
#define STATUS_LM_CROSS_ENCRYPTION_REQUIRED (0xC000023b)
|
||||
#define STATUS_KEY_HAS_CHILDREN (0xC000023c)
|
||||
#define STATUS_CHILD_MUST_BE_VOLATILE (0xC000023d)
|
||||
#define STATUS_DEVICE_CONFIGURATION_ERROR (0xC000023e)
|
||||
#define STATUS_DRIVER_INTERNAL_ERROR (0xC000023f)
|
||||
#define STATUS_INVALID_DEVICE_STATE (0xC0000240)
|
||||
#define STATUS_IO_DEVICE_ERROR (0xC0000241)
|
||||
#define STATUS_DEVICE_PROTOCOL_ERROR (0xC0000242)
|
||||
#define STATUS_BACKUP_CONTROLLER (0xC0000243)
|
||||
#define STATUS_LOG_FILE_FULL (0xC0000244)
|
||||
#define STATUS_TOO_LATE (0xC0000245)
|
||||
#define STATUS_NO_TRUST_LSA_SECRET (0xC0000246)
|
||||
#define STATUS_NO_TRUST_SAM_ACCOUNT (0xC0000247)
|
||||
#define STATUS_TRUSTED_DOMAIN_FAILURE (0xC0000248)
|
||||
#define STATUS_TRUSTED_RELATIONSHIP_FAILURE (0xC0000249)
|
||||
#define STATUS_EVENTLOG_FILE_CORRUPT (0xC000024a)
|
||||
#define STATUS_EVENTLOG_CANT_START (0xC000024b)
|
||||
#define STATUS_TRUST_FAILURE (0xC000024c)
|
||||
#define STATUS_MUTANT_LIMIT_EXCEEDED (0xC000024d)
|
||||
#define STATUS_NETLOGON_NOT_STARTED (0xC000024e)
|
||||
#define STATUS_ACCOUNT_EXPIRED (0xC000024f)
|
||||
#define STATUS_POSSIBLE_DEADLOCK (0xC0000250)
|
||||
#define STATUS_NETWORK_CREDENTIAL_CONFLICT (0xC0000251)
|
||||
#define STATUS_REMOTE_SESSION_LIMIT (0xC0000252)
|
||||
#define STATUS_EVENTLOG_FILE_CHANGED (0xC0000253)
|
||||
#define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT (0xC0000254)
|
||||
#define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT (0xC0000255)
|
||||
#define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT (0xC0000256)
|
||||
#define STATUS_DOMAIN_TRUST_INCONSISTENT (0xC0000257)
|
||||
#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
|
||||
{
|
||||
|
@ -582,15 +587,6 @@ enum
|
|||
|
||||
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 */
|
||||
|
|
|
@ -2,6 +2,7 @@ mkdir -p $1/reactos
|
|||
mkdir -p $1/reactos/system32
|
||||
mkdir -p $1/reactos/system32/drivers
|
||||
mkdir -p $1/reactos/bin
|
||||
cp loaders/dos/loadros.com $1
|
||||
cp ntoskrnl/ntoskrnl.exe $1
|
||||
cp services/fs/vfat/vfatfs.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/lpcclt.exe $1/reactos/bin
|
||||
cp apps/thread/thread.exe $1/reactos/bin
|
||||
cp apps/event/event.exe $1/reactos/bin
|
||||
|
|
|
@ -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
|
||||
;
|
||||
|
@ -450,6 +450,8 @@ RtlCompareString@12
|
|||
RtlCompareUnicodeString@12
|
||||
RtlConvertLongToLargeInteger@4
|
||||
RtlConvertUlongToLargeInteger@4
|
||||
;RtlCopyMemory@12
|
||||
RtlCopyMemory
|
||||
RtlCopyString@8
|
||||
RtlCopyUnicodeString@8
|
||||
RtlDeNormalizeProcessParams@4
|
||||
|
|
|
@ -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
|
||||
;
|
||||
|
@ -594,3 +594,4 @@ LdrMapNTDllForProcess
|
|||
LdrUnloadDll
|
||||
LdrAccessResource
|
||||
LdrFindResource_U
|
||||
;RtlCopyMemory=RtlCopyMemory@12
|
||||
|
|
|
@ -41,6 +41,7 @@ NTSTATUS IopCreateFile(PVOID ObjectBody,
|
|||
|
||||
if (DeviceObject == NULL)
|
||||
{
|
||||
DPRINT("DeviceObject was NULL\n");
|
||||
return(STATUS_SUCCESS);
|
||||
}
|
||||
|
||||
|
@ -74,13 +75,18 @@ NTSTATUS IopCreateFile(PVOID ObjectBody,
|
|||
if (DeviceObject->DeviceType != FILE_DEVICE_FILE_SYSTEM &&
|
||||
DeviceObject->DeviceType != FILE_DEVICE_DISK)
|
||||
{
|
||||
DPRINT("Device was wrong type\n");
|
||||
return(STATUS_UNSUCCESSFUL);
|
||||
}
|
||||
if (!(DeviceObject->Vpb->Flags & VPB_MOUNTED))
|
||||
{
|
||||
DPRINT("Trying to mount storage device\n");
|
||||
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);
|
||||
}
|
||||
DeviceObject = IoGetAttachedDevice(DeviceObject);
|
||||
|
@ -89,6 +95,7 @@ NTSTATUS IopCreateFile(PVOID ObjectBody,
|
|||
}
|
||||
DPRINT("FileObject->FileName.Buffer %w\n",FileObject->FileName.Buffer);
|
||||
FileObject->DeviceObject = DeviceObject;
|
||||
DPRINT("FileObject %x DeviceObject %x\n", FileObject, DeviceObject);
|
||||
FileObject->Vpb = DeviceObject->Vpb;
|
||||
FileObject->Type = InternalFileType;
|
||||
|
||||
|
@ -204,6 +211,8 @@ NtCreateFile (
|
|||
|
||||
KeInitializeEvent(&Event, NotificationEvent, FALSE);
|
||||
|
||||
DPRINT("FileObject %x\n", FileObject);
|
||||
DPRINT("FileObject->DeviceObject %x\n", FileObject->DeviceObject);
|
||||
Irp = IoAllocateIrp(FileObject->DeviceObject->StackSize, FALSE);
|
||||
if (Irp==NULL)
|
||||
{
|
||||
|
@ -240,16 +249,12 @@ NtCreateFile (
|
|||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
NtOpenFile (
|
||||
PHANDLE FileHandle,
|
||||
ACCESS_MASK DesiredAccess,
|
||||
POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
PIO_STATUS_BLOCK IoStatusBlock,
|
||||
ULONG ShareAccess,
|
||||
ULONG OpenOptions
|
||||
)
|
||||
NTSTATUS STDCALL NtOpenFile(PHANDLE FileHandle,
|
||||
ACCESS_MASK DesiredAccess,
|
||||
POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
PIO_STATUS_BLOCK IoStatusBlock,
|
||||
ULONG ShareAccess,
|
||||
ULONG OpenOptions)
|
||||
/*
|
||||
* FUNCTION: Opens a file (simpler than ZwCreateFile)
|
||||
* ARGUMENTS:
|
||||
|
@ -264,18 +269,17 @@ NtOpenFile (
|
|||
* NOTE: Undocumented
|
||||
*/
|
||||
{
|
||||
return(ZwCreateFile(
|
||||
FileHandle,
|
||||
DesiredAccess,
|
||||
ObjectAttributes,
|
||||
IoStatusBlock,
|
||||
NULL,
|
||||
0,
|
||||
ShareAccess,
|
||||
FILE_OPEN,
|
||||
OpenOptions,
|
||||
NULL,
|
||||
0));
|
||||
return(ZwCreateFile(FileHandle,
|
||||
DesiredAccess,
|
||||
ObjectAttributes,
|
||||
IoStatusBlock,
|
||||
NULL,
|
||||
0,
|
||||
ShareAccess,
|
||||
FILE_OPEN,
|
||||
OpenOptions,
|
||||
NULL,
|
||||
0));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -26,8 +26,8 @@ typedef struct
|
|||
|
||||
/* GLOBALS ******************************************************************/
|
||||
|
||||
static KSPIN_LOCK FileSystemListLock = {0,};
|
||||
static LIST_ENTRY FileSystemListHead = {NULL,NULL};
|
||||
static KSPIN_LOCK FileSystemListLock;
|
||||
static LIST_ENTRY FileSystemListHead;
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
|
|
|
@ -314,7 +314,7 @@ BOOLEAN KeDispatcherObjectWake(DISPATCHER_HEADER* hdr)
|
|||
case InternalMutexType:
|
||||
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);
|
||||
return(FALSE);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -190,6 +190,7 @@ static VOID LdrLoadAutoConfigDriver (LPWSTR RelativeDriverName)
|
|||
{
|
||||
DbgPrint("driver load failed, status;%d(%x)\n", Status, Status);
|
||||
DbgPrintErrorMessage(Status);
|
||||
KeBugCheck(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -208,11 +209,11 @@ LdrLoadAutoConfigDrivers (VOID)
|
|||
/*
|
||||
* VideoPort driver
|
||||
*/
|
||||
LdrLoadAutoConfigDriver( L"vidport.sys" );
|
||||
// LdrLoadAutoConfigDriver( L"vidport.sys" );
|
||||
/*
|
||||
* VGA Miniport driver
|
||||
*/
|
||||
LdrLoadAutoConfigDriver( L"vgamp.sys" );
|
||||
// LdrLoadAutoConfigDriver( L"vgamp.sys" );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -95,8 +95,9 @@ NTSTATUS MmCopyMmInfo(PEPROCESS Src, PEPROCESS Dest)
|
|||
{
|
||||
PageDirectory[i] = CurrentPageDirectory[i];
|
||||
}
|
||||
DPRINT("Addr %x\n",0xf0000000 / (4*1024*1024));
|
||||
PageDirectory[0xf0000000 / (4*1024*1024)] = (ULONG)PhysPageDirectory | 0x7;
|
||||
DPRINT("Addr %x\n",PAGETABLE_MAP / (4*1024*1024));
|
||||
PageDirectory[PAGETABLE_MAP / (4*1024*1024)] =
|
||||
(ULONG)PhysPageDirectory | 0x7;
|
||||
|
||||
ExUnmapPage(PageDirectory);
|
||||
|
||||
|
@ -170,7 +171,7 @@ VOID MmDeletePageEntry(PEPROCESS Process, PVOID Address, BOOL FreePage)
|
|||
}
|
||||
return;
|
||||
}
|
||||
page_tlb = ADDR_TO_PTE(Address);
|
||||
page_tlb = ADDR_TO_PTE(Address);
|
||||
if (FreePage && PAGE_MASK(*page_tlb) != 0)
|
||||
{
|
||||
if (PAGE_MASK(*page_tlb) >= 0x400000)
|
||||
|
@ -208,6 +209,7 @@ PULONG MmGetPageEntry(PVOID PAddress)
|
|||
if ((*page_dir) == 0)
|
||||
{
|
||||
(*page_dir) = ((ULONG)MmAllocPage()) | 0x7;
|
||||
memset((PVOID)PAGE_ROUND_DOWN(ADDR_TO_PTE(Address)), 0, PAGESIZE);
|
||||
FLUSH_TLB;
|
||||
}
|
||||
page_tlb = ADDR_TO_PTE(Address);
|
||||
|
@ -229,7 +231,10 @@ VOID MmSetPage(PEPROCESS Process,
|
|||
PEPROCESS CurrentProcess = PsGetCurrentProcess();
|
||||
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, "
|
||||
"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
|
||||
*/
|
||||
{
|
||||
PHYSICAL_ADDRESS p;
|
||||
PHYSICAL_ADDRESS p;
|
||||
|
||||
p.QuadPart = 0;
|
||||
|
||||
DPRINT("MmGetPhysicalAddress(vaddr %x)\n", vaddr);
|
||||
p.QuadPart = 0;
|
||||
|
||||
p.u.LowPart = PAGE_MASK(*MmGetPageEntry(vaddr));
|
||||
p.u.HighPart = 0;
|
||||
DPRINT("MmGetPhysicalAddress(vaddr %x)\n", vaddr);
|
||||
|
||||
return p;
|
||||
p.u.LowPart = PAGE_MASK(*MmGetPageEntry(vaddr));
|
||||
p.u.HighPart = 0;
|
||||
|
||||
return p;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -218,8 +218,9 @@ NTSTATUS STDCALL NtCreateSection (OUT PHANDLE SectionHandle,
|
|||
{
|
||||
Section->FileObject = NULL;
|
||||
}
|
||||
|
||||
|
||||
DPRINT("NtCreateSection() = STATUS_SUCCESS\n");
|
||||
ObDereferenceObject(Section);
|
||||
return(STATUS_SUCCESS);
|
||||
}
|
||||
|
||||
|
@ -425,7 +426,6 @@ NTSTATUS STDCALL NtMapViewOfSection(HANDLE SectionHandle,
|
|||
|
||||
DPRINT("*BaseAddress %x\n",*BaseAddress);
|
||||
ObDereferenceObject(Process);
|
||||
ObDereferenceObject(Section);
|
||||
|
||||
return(STATUS_SUCCESS);
|
||||
}
|
||||
|
@ -440,6 +440,7 @@ NTSTATUS MmUnmapViewOfSection(PEPROCESS Process,
|
|||
KeAcquireSpinLock(&Section->ViewListLock, &oldIrql);
|
||||
RemoveEntryList(&MemoryArea->Data.SectionData.ViewListEntry);
|
||||
KeReleaseSpinLock(&Section->ViewListLock, oldIrql);
|
||||
ObDereferenceObject(Section);
|
||||
|
||||
return(STATUS_SUCCESS);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
|
||||
/* $Id: handle.c,v 1.15 1999/12/20 02:14:40 dwelch Exp $
|
||||
/* $Id: handle.c,v 1.16 1999/12/22 14:48:25 dwelch Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
|
|
@ -30,7 +30,15 @@ VOID ObInitializeObject(POBJECT_HEADER ObjectHeader,
|
|||
ObjectHeader->HandleCount = 0;
|
||||
ObjectHeader->RefCount = 1;
|
||||
ObjectHeader->ObjectType = Type;
|
||||
ObjectHeader->Permanent = FALSE;
|
||||
if (ObjectAttributes != NULL &&
|
||||
ObjectAttributes->Attributes & OBJ_PERMANENT)
|
||||
{
|
||||
ObjectHeader->Permanent = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
ObjectHeader->Permanent = FALSE;
|
||||
}
|
||||
RtlInitUnicodeString(&(ObjectHeader->Name),NULL);
|
||||
if (Handle != NULL)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -73,7 +73,7 @@ VOID PiDeleteThread(PVOID ObjectBody)
|
|||
{
|
||||
KIRQL oldIrql;
|
||||
|
||||
DPRINT1("PiDeleteThread(ObjectBody %x)\n",ObjectBody);
|
||||
DPRINT("PiDeleteThread(ObjectBody %x)\n",ObjectBody);
|
||||
|
||||
KeAcquireSpinLock(&PiThreadListLock, &oldIrql);
|
||||
ObDereferenceObject(((PETHREAD)ObjectBody)->ThreadsProcess);
|
||||
|
@ -82,7 +82,7 @@ VOID PiDeleteThread(PVOID ObjectBody)
|
|||
RemoveEntryList(&((PETHREAD)ObjectBody)->Tcb.ThreadListEntry);
|
||||
HalReleaseTask((PETHREAD)ObjectBody);
|
||||
KeReleaseSpinLock(&PiThreadListLock, oldIrql);
|
||||
DPRINT1("PiDeleteThread() finished\n");
|
||||
DPRINT("PiDeleteThread() finished\n");
|
||||
}
|
||||
|
||||
VOID PiCloseThread(PVOID ObjectBody, ULONG HandleCount)
|
||||
|
|
|
@ -131,7 +131,7 @@ VOID PiDeleteProcess(PVOID ObjectBody)
|
|||
{
|
||||
KIRQL oldIrql;
|
||||
|
||||
DPRINT1("PiDeleteProcess(ObjectBody %x)\n",ObjectBody);
|
||||
DPRINT("PiDeleteProcess(ObjectBody %x)\n",ObjectBody);
|
||||
|
||||
KeAcquireSpinLock(&PsProcessListLock, &oldIrql);
|
||||
RemoveEntryList(&((PEPROCESS)ObjectBody)->Pcb.ProcessListEntry);
|
||||
|
|
|
@ -1,14 +1,50 @@
|
|||
#include <ddk/ntddk.h>
|
||||
|
||||
DWORD
|
||||
CSR_CreateProcess (
|
||||
PLPC_MESSAGE pLpcMessage
|
||||
);
|
||||
#include <csrss/csrss.h>
|
||||
|
||||
DWORD
|
||||
CSR_TerminateProcess(
|
||||
PLPC_MESSAGE pLpcMessage
|
||||
);
|
||||
typedef struct
|
||||
{
|
||||
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);
|
||||
|
|
91
reactos/subsys/csrss/api/conio.c
Normal file
91
reactos/subsys/csrss/api/conio.c
Normal 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 */
|
|
@ -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
|
||||
*
|
||||
|
@ -6,25 +6,39 @@
|
|||
*
|
||||
* ReactOS Operating System
|
||||
*/
|
||||
#define PROTO_LPC
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
|
||||
#include <csrss/csrss.h>
|
||||
|
||||
DWORD
|
||||
CSR_CreateProcess (
|
||||
PLPC_MESSAGE pLpcMessage
|
||||
)
|
||||
#include "api.h"
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
NTSTATUS CsrCreateProcess (PCSRSS_PROCESS_DATA ProcessData,
|
||||
PCSRSS_API_REQUEST LpcMessage)
|
||||
{
|
||||
return LPC_ERROR_CALL_NOT_IMPLEMENTED;
|
||||
return(STATUS_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
|
||||
DWORD
|
||||
CSR_TerminateProcess(
|
||||
PLPC_MESSAGE pLpcMessage
|
||||
)
|
||||
NTSTATUS CsrTerminateProcess(PCSRSS_PROCESS_DATA ProcessData,
|
||||
PCSRSS_API_REQUEST LpcMessage)
|
||||
{
|
||||
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 */
|
||||
|
|
148
reactos/subsys/csrss/api/wapi.c
Normal file
148
reactos/subsys/csrss/api/wapi.c
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
*
|
||||
|
@ -38,46 +38,42 @@ BOOL TerminationRequestPending = FALSE;
|
|||
BOOL InitializeServer(void);
|
||||
|
||||
|
||||
void
|
||||
DisplayString(
|
||||
LPCWSTR Message
|
||||
)
|
||||
void DisplayString(LPCWSTR Message)
|
||||
{
|
||||
UNICODE_STRING title;
|
||||
UNICODE_STRING title;
|
||||
|
||||
title.Buffer = (LPWSTR) Message;
|
||||
title.Length = wcslen(title.Buffer) * sizeof (WCHAR);
|
||||
title.MaximumLength = title.Length + sizeof (WCHAR);
|
||||
NtDisplayString( & title );
|
||||
title.Buffer = (LPWSTR) Message;
|
||||
title.Length = wcslen(title.Buffer) * sizeof (WCHAR);
|
||||
title.MaximumLength = title.Length + sizeof (WCHAR);
|
||||
NtDisplayString(&title);
|
||||
}
|
||||
|
||||
|
||||
/* Native process' entry point */
|
||||
|
||||
void
|
||||
NtProcessStartup( PSTARTUP_ARGUMENT StartupArgument )
|
||||
VOID NtProcessStartup(PPEB Peb)
|
||||
{
|
||||
DisplayString( L"Client/Server Runtime Subsystem\n" );
|
||||
DisplayString(L"Client/Server Runtime Subsystem\n");
|
||||
|
||||
if (TRUE == InitializeServer())
|
||||
{
|
||||
while (FALSE == TerminationRequestPending)
|
||||
{
|
||||
/* Do nothing! Should it
|
||||
* be the SbApi port's
|
||||
* thread instead?
|
||||
*/
|
||||
NtYieldExecution();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DisplayString( L"CSR: Subsystem initialization failed.\n" );
|
||||
/*
|
||||
* Tell SM we failed.
|
||||
*/
|
||||
}
|
||||
NtTerminateProcess( NtCurrentProcess(), 0 );
|
||||
if (InitializeServer() == TRUE)
|
||||
{
|
||||
while (FALSE == TerminationRequestPending)
|
||||
{
|
||||
/* Do nothing! Should it
|
||||
* be the SbApi port's
|
||||
* thread instead?
|
||||
*/
|
||||
NtYieldExecution();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
DisplayString( L"CSR: Subsystem initialization failed.\n" );
|
||||
/*
|
||||
* Tell SM we failed.
|
||||
*/
|
||||
}
|
||||
NtTerminateProcess( NtCurrentProcess(), 0 );
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
@ -7,83 +7,28 @@
|
|||
* ReactOS Operating System
|
||||
*
|
||||
*/
|
||||
#define PROTO_LPC
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include "csrss.h"
|
||||
#include <ntdll/rtl.h>
|
||||
#include <csrss/csrss.h>
|
||||
|
||||
#include "api.h"
|
||||
|
||||
void Thread_Api(void*);
|
||||
void Thread_SbApi(void*);
|
||||
/* GLOBALS ******************************************************************/
|
||||
|
||||
/*
|
||||
* Server's named ports.
|
||||
*/
|
||||
struct _SERVER_PORTS
|
||||
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;
|
||||
static HANDLE ApiPortHandle;
|
||||
|
||||
Port = * (HANDLE*) pPort;
|
||||
|
||||
/*
|
||||
* 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
|
||||
static HANDLE SbApiPortHandle;
|
||||
#endif
|
||||
|
||||
|
||||
#if 0
|
||||
/**********************************************************************
|
||||
* NAME
|
||||
* Thread_SbApi
|
||||
|
@ -148,40 +93,51 @@ Thread_SbApi(void * pPort)
|
|||
* RETURN VALUE
|
||||
* TRUE: Initialization OK; otherwise FALSE.
|
||||
*/
|
||||
BOOL
|
||||
InitializeServer(void)
|
||||
BOOL InitializeServer(void)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
OBJECT_ATTRIBUTES ObAttributes;
|
||||
|
||||
NTSTATUS Status;
|
||||
OBJECT_ATTRIBUTES ObAttributes;
|
||||
UNICODE_STRING PortName;
|
||||
|
||||
/* NEW NAMED PORT: \ApiPort */
|
||||
Status = NtCreatePort(
|
||||
& Server.Api.Port, /* New port's handle */
|
||||
& ObAttributes, /* Port object's attributes */
|
||||
...
|
||||
);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
Status = NtCreateThread(
|
||||
& Server.Api.Thread,
|
||||
0, /* desired access */
|
||||
& ObAttributes, /* object attributes */
|
||||
NtCurrentProcess(), /* process' handle */
|
||||
0, /* client id */
|
||||
Thread_ApiPort,
|
||||
(void*) & Server.Api.Port
|
||||
);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
NtClose(Server.Api.Port);
|
||||
return FALSE;
|
||||
}
|
||||
/* NEW NAMED PORT: \SbApiPort */
|
||||
Status = NtCreatePort(
|
||||
& Server.SbApi.Port,
|
||||
/* 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);
|
||||
}
|
||||
|
||||
Status = RtlCreateUserThread(NtCurrentProcess(),
|
||||
NULL,
|
||||
FALSE,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
(PTHREAD_START_ROUTINE)Thread_Api,
|
||||
ApiPortHandle,
|
||||
NULL,
|
||||
NULL);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DisplayString(L"Unable to create server thread\n");
|
||||
NtClose(ApiPortHandle);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* NEW NAMED PORT: \SbApiPort */
|
||||
Status = NtCreatePort(
|
||||
&Server.SbApi.Port,
|
||||
& ObAttributes,
|
||||
...
|
||||
);
|
||||
|
@ -201,7 +157,9 @@ InitializeServer(void)
|
|||
NtClose(Server.SbApi.Port);
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
#
|
||||
|
@ -6,13 +6,13 @@
|
|||
#
|
||||
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_MISC = $(TARGET).o init.o lpcstub.o $(TARGET).coff
|
||||
OBJECTS_MISC = $(TARGET).o init.o $(TARGET).coff
|
||||
|
||||
OBJECTS = $(OBJECTS_API) $(OBJECTS_SBAPI) $(OBJECTS_MISC)
|
||||
|
||||
|
|
61
reactos/subsys/csrss/print.c
Normal file
61
reactos/subsys/csrss/print.c
Normal 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);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue