Commit Graph
98 Commits
Author SHA1 Message Date
Thomas Bluemel 5239de8ad5 1. made the PEB structure match xp's layout
2. fixed GetVersionEx()

svn path=/trunk/; revision=13639
2005-02-19 03:38:43 +00:00
Thomas Bluemel 709af1f28a the callback management doesn't have to be serialized as it's only accessed by the thread itself
svn path=/trunk/; revision=13512
2005-02-12 20:37:04 +00:00
Alex Ionescu f6559e22c4 SYSENTER support, INT2E Optimization, new Syscall Table/Stub generator and svn:ignore fixes. Please read associated Mailing List Post.
svn path=/trunk/; revision=13090
2005-01-17 07:10:34 +00:00
Filip Navara 54b6cbb3a2 Portability fixes.
svn path=/trunk/; revision=12949
2005-01-12 10:05:05 +00:00
Gregor Anich e008fd8fc6 Forgot to commit this file - sorry!
svn path=/trunk/; revision=12858
2005-01-06 23:18:17 +00:00
Alex Ionescu 91fc5d1804 Fix incorrect LPC Object export...we export pointers not the object itself! Also remove more TIME stuff to be properly compatible with real structures.
svn path=/trunk/; revision=12748
2005-01-03 05:17:16 +00:00
Gé van Geldorp 8c1121a5be Don't destroy cursors/icons prematurely.
svn path=/trunk/; revision=12742
2005-01-03 00:46:42 +00:00
Alex Ionescu 849dcb1be9 Use PROCESSOR_FEATURE_MAX instead of PROCESSOR_FEATURES_MAX. The latter is not official and a useless ducpliate. Use LARGE_INTEGER instead of TIME in ex/sysinfo.c
svn path=/trunk/; revision=12678
2005-01-01 04:05:42 +00:00
Thomas Bluemel 50b193239b 1. remove mouse cursor hacks from eng/mouse
2. implemented more win2k-like gdi handle table (handle entry lookup is not yet optimized/cached!)
3. moved cursoricon.c from objects to ntuser as it's part of the user api and not of the gdi
4. get rid of the eng handle table
5. minor fixes

svn path=/trunk/; revision=12035
2004-12-12 01:40:39 +00:00
Alex Ionescu 2a42da87f2 1) Updated KUSER_SHARED_DATA to NT5+ exported documented defintiion, which meant the removal of DosDevices. Used proper NT _DEVICE_MAP Structure for this, but did it in a "hack" way, ie, not a fully implementation, but enough to keep the basic old functionality as before. This will need an review once the Ob Manager is overhaulted. Modified kernel32 to request the _DEVICE_MAP for the current process, implemented the query routine (but made it return the default systme device map intead of per process) and changed the kernel code to use the default device map instead.
2) Updated the HalDispatchTable to Version 3.0. Not a huge change, just added/updated some functions.
3) Rewrote most of the DPC Code to take advantage of the CPU/Importance "laws". Stress testing on my machine revealed no issues on CVS HEAD. Still needs some review to make it so that idle threads can call dpcs (so that low importance dpcs will be dispatched by the idle thread). I will modify this later.

svn path=/trunk/; revision=11731
2004-11-21 06:51:18 +00:00
Thomas Bluemel b7100ed2fc 1. removed window station/desktop hacks from ntoskrnl
2. implemented window station/desktop inheritance on thread/process startup
3. implemented process locking
4. fixed some fields in the EPROCESS structure

svn path=/trunk/; revision=11712
2004-11-20 16:46:06 +00:00
Eric Kohl de2ab6cf8b - Make TIME_ZONE_ID_XXX constants available from kernel mode.
- Fix definition of KSYSTEM_TIME.
- Set default time zone bias and id in the shared user page.

svn path=/trunk/; revision=11556
2004-11-06 16:05:49 +00:00
Eric Kohl f443b5edcf Set processor features in the shared user page.
This fixes bug #387.

svn path=/trunk/; revision=11410
2004-10-24 12:00:01 +00:00
Thomas Bluemel ba5fcd9590 revert the changes i accidently committed to HEAD
svn path=/trunk/; revision=10831
2004-09-12 19:47:49 +00:00
Thomas Bluemel eed6b713aa rewrote the gdi handle table that behaves similar 2k/XP and works without global locks
svn path=/trunk/; revision=10829
2004-09-12 19:21:08 +00:00
Filip Navara 6435dec245 - Compile kernel32 using w32api.
- Fixed some packing issues in DDK headers (more to come).

