Commit graph

260 commits

Author SHA1 Message Date
KJK::Hyperion 4761e1228c New branch "KJKHyperion-ntoskrnl-fixnotifs" for some yet untested changes (fixes) to the calling of thread/process creation/termination notification routines. Should be short-lived - will fold into the main trunk ASAP
svn path=/branches/unlabeled-1.67.12/; revision=7092
2003-12-17 01:32:47 +00:00
The ReactOS Team c457cfff93 This commit was manufactured by cvs2svn to create branch
'unlabeled-1.67.12'.

svn path=/branches/unlabeled-1.67.12/; revision=6141
2003-09-25 20:09:56 +00:00
Eric Kohl 895c98c856 Replaced ObRosCreateObject() by ObCreateObject() and ObInsertObject().
Fixed ObCreateObject() and ObInsertObject().

svn path=/trunk/; revision=6140
2003-09-25 20:09:56 +00:00
Aleksey Bragin e125705217 Patch by Mike Nordell: Change UserMode to KeGetCurrentProcess()->PreviousMode in calls to ObReferenceObjectByHandle() in file ps/kill.c
svn path=/trunk/; revision=6093
2003-09-18 17:55:21 +00:00
Hartmut Birr 9604dab6c5 - Use KeSetBasePriorityThread for changing the thread priority in NtSetInformationThread.
svn path=/trunk/; revision=6078
2003-09-14 10:53:32 +00:00
Hartmut Birr 6f4149e361 - Reference all returned process objects (in PsGetNextProcess).
- Do not fail if a process is deleted (in PsGetNextProcess).
- Change the direction of the returned process (in PsGetNextProcess).
- Check if a process is deleted in NtOpenProcess.

svn path=/trunk/; revision=6077
2003-09-14 10:52:33 +00:00
Hartmut Birr 24203ec76e - Moved the call to ExpSwapThreadEventPair from PiDeleteThread to PsTerminateCurrentThread.
svn path=/trunk/; revision=6076
2003-09-14 10:50:29 +00:00
Vizzini 413af2c984 patch by Skywing: made existing eventpair code more efficient and added support for associating eventpairs with
threads and signaling them that way

svn path=/trunk/; revision=6031
2003-09-10 06:12:22 +00:00
Emanuele Aliberti bd5999bd1a NTOSKRNL PS: NtOpenThread implemented.
svn path=/trunk/; revision=5704
2003-08-20 15:02:53 +00:00
David Welch f2d9fe4842 - Patch from PM implementing ldt and tss iobitmap support.
svn path=/trunk/; revision=5685
2003-08-19 23:59:08 +00:00
Hartmut Birr 3c9f26a7a0 - Remove all wait objects from a thread which would be deleted.
- Release the thread list lock after the real context switch
  (some code was moved from thread.c to tskswitch.S).
- Check for the state of a thread which is blocked or unblocked,
  because it is possible that there was a second thread switching.
- Fixed KeSetBasePriorityThread.
- Check for a necessary task switch after changing the thread priority in KeSetPriorityThread.

svn path=/trunk/; revision=5644
2003-08-18 11:52:31 +00:00
Hartmut Birr 14aa056fe0 - Remove all wait objects from a thread which would be deleted.
- Release the thread list lock after the real context switch
  (some code was moved from thread.c to tskswitch.S).
- Check for the state of a thread which is blocked or unblocked,
  because it is possible that there was a second thread switching.
- Fixed KeSetBasePriorityThread.
- Check for a necessary task switch after changing the thread priority in KeSetPriorityThread.

svn path=/trunk/; revision=5642
2003-08-18 11:23:32 +00:00
Hartmut Birr a11c2e5606 - Delete a process environment in the context of a worker thread
if the caller does not run in the same process which would
  be deleted and if KeAttachProcess was already called.

svn path=/trunk/; revision=5639
2003-08-18 10:20:57 +00:00
Eric Kohl 34572eba83 Reverted my logic changes to Mike Nordell's patch.
svn path=/trunk/; revision=5511
2003-08-10 20:33:05 +00:00
Eric Kohl c6f66985bf Additions and fix to NtQueryInformationProcess.
Patch by Mike Nordell.

