Commit Graph
486 Commits
Author SHA1 Message Date
Royce Mitchell III de766fd82e applied Mike Nordell's fix to lib/kernel32/synch/wait.c to fix an integer promotion bug causing WaitForSingleEvent, etc, to timeout early.
svn path=/trunk/; revision=5191
2003-07-20 19:53:53 +00:00
Royce Mitchell III a084794f67 lpVolumeNameBuffer wasn't being null terminated either. The line of code to do so was there, but it was missing the "= 0"
svn path=/trunk/; revision=5189
2003-07-20 18:05:46 +00:00
Eric Kohl 67897f32c0 Fixed compiler warnings.
svn path=/trunk/; revision=5186
2003-07-20 13:13:03 +00:00
Hartmut Birr 4c772af134 - Fixed GetVolumeInformationA/W.
svn path=/trunk/; revision=5182
2003-07-20 09:40:13 +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
Gé van Geldorp fddc6df9fc Pass PHANDLE instead of HANDLE in NtOpenFile call
svn path=/trunk/; revision=5128
2003-07-15 10:49:52 +00:00
Casper Hornstrup 5a7413d3b7 2003-07-10 Casper S. Hornstrup <[email protected]>
* lib/kernel32/debug/break.c: Add @implemented and @unimplemented
	to APIs.
	* lib/kernel32/debug/debugger.c: Ditto.
	* lib/kernel32/debug/output.c: Ditto.
	* lib/kernel32/except/except.c: Ditto.
	* lib/kernel32/file/backup.c: Ditto.
	* lib/kernel32/file/cnotify.c: Ditto.
	* lib/kernel32/file/copy.c: Ditto.
	* lib/kernel32/file/create.c: Ditto.
	* lib/kernel32/file/curdir.c: Ditto.
	* lib/kernel32/file/delete.c: Ditto.
	* lib/kernel32/file/deviceio.c: Ditto.
	* lib/kernel32/file/dir.c: Ditto.
	* lib/kernel32/file/dosdev.c: Ditto.
	* lib/kernel32/file/file.c: Ditto.
	* lib/kernel32/file/find.c: Ditto.
	* lib/kernel32/file/iocompl.c: Ditto.
	* lib/kernel32/file/lfile.c: Ditto.
	* lib/kernel32/file/lock.c: Ditto.
	* lib/kernel32/file/mailslot.c: Ditto.
	* lib/kernel32/file/move.c: Ditto.
	* lib/kernel32/file/npipe.c: Ditto.
	* lib/kernel32/file/pipe.c: Ditto.
	* lib/kernel32/file/rw.c: Ditto.
	* lib/kernel32/file/tape.c: Ditto.
	* lib/kernel32/file/volume.c: Ditto.
	* lib/kernel32/mem/global.c: Ditto.
	* lib/kernel32/mem/heap.c: Ditto.
	* lib/kernel32/mem/isbad.c: Ditto.
	* lib/kernel32/mem/local.c: Ditto.
	* lib/kernel32/mem/procmem.c: Ditto.
	* lib/kernel32/mem/section.c: Ditto.
	* lib/kernel32/mem/virtual.c: Ditto.
	* lib/kernel32/misc/atom.c: Ditto.
	* lib/kernel32/misc/comm.c: Ditto.
	* lib/kernel32/misc/computername.c: Ditto.
	* lib/kernel32/misc/console.c: Ditto.
	* lib/kernel32/misc/env.c: Ditto.
	* lib/kernel32/misc/error.c: Ditto.
	* lib/kernel32/misc/errormsg.c: Ditto.
	* lib/kernel32/misc/handle.c: Ditto.
	* lib/kernel32/misc/ldr.c: Ditto.
	* lib/kernel32/misc/mbchars.c: Ditto.
	* lib/kernel32/misc/muldiv.c: Ditto.
	* lib/kernel32/misc/perfcnt.c: Ditto.
	* lib/kernel32/misc/profile.c: Ditto.
	* lib/kernel32/misc/res.c: Ditto.
	* lib/kernel32/misc/stubs.c: Ditto.
	* lib/kernel32/misc/sysinfo.c: Ditto.
	* lib/kernel32/misc/time.c: Ditto.
	* lib/kernel32/misc/toolhelp.c: Ditto.
	* lib/kernel32/process/cmdline.c: Ditto.
	* lib/kernel32/process/create.c: Ditto.
	* lib/kernel32/process/proc.c: Ditto.
	* lib/kernel32/process/session.c: Ditto.
	* lib/kernel32/string/lstring.c: Ditto.
	* lib/kernel32/synch/critical.c: Ditto.
	* lib/kernel32/synch/event.c: Ditto.
	* lib/kernel32/synch/intrlck.c: Ditto.
	* lib/kernel32/synch/mutex.c: Ditto.
	* lib/kernel32/synch/sem.c: Ditto.
	* lib/kernel32/synch/timer.c: Ditto.
	* lib/kernel32/synch/wait.c: Ditto.
	* lib/kernel32/thread/fiber.c: Ditto.
	* lib/kernel32/thread/fls.c: Ditto.
	* lib/kernel32/thread/thread.c: Ditto.
	* lib/kernel32/thread/tls.c: Ditto.