svn path=/trunk/; revision=9664
2004-06-13 20:04:56 +00:00
Thomas Bluemel f2992e0c09 prevent memory leaks if callbacks to usermode never return
svn path=/trunk/; revision=9473
2004-05-22 21:12:15 +00:00
Thomas Bluemel 03de8510c2 removed obsolete fields from the W32PROCESS structure
svn path=/trunk/; revision=9452
2004-05-21 10:31:00 +00:00
Thomas Bluemel 4349fe8990 implemented DisableProcessWindowsGhosting() (window ghosting is not yet implemented though)
svn path=/trunk/; revision=9451
2004-05-21 10:09:31 +00:00
Thomas Bluemel bcde8100ea fixed GetThreadDesktop() (not fully working yet because it requires a ObFindHandleForObject() implementation in case the requested thread doesn't belong to the calling process)
svn path=/trunk/; revision=9315
2004-05-05 22:47:06 +00:00
Thomas Bluemel b2aa394176 implemented GetThreadLocale() and partly implemented SetThreadLocale()
svn path=/trunk/; revision=9280
2004-05-02 15:47:34 +00:00
Filip Navara 31c1c21824 - Compile Win32k, GDI, USER32 and CSRSS using W32API.
svn path=/trunk/; revision=9053
2004-04-09 20:03:21 +00:00
Thomas Bluemel 7cda28d415 1. implemented SetFileValidData()
2. updated FILE_INFORMATION_CLASS

svn path=/trunk/; revision=8780
2004-03-18 16:19:26 +00:00
KJK::Hyperion 61ae1aa515 - Added comments to the fiber test, plus minor fixes
- Fixed NT_TIB structure to be compatible with w32api
 - Fixed fiber support in kernel32.dll. Now the correct argument is passed to fiber startup routines

svn path=/trunk/; revision=8573
2004-03-07 20:07:05 +00:00
Gé van Geldorp 1f1b824d08 Import w32api version 2.5 include files
svn path=/trunk/; revision=8283
2004-02-21 09:20:39 +00:00
Gé van Geldorp 55d09ef598 Don't callback from kernel to usermode if the thread is exiting
svn path=/trunk/; revision=8042
2004-02-05 20:09:10 +00:00
Filip Navara 54beec6da4 Minor fix.
svn path=/trunk/; revision=7586
2004-01-12 20:52:37 +00:00
Filip Navara 73b404c2ea - Removed some obsolete headers.
- Converted some of the (mostly network) stuff to compile with W32API.

svn path=/trunk/; revision=7573
2004-01-11 20:46:06 +00:00
Eric Kohl d4973a4ea4 Moved some Nt/Zw functions and types.
svn path=/trunk/; revision=7483
2004-01-06 16:11:57 +00:00
Thomas Bluemel 583de66b3e tamlin's work on compiling the kernel with another compiler than GCC. Patch by Mike Nordell.
svn path=/trunk/; revision=7460
2004-01-05 14:28:21 +00:00
Hartmut Birr 3c069498cc - Made the system time in the shared data page available.
- Queried the system time without holding a lock.
- Splited the timer queue for absolute and relative timers.

svn path=/trunk/; revision=7368
2003-12-31 14:37:34 +00:00
Aleksey Bragin 4150f6827f Continue of MSVC-compiling changes....
I double checked, but in case someone's recent commit is somehow overwritten -- please, don't be very frustrated :) -- I will fix it, just drop me a note.

svn path=/trunk/; revision=7337
2003-12-30 18:34:59 +00:00
Thomas Bluemel 0d9840021e fixes to cursors
svn path=/trunk/; revision=7007
2003-12-13 22:38:29 +00:00
Thomas Bluemel 0d6a146059 added support for the FR_PRIVATE and FR_NOT_ENUM flags for AddFontResourceEx()
svn path=/trunk/; revision=6983
2003-12-12 23:49:48 +00:00
Gé van Geldorp 89d0892531 Move desktop window proc from WIN32K to CSRSS
svn path=/trunk/; revision=6908
2003-12-07 23:02:57 +00:00
Gé van Geldorp 152368464d Switch screen to graphics mode when the first window or DC is created
and switch back to text mode when the last app which created a window
or DC terminates

svn path=/trunk/; revision=6794
2003-11-25 22:06:31 +00:00
Thomas Bluemel 54ebd5ce0e Patch by Jonathon Wilson:
add stubs to user32 and add partial non-working implementation of Message Pump Hooks