svn path=/trunk/; revision=5418
2003-08-04 20:44:54 +00:00
David Welch 6e6bff4228 - Don't allocate/free a new callback on each callback to user mode.
svn path=/trunk/; revision=5230
2003-07-23 19:13:37 +00:00
Royce Mitchell III 2a438cfb48 created KEBUGCHECK, KEBUGCHECKEX, KEBUGCHECKWITHTS macros to report file/line of bugcheck. replace all direct calls of KeBugCheck, KeBugCheckEx and KeBugCheckWithTs with corresponding macros. I rebuilt from a make clean and it looks good.
svn path=/trunk/; revision=5213
2003-07-21 21:53:53 +00:00
David Welch a3cf0cbc62 Checked in Petr Matousek's fixes for sending APCs to terminated threads.
svn path=/trunk/; revision=5210
2003-07-21 21:36:01 +00:00
Andrew Greenwood e6d0d671b8 Win 32 API header compatibility update
Files that should now compile with Win 32 API headers:
* sysinfo.c
* time.c
* work.c
* zone.c

If you suddenly discover that something no longer works due to a missing struct member, it's probably because I've renamed it to match the Win 32 API headers.

svn path=/trunk/; revision=5151
2003-07-17 16:57:39 +00:00
Royce Mitchell III 59d5c9f016 finished applying @implemented and @unimplemented comments and remove the comments from non-api functions
svn path=/trunk/; revision=5068
2003-07-11 01:23:16 +00:00
Eric Kohl ea01cf3f1f Enable automatic initialization and termination of Win32 threads and processes.
svn path=/trunk/; revision=4933
2003-06-20 16:26:53 +00:00
Hartmut Birr 11eb72da00 - Fixed the test for context flags because the architecture flag is always set.
svn path=/trunk/; revision=4912
2003-06-16 19:19:30 +00:00
Gé van Geldorp 472ebde7ec Fix NtGetContextThread() and implement NtSetContextThread()
svn path=/trunk/; revision=4872
2003-06-07 19:13:43 +00:00
Casper Hornstrup 685119e0cd 2003-06-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api

	* include/ddk/obfuncs.h (ObCreateObject): Remove.
	* include/ntos/zwtypes.h (ObRosCreateObject): Add.
	* ntoskrnl/ntoskrnl.def, ntoskrnl/ntoskrnl.edf: Export ObCreateObject@36
	and ObRosCreateObject@20.
	* ntoskrnl/cm/ntfunc.c, ntoskrnl/cm/registry.c, ntoskrnl/cm/regobj.c,
	ntoskrnl/io/create.c, ntoskrnl/io/device.c, ntoskrnl/io/iocomp.c,
	ntoskrnl/lpc/connect.c, ntoskrnl/lpc/create.c, ntoskrnl/mm/section.c,
	ntoskrnl/nt/evtpair.c, ntoskrnl/nt/mutant.c, ntoskrnl/nt/ntevent.c,
	ntoskrnl/nt/ntsem.c, ntoskrnl/nt/nttimer.c, ntoskrnl/nt/profile.c,
	ntoskrnl/ob/dirobj.c, ntoskrnl/ob/namespc.c, ntoskrnl/ob/symlink.c,
	ntoskrnl/ps/create.c, ntoskrnl/ps/process.c, ntoskrnl/se/token.c,
	subsys/win32k/ntuser/winsta.c: Use ObRosCreateObject, not ObCreateObject.
	* ntoskrnl/ob/object.c (ObRosCreateObject): Rename from ObCreateObject.
	(ObCreateObject): Add stub.

svn path=/trunk/; revision=4867
2003-06-07 12:23:14 +00:00
Gunnar Dalsnes a988e5ab0e -corrected protoype
svn path=/trunk/; revision=4848
2003-06-05 23:38:37 +00:00
Gunnar Dalsnes 9b53ffc03a -call thread notify routines below DISPATCH_LVL
svn path=/trunk/; revision=4846
2003-06-05 22:45:38 +00:00
Gunnar Dalsnes 1f8cbb88a0 -call process notify routines below DISPATCH_LVL
-enable removal of process notify routines

svn path=/trunk/; revision=4845
2003-06-05 22:45:22 +00:00
Casper Hornstrup f2f1a0251b 2003-06-05 Casper S. Hornstrup <chorns@users.sourceforge.net>
Changes for compiling with w32api

	* ntoskrnl/include/internal/i386/ps.h (KPCR_TSS): Redefine as 0x3C.
	(KPCR_TIB): New structure.
	(IKPCR): Ditto.
	(KPCR): Match w32api structure fieldnames.
	* ntoskrnl/ke/main.c (ExpInitializeExecutive): Adjust for changes to KPCR.
	* ntoskrnl/ke/i386/kernel.c: Ditto.
	* ntoskrnl/ps/thread.c: Ditto.