svn path=/trunk/; revision=5045
2003-07-10 18:50:51 +00:00
Hartmut Birr 198a10ed1b - GetTickCount should return the elapsed time since booting in milliseconds and not the tick count.
svn path=/trunk/; revision=5027
2003-07-09 20:19:50 +00:00
Eric Kohl b2805cde6e Implemented WriteConsoleOutputCharacterW().
svn path=/trunk/; revision=5021
2003-07-09 10:43:08 +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
guido f5c3d860c3 still more .cvsignore maintenance
svn path=/trunk/; revision=4989
2003-06-28 23:30:11 +00:00
Steven Edwards 08ce61d1c2 CreateFileMapping Patch by Hartmut Birr for MSYS applications.
(No they still dont work)

svn path=/trunk/; revision=4979
2003-06-27 20:15:17 +00:00
Emanuele Aliberti 3f1690fdbd KERNEL32.GetConsoleWindow implemented
KERNEL32.GetConsoleHardwareState implemented (undoc;incompatible)
KERNEL32.SetConsoleHardwareState implemented (undoc;incompatible)

Console window's handle is actually not returned because csrss does not create a window for each allocated console.

HardwareState is undocumented. Only size of the returned/set data is the same as NT's.

svn path=/trunk/; revision=4930
2003-06-19 19:38:26 +00:00
KJK::Hyperion 649a9d362a - i386/fiber.S: SwitchToFiber: there was data defined in the middle of the function - ooops
- thread.c: ThreadStartup: initialize error code to zero, so that void ThreadMains set the thread's exit code to something that makes sense