svn path=/trunk/; revision=6711
2003-11-19 13:19:40 +00:00
Thomas Bluemel a55677b029 1. implemented GetGuiResources()
2. modified test app guithreadinfo to display additional information about the current process using GetGuiResources()

svn path=/trunk/; revision=6705
2003-11-19 12:25:03 +00:00
Royce Mitchell III 8d30d471de fix unnecessarily recursive include
svn path=/trunk/; revision=6641
2003-11-14 14:10:55 +00:00
Gé van Geldorp 3f52e9d728 Keyboard sync between gui and text modes, patch by Art Yerkes and
Hartmut Birr

svn path=/trunk/; revision=6271
2003-10-09 06:13:05 +00:00
David Welch 9231f7b9a2 - Added support for crash dumps:-
* Recognize the option /CRASHDUMP on the kernel command line to specify
the type of dump desired.
* Added a new driver (diskdump) which wraps the miniport for the disk
containing the pagefile and does the crash dump i/o.
* Added a FSCTL to get the mapping between LCNs and disk offsets so
crash dumps don't need to go through the filesystem.

svn path=/trunk/; revision=5887
2003-08-27 21:28:08 +00:00
Steven Edwards 78b253a811 Converted some C++ comment to C style comments
svn path=/trunk/; revision=5842
2003-08-25 01:37:48 +00:00
Andrew Greenwood 59a33415c2 W32API conversion update
This shouldn't directly affect anything for normal (non-W32API) builds. A more detailed change log will be sent to the ros-kernel mailing list shortly.

svn path=/trunk/; revision=5461
2003-08-07 11:47:33 +00:00
Thomas Bluemel 3445150d31 Added Handle table for menus
svn path=/trunk/; revision=5347
2003-07-31 23:00:55 +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
Andrew Greenwood acd21b1447 My first CVS commit. Hope I get this right. I did put a few files in the CVS dir manually... Innocent mistake... I'll clean it up after I'm done with this. Sorry!
Some of NTOSKRNL now compiles with __USE_W32API enabled. Note that this commit is purely so I know what to do, and also to allow other people to continue working on this if they wish to do so. I will continue hacking away at it.

It's not complete yet, but I've ensured that the changes I have made aren't incompatible with ReactOS as it stands at the moment. It compiles without __USE_W32API fine.

* Modified the tools/depend.mk file to force the use of forward slash (SEH variable?) otherwise it tries to run "toolsdepend.exe" without a slash.

* Moved a couple of routines from include/ddk/halfuncs.h to hal/halx86/include/hal.h

* Fixed conflicting types in ntoskrnl/ex/interlck.c

* Replaced .a with .u, #undef'd "lite" functions and defined NONAMELESSUNION in ntoskrnl/ex/resource.c so that it compiles with Win 32 API

* Added some more conditional defines to include/shared_data.h, ntoskrnl/include/internal/mm.h (and i386/mm.h), ntoskrnl/include/internal/ps.h

* Replaced .a with .u for OWNER_ENTRY and ERESOURCE in include/ddk/extypes.h (so they are compatible with Win 32 API headers)

* Various other small adjustments

Hope this works!