svn path=/trunk/; revision=4842
2003-06-05 11:51:13 +00:00
Hartmut Birr 01a3fd2a8b - Initialize TableBase in PsCreatePeb.
svn path=/trunk/; revision=4749
2003-05-24 17:14:41 +00:00
Eric Kohl d043a91017 Removed unused NLS stuff.
Cleaned-up PEB initialization.

svn path=/trunk/; revision=4734
2003-05-21 15:06:33 +00:00
Eric Kohl 562eeb5ceb Finished kernel-mode part of NLS section implementation.
svn path=/trunk/; revision=4732
2003-05-20 14:38:05 +00:00
Eric Kohl 7e921a40c1 Implemented NLS file import.
svn path=/trunk/; revision=4726
2003-05-19 14:39:09 +00:00
Eric Kohl 397169c1a8 Added new MEMORY_AREA_NO_ACCESS type.
Make the top and bottom 64KB of process memory space and the 60KB above the shared user page from unaccessible.
Introduced MmSystemRangeStart.

svn path=/trunk/; revision=4705
2003-05-17 19:16:39 +00:00
Eric Kohl e1c437438c Implemented Top-Down-Allocator.
svn path=/trunk/; revision=4704
2003-05-17 15:29:50 +00:00
Eric Kohl 389d19a1e3 Updated NLS function signature.
Reverted NLS section mapping because of unability to fix the section mapping code.