svn path=/trunk/; revision=4880
2003-06-09 22:39:48 +00:00
Hartmut Birr e9f3a8740c - Implemented GetFileAttributesExA/W.
svn path=/trunk/; revision=4877
2003-06-09 19:58:21 +00:00
Eric Kohl b7bf13d061 Added full implementations of [Get/Set]ComputerName[A/W].
svn path=/trunk/; revision=4874
2003-06-08 21:00:04 +00:00
Casper Hornstrup a86b74f2fe 2003-06-07 Casper S. Hornstrup <[email protected]>
* include/ddk/dbgfuncs.h: Move ...
	* include/ntos/dbgfuncs.h: ... here.
	* include/basetsd.h (LONG32): Make it a long.
	* include/ntos.h: Include ntos/dbgfuncs.h.
	* include/ddk/dbgfuncs.h (DBG_STATUS_*, DBG_GET_SHOW_*): Move to
	include/ntos/dbgfuncs.h.
	* include/ddk/exfuncs.h (ExNotifyCallback): Match w32api prototype.
	(*BinaryTree, *SplayTree, *HashTable): Move to include/ntos/zw.h.
	* include/ddk/extypes.h (TRAVERSE_METHOD, PKEY_COMPARATOR,
	PTRAVERSE_ROUTINE, _BINARY_TREE_NODE, BINARY_TREE, SPLAY_TREE_NODE,
	SPLAY_TREE, HASH_TABLE): Move to include/ntos/zwtypes.h.
	* include/ddk/status.h (STATUS_PATH_SYNTAX_BAD): Rename to
	STATUS_OBJECT_PATH_SYNTAX_BAD.
	* apps/utils/objdir/objdir.c (StatusToName): Change
	STATUS_PATH_SYNTAX_BAD to STATUS_OBJECT_PATH_SYNTAX_BAD.
	* ntoskrnl/dbg/errinfo.c: Use STATUS_OBJECT_PATH_SYNTAX_BAD.
	* include/ntos/rtl.h (RtlQueryRegistryValues, RtlWriteRegistryValue,
	RtlDeleteRegistryValue): Match w32api prototypes.
	* include/ntos/zw.h (ZwQuerySystemTime): Ditto.
	* lib/kernel32/file/cnotify.c (FindFirstChangeNotificationW): Use
	STATUS_OBJECT_PATH_SYNTAX_BAD.
	* lib/ntdll/rtl/registry.c (RtlDeleteRegistryValue,
	RtlQueryRegistryValues, RtlWriteRegistryValue): Match w32api prototypes.
	* ntoskrnl/cm/cm.h, ntoskrnl/cm/ntfunc.c, ntoskrnl/cm/regfile.c: Change
	FILETIME to LARGE_INTEGER.
	* ntoskrnl/cm/rtlfunc.c (RtlDeleteRegistryValue, RtlQueryRegistryValues,
	RtlWriteRegistryValue): Match w32api prototypes.
	* ntoskrnl/ex/callback.c (ExNotifyCallback): Ditto.
	* ntoskrnl/ex/time.c (NtQuerySystemTime): Ditto.

svn path=/trunk/; revision=4870
2003-06-07 16:16:39 +00:00
Eric Kohl c28184bd36 Added missing .cvsignore file. Patch by Michael Fritscher.
svn path=/trunk/; revision=4816
2003-06-01 18:18:02 +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
Eric Kohl 9526676d67 Removed unused NLS files.
svn path=/trunk/; revision=4755
2003-05-25 17:17:52 +00:00
Eric Kohl 6528cf1fdc Add experimental jamfiles (still buggy).
svn path=/trunk/; revision=4745
2003-05-23 22:43:03 +00:00
guido c1cf7ec993 commented out some duplicate defines
svn path=/trunk/; revision=4729
2003-05-19 19:42:30 +00:00
Eric Kohl f1d44624af Fixed wrong argument order.
svn path=/trunk/; revision=4718
2003-05-18 19:37:20 +00:00
Emanuele Aliberti 79780a3bcd KERNEL32.OpenConsoleW interface changed a proposed by KJK:Hyperion.
svn path=/trunk/; revision=4693
2003-05-16 20:33:15 +00:00
Gé van Geldorp 4d7b93456f Fixes to GetFullPathNameA and RtlGetFullPathName_U by Tim Jobling
svn path=/trunk/; revision=4648
2003-05-06 06:49:57 +00:00
Emanuele Aliberti 38056aff4c KERNEL32.OpenConsoleW() implemented.
svn path=/trunk/; revision=4646
2003-05-05 19:58:27 +00:00
Gé van Geldorp 340ee78475 Fix SetThreadPriority()
svn path=/trunk/; revision=4626
2003-04-30 22:00:41 +00:00
Gé van Geldorp 78a50b48b4 All IsBadXxxxPtr return values were backward (TRUE when they should be
FALSE and vv.)

svn path=/trunk/; revision=4618
2003-04-29 22:39:57 +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
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
Gé van Geldorp 01a868d4b8 Remove SetLastErrorByStatus, since it's no longer needed (it is a macro
now) and is giving compile errors