svn path=/trunk/; revision=5130
2003-07-15 16:26:18 +00:00
KJK::Hyperion 5514f345a3 - apps/utils/tickcount/tickcount.c: corrected assertion
- include/funcs.h: declared GetScrollBarInfo
 - include/napi/teb.h: removed misleading comment about NtCurrentTeb; preparing TEB for Windows 2003-compatible FLS support
 - include/tchar.h: added _tcslen
 - include/tgetopt.h: type-generic getopt (see lib/tgetopt)
 - include/win32k/ntuser.h, subsys/win32k/ntuser/window.c, subsys/win32k/ntuser/timer.c, lib/user32/misc/timer.c, lib/user32/windows/paint.c: corrected declarations of NtUserSetTimer, NtUserKillTimer and NtUserRedrawWindow (Win32K doesn't follow the NT calling convention)
 - lib/crtdll/crtdll.def: exported ::operator new and ::operator delete
 - lib/kernel32/thread/fls.c: FLS support almost done
 - lib/ntdll/*: implemented _chkstk/_alloca_probe - some more Visual C++ programs should run now; exported NtCurrentTeb for compatibility with Windows NT 3.51 and some non-i386 architectures; removed the CRT from the linker libraries
 - lib/string/*: type-generic string functions (single, shared implementation for single-byte and Unicode variants using _t macros); corrected a bug in the i386 wcsncmp; merged strspn/strcspn; corrected non-portable code in strspn/strcspn; implemented strnlen/tcsnlen for the i386 architecture; all changes were regression-tested and compared against the Microsoft CRT
 - tools/helper.mk: libraries, dlls and drivers now depend from their DEF/EDF files

svn path=/trunk/; revision=5010
2003-07-06 23:04:19 +00:00
KJK::Hyperion 66080da575 - Kernel32: implemented fibers. Almost complete - only lacks some Windows 2003 Server features (switching the floating point context and Fiber Local Storage functions)
- Kernel32: GetCurrentFiber and GetFiberData are macros, not functions
 - Kernel32: ExitThread now is declared as __declspec(noreturn)
 - RosRtl: two new functions to allocate and free stacks
 - RosRtl: corrected a couple of prototypes

svn path=/trunk/; revision=4794
2003-05-29 00:36:41 +00:00
Casper Hornstrup 2d947f6f92 2003-05-28 Casper S. Hornstrup <[email protected]>
Changes for compiling with w32api

	* include/ddk/haltypes.h: Move ...
	* include/ntos/haltypes.h: ... here.
	* include/ddk/obtypes.h: Move ...
	* include/ntos/obtypes.h: ... here.
	* include/ddk/i386/tss.h: Move ...
	* include/ntos/tss.h: ... here.
	* include/errors.h, include/windows.h: #include_next <windows.h>.
	* include/ntos.h: Include "ntos/haltypes.h", "ntos/obtypes.h", and
	"ntos/tss.h".
	* include/ddk/defines.h (EXPORTED, IMPORTED): Move to
	include/ntos/types.h.
	* include/ddk/exfuncs.h, include/ddk/mmtypes.h, include/ntos/except.h,
	include/ntos/file.h, include/ole32/guiddef.h, include/win32k/color.h,
	lib/msafd/include/debug.h, lib/user32/include/debug.h,
	lib/ws2_32/include/debug.h, lib/ws2help/debug.h,
	ntoskrnl/include/internal/debug.h, ntoskrnl/ke/i386/bthread.S,
	ntoskrnl/rtl/error.c: Don't define macros if previously defined.
	* include/ddk/halfuncs.h: Include <ntos/haltypes.h>.
	* include/ddk/iotypes.h: Include <ntos/obtypes.h>.
	* include/ddk/ketypes.h (MB_FLAGS_*, LOADER_MODULE, ADDRESS_RANGE,
	LOADER_PARAMETER_BLOCK): Move to include/ntos/types.h.
	* include/ddk/ntddk.h: #include_next <ddk/ntddk.h>.
	* include/ddk/ntifs.h: #include_next <ddk/ntifs.h>.
	* include/napi/shared_data.h (SharedUserData): Undefine before defining.
	* include/ntos/rtl.h (RtlUpcaseUnicodeString): Correct prototype.
	* include/ntos/zwtypes.h (THREAD_STATE): Add.
	* lib/ntdll/rtl/unicode.c (RtlUpcaseUnicodeString): Match new prototype.
	* ntoskrnl/rtl/unicode.c (RtlUpcaseUnicodeString): Ditto.
	* lib/string/Makefile: Include Makefile.$(ARCH). Don't include
	makefile.$(ARCH).
	* ntoskrnl/ex/sysinfo.c, ntoskrnl/include/internal/ntoskrnl.h,
	* ntoskrnl/include/internal/ob.h, ntoskrnl/ob/handle.c: Include <ntos.h>.
	* ntoskrnl/ke/i386/syscall.S: Don't include <ddk/defines.h>.
	(KernelMode, UserMode): Define.
	* ntoskrnl/ke/i386/stkswitch.S, ntoskrnl/ke/i386/tskswitch.S,
	ntoskrnl/ke/i386/v86m_sup.S: Include <ntos/tss.h>

svn path=/trunk/; revision=4789
2003-05-28 18:09:10 +00:00
KJK::Hyperion 38a1364aae - new statically linked library ROSRTL, for code to be shared among system DLLs
- user-mode thread creation code moved to ROSRTL
 - user-mode thread context initialization code fixed
 - LdrInitializeThunk() breakin stub fixed

svn path=/trunk/; revision=4615
2003-04-29 02:17:01 +00:00