svn path=/trunk/; revision=4691
2003-05-16 17:38:41 +00:00
Eric Kohl 556a38e0c0 Implemented NLS section (not usable yet) and updated NLS functions.
svn path=/trunk/; revision=4685
2003-05-15 11:07:51 +00:00
Gé van Geldorp 8eaabc5146 Properly clean up terminated threads
svn path=/trunk/; revision=4633
2003-05-01 22:00:31 +00:00
Gé van Geldorp ad70cd4bbe Implement ThreadBasePriority case for NtSetInformationThread()
svn path=/trunk/; revision=4625
2003-04-30 21:56:22 +00:00
Gé van Geldorp f0d4e3c543 Zero-initialze TEB for new threads
svn path=/trunk/; revision=4620
2003-04-30 15:11:31 +00:00
Aleksey Bragin 55300ebbf2 Added DbgPrint-notification for stubbed function KeSetAffinityThread()
svn path=/trunk/; revision=4611
2003-04-28 14:32:36 +00:00
KJK::Hyperion 879b1f5754 My biggest commit so far (everything compiles and apparently runs fine):
- replaced DWORD with ULONG in a couple of places
 - replaced some ULONGs with LONGs in the KD GDB stub
 - replaced INITIAL_TEB with USER_STACK, as per Nebbet's book, to support both fixed size and expandable stacks
 - added InterlockedExchangePointer
 - added the ASM_BREAKPOINT macro as the architecture-dependent assembler code to raise a breakpoint exception
 - corrected definitions of INT, LONG, DWORD, UINT, ULONG and ULONG32
 - corrected IoSetCancelRoutine to use InterlockedExchangePointer
 - corrected definition of NtCurrentTeb and NtCurrentPeb
 - corrected DbgBreakPoint and DbgUserBreakPoint not to set up a stack frame (temporary fix with inline assembler - why doesn't GCC understand __declspec(naked)?)
 - corrected various calls to Interlocked* functions to cast OUT operands to LONG *
 - corrected various printf format strings
 - corrected DbgUiIssueRemoteBreakin to use the smallest possible stack  (this is what started everything)
 - removed a DPRINT that accessed pageable memory at non-PASSIVE_LEVEL IRQL
 - beautified CreateProcessA (another temporary fix - all the new functions will be isolated in the upcoming stand-alone RTL)
 - prefixed LdrInitializeThunk with a nop that can be overwritten with a breakpoint for debugging purposes (temporary debugging aid until we have user-mode debugger support). Will add support for this to the breakin utility soon
 - thread creation code rewritten from scratch (some glitches documented inline, but works fine)
 - thread creation code now duplicated just twice, as opposed to five times (temporary fix - three new, non standard functions have been exported from NTDLL.DLL, will fix later)

svn path=/trunk/; revision=4595
2003-04-26 23:13:33 +00:00
Aleksey Bragin 143395e386 KeSetAffinityThread stub added (returns STATUS_SUCCESS and thus VMWare network driver won't crash ReactOS)
svn path=/trunk/; revision=4579
2003-04-25 18:37:44 +00:00
KJK::Hyperion 5c6df46d27 - PsLookup* functions fixed to increment the reference count of the object they are about to return. The GDB KD stub is directly affected by this patch, but it hasn't been fixed yet
- PsGetCurrentProcess and PsGetCurrentThread are now macros calling IoGetCurrentProcess and KeGetCurrentThread, for binary compatibility with Windows

svn path=/trunk/; revision=4521
2003-04-10 23:14:47 +00:00
Gunnar Dalsnes fc1366d624 set thread WaitReason when blocking
svn path=/trunk/; revision=4351
2003-03-19 23:12:41 +00:00
Hartmut Birr 25f4f4f91c Attache the process if we are running in the context of an other process (in KdbFreeSymbols).
svn path=/trunk/; revision=4044
2003-01-19 01:46:33 +00:00
Gé van Geldorp 67cf4a374e Fixed typo, Edi was not restored
svn path=/trunk/; revision=3888
2002-12-22 11:35:15 +00:00
Hartmut Birr d4386d7b53 Free the user stack in PsReapThreads.
svn path=/trunk/; revision=3801
2002-11-27 20:54:37 +00:00
Casper Hornstrup 1d57b8f66d 2002-11-03 Casper S. Hornstrup <chorns@users.sourceforge.net>
* apps/tests/lpc/lpcclt.c: Change LPC_MESSAGE_HEADER to LPC_MESSAGE.
	* include/csrss/csrss.h: Ditto.
	* include/lsass/lsass.h: Ditto.
	* include/napi/dbg.h: Ditto.
	* include/napi/lpc.h: Ditto.
	* lib/kernel32/misc/console.c: Ditto.
	* lib/ntdll/csr/lpc.c: Ditto.
	* lib/ntdll/dbg/debug.c: Ditto.
	* lib/secur32/lsa.c: Ditto.
	* ntoskrnl/dbg/user.c: Ditto.
	* ntoskrnl/include/internal/port.h: Ditto.
	* ntoskrnl/lpc/connect.c: Ditto.
	* ntoskrnl/lpc/reply.c: Ditto.
	* ntoskrnl/ps/process.c: Ditto.
	* subsys/csrss/api/conio.c: Ditto.
	* subsys/csrss/api/process.c: Ditto.
	* subsys/csrss/api/user.c: Ditto.

svn path=/trunk/; revision=3692
2002-11-03 20:01:07 +00:00
Casper Hornstrup a1e055e943 2002-10-26 Casper S. Hornstrup <chorns@users.sourceforge.net>
* lib/msvcrt/Makefile (OBJECTS_EXCEPT): Add except/seh.o; Remove
	except/exhand3.o.
	* lib/msvcrt/except/exhand2.c (MsvcrtDebug): New function.
	* lib/msvcrt/except/unwind.c (PEXCEPTION_FRAME): Remove.
	(_global_unwind2): Correct prototype.
	* lib/ntdll/makefile (RTL_I386_OBJECTS, ARCH_OBJECTS): New groups.
	(TARGET_OBJECTS): Add ARCH_OBJECTS group.
	* lib/ntdll/rtl/exception.c (KiUserExceptionDispatcher): Set
	NumberParameters in exception record.
	(RtlRaiseStatus): Remove.
	* ntoskrnl/Makefile (OBJECTS_RTL): Remove rtl/seh.o.
	(OBJECTS_RTL_I386): Add rtl/i386/except.o, rtl/i386/exception.o, and
	rtl/i386/seh.o.
	* ntoskrnl/ke/catch.c (RtlpExecuteHandlerForException,
	RtlpDumpExceptionRegistrations, RtlpDispatchException,
	RtlpExecuteHandler, RtlpExceptionHandler, RtlpUnwindHandler,
	RtlpExecuteHandlerForException, RtlpExecuteHandlerForUnwind,
	RtlUnwind): Remove.
	(RtlpDispatchException): Add prototype.
	* ntoskrnl/ke/i386/usertrap.c (ExceptionTypeStrings): Remove.
	* ntoskrnl/ps/create.c (PsCreateTeb): Mark end of exception
	registration list.
	* tools/helper.mk (TARGET_ASFLAGS): Add -g if DBG = 1.
	* lib/msvcrt/except/exhand3.c: Remove.
	* ntoskrnl/rtl/seh.c: Ditto.
	* lib/msvcrt/except/seh.s: New file.
	* lib/ntdll/rtl/i386/except.s: Ditto.
	* lib/ntdll/rtl/i386/exception.c: Ditto.
	* ntoskrnl/rtl/i386/except.s: Ditto.
	* ntoskrnl/rtl/i386/exception.c: Ditto.
	* ntoskrnl/rtl/i386/seh.s: Ditto.

svn path=/trunk/; revision=3657
2002-10-26 00:32:19 +00:00
Casper Hornstrup 1e847489e4 2002-10-01 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/dd/floppy/floppy.c: Changed PAGESIZE to PAGE_SIZE.
	* drivers/fs/cdfs/fcb.c: Ditto.
	* drivers/fs/cdfs/fsctl.c: Ditto.
	* drivers/fs/cdfs/rw.c: Ditto.
	* drivers/fs/ext2/dir.c: Ditto.
	* drivers/fs/ext2/inode.c: Ditto.
	* drivers/fs/ext2/rw.c: Ditto.
	* drivers/fs/ext2/super.c: Ditto.
	* drivers/fs/minix/blockdev.c: Ditto.
	* drivers/fs/minix/cache.c: Ditto.
	* drivers/fs/minix/inode.c: Ditto.
	* drivers/fs/minix/rw.c: Ditto.
	* drivers/fs/ntfs/fcb.c: Ditto.
	* drivers/fs/ntfs/ntfs.h: Ditto.
	* drivers/fs/vfat/create.c: Ditto.
	* drivers/fs/vfat/direntry.c: Ditto.
	* drivers/fs/vfat/dirwr.c: Ditto.
	* drivers/fs/vfat/fat.c: Ditto.
	* drivers/fs/vfat/fcb.c: Ditto.
	* drivers/fs/vfat/fsctl.c: Ditto.
	* drivers/fs/vfat/rw.c: Ditto.
	* drivers/storage/class2/class2.c: Ditto.
	* drivers/storage/scsiport/scsiport.c: Ditto.
	* hal/halx86/adapter.c: Ditto.
	* hal/halx86/mp.c: Ditto.
	* include/ddk/mmfuncs.h: Ditto.
	* include/ddk/mmtypes.h: Ditto.
	* include/ddk/i386/pagesize.h: Ditto.
	* include/ntdll/pagesize.h: Ditto.
	* lib/kernel32/process/create.c: Ditto.
	* lib/kernel32/thread/thread.c: Ditto.
	* lib/ntdll/ldr/utils.c: Ditto.
	* lib/ntdll/rtl/env.c: Ditto.
	* lib/ntdll/rtl/heap.c: Ditto.
	* lib/ntdll/rtl/ppb.c: Ditto.
	* lib/ntdll/rtl/process.c: Ditto.
	* lib/ntdll/rtl/thread.c: Ditto.
	* ntoskrnl/cc/copy.c: Ditto.
	* ntoskrnl/cc/view.c: Ditto.
	* ntoskrnl/ex/sysinfo.c: Ditto.
	* ntoskrnl/include/internal/i386/mm.h: Ditto.
	* ntoskrnl/io/mdl.c: Ditto.
	* ntoskrnl/ke/kthread.c: Ditto.
	* ntoskrnl/ke/i386/kernel.c: Ditto.
	* ntoskrnl/ldr/init.c: Ditto.
	* ntoskrnl/ldr/loader.c: Ditto.
	* ntoskrnl/mm/anonmem.c: Ditto.
	* ntoskrnl/mm/cont.c: Ditto.
	* ntoskrnl/mm/freelist.c: Ditto.
	* ntoskrnl/mm/iospace.c: Ditto.
	* ntoskrnl/mm/kmap.c: Ditto.
	* ntoskrnl/mm/marea.c: Ditto.
	* ntoskrnl/mm/mdl.c: Ditto.
	* ntoskrnl/mm/mminit.c: Ditto.
	* ntoskrnl/mm/ncache.c: Ditto.
	* ntoskrnl/mm/npool.c: Ditto.
	* ntoskrnl/mm/pagefile.c: Ditto.
	* ntoskrnl/mm/pageop.c: Ditto.
	* ntoskrnl/mm/section.c: Ditto.
	* ntoskrnl/mm/slab.c: Ditto.
	* ntoskrnl/mm/i386/page.c: Ditto.
	* ntoskrnl/ob/handle.c: Ditto.
	* ntoskrnl/ps/create.c: Ditto.
	* ntoskrnl/ps/process.c: Ditto.
	* ntoskrnl/ps/w32call.c: Ditto.
	* subsys/win32k/include/object.h: Ditto.

svn path=/trunk/; revision=3594
2002-10-01 19:27:25 +00:00