svn path=/trunk/; revision=4590
2003-04-26 12:50:56 +00:00
Gé van Geldorp 1e0a179dd4 FileNameLength and ShortNameLength are in bytes, adjust offset for writing
terminating NUL character accordingly

svn path=/trunk/; revision=4587
2003-04-26 08:56:50 +00:00
KJK::Hyperion b9269e59c8 SetLastErrorByStatus() now a macro, for binary compatibility with Windows
svn path=/trunk/; revision=4583
2003-04-26 00:25:01 +00:00
Gé van Geldorp aac3b7cd7b Exclude dependency files from CVS operations
svn path=/trunk/; revision=4559
2003-04-20 19:54:51 +00:00
Gé van Geldorp 628cc3fad9 Simple implementation of GetCPInfo
svn path=/trunk/; revision=4557
2003-04-20 19:42:11 +00:00
Gé van Geldorp ff17fbcf89 Fix GetVersion
svn path=/trunk/; revision=4547
2003-04-18 08:29:35 +00:00
Gé van Geldorp 857a0fc520 Have GetACP() return something sensible
svn path=/trunk/; revision=4545
2003-04-18 08:26:50 +00:00
KJK::Hyperion 1bd4ae1455 - fixed definition of IO_COUNTERS structure to make it binary compatible with Windows (and make EPSAPI enumerate threads correctly on Windows)
- cleaned up some makefiles, added dependency tracking
 - tlist now uses EPSAPI, and, incidentally, a bug has also been fixed

svn path=/trunk/; revision=4535
2003-04-14 01:19:08 +00:00
Gé van Geldorp 71c3c7c1cc Fix named resource handling and LoadString by d_layer
svn path=/trunk/; revision=4520
2003-04-10 19:12:15 +00:00
Gé van Geldorp 2602dec603 Improve (hardware) exception handling and reporting
svn path=/trunk/; revision=4514
2003-04-07 23:10:08 +00:00
KJK::Hyperion 323478bacf Forgot to remove this
svn path=/trunk/; revision=4476
2003-04-02 02:09:28 +00:00
KJK::Hyperion 4e0c54a3b8 Finalized my previous kernel32.dll patch - please test OutputDebugString
svn path=/trunk/; revision=4475
2003-04-02 00:23:12 +00:00
KJK::Hyperion 870f594d75 RtlRunDecodeUnicodeString & RtlRunEncodeUnicodeString patch finalized
svn path=/trunk/; revision=4474
2003-04-02 00:06:00 +00:00
KJK::Hyperion 647129da1f - debugging support APIs moved into their own directory
- reversed the Debug Monitor protocol, implemented OutputDebugString accordingly
 - added a handful of new functions introduced in NT 5.1, either stubbed out or implemented

svn path=/trunk/; revision=4461
2003-03-31 22:28:59 +00:00
Hartmut Birr b47552e96f - Do not create a console for GUI applications.
svn path=/trunk/; revision=4436
2003-03-26 22:11:27 +00:00
Gunnar Dalsnes d3c97ea09d init. change notification work
svn path=/trunk/; revision=4416
2003-03-23 19:51:11 +00:00
Hartmut Birr 52b9204b29 - Extract the correct search pattern and do not interpret '.' or '..'
at the end of the pattern as path (InternalFindFirstFile).

svn path=/trunk/; revision=4410
2003-03-23 10:48:14 +00:00
Hartmut Birr d7d389bf60 - Fixed the length parameter for calling RtlGetCurrentDirectory_U (GetCurrentDirectoryW).
svn path=/trunk/; revision=4409
2003-03-23 10:46:59 +00:00
Eric Kohl 68c3b158fc GetFileAttributes() and SetFileAttributes() must use NtOpenFile() to open directories too.
svn path=/trunk/; revision=4404
2003-03-23 04:01:16 +00:00
Gunnar Dalsnes ed69e0431b LoadResource crashed with NULL hModule
svn path=/trunk/; revision=4383
2003-03-21 00:20:41 +00:00