Commit graph

22997 commits

Author SHA1 Message Date
Alex Ionescu be2a6c6ee3 - Add support for mapping the client section in NtAcceptConnectPort.
svn path=/trunk/; revision=24678
2006-10-30 16:54:45 +00:00
Alex Ionescu bf01f1f77c - Fix parameter checks in NtAcceptConnectPort.
- Make CSRSS properly fill out the ServerView structure's length so that it can be validated by the kernel.

svn path=/trunk/; revision=24677
2006-10-30 16:50:20 +00:00
Alex Ionescu a5aaf04a27 - Add support for secure LPC. However, we always return success atm because SeQueryInformationToken is not implemented. (Someone needs to refactor NtQueryInformationToken).
svn path=/trunk/; revision=24676
2006-10-30 16:45:54 +00:00
Alex Ionescu 91c97b2944 - Add support for Client/RemoteView in NtSecureConnectPort. Still lacking support for SID (needed for Csr)
svn path=/trunk/; revision=24675
2006-10-30 16:39:19 +00:00
Alex Ionescu 560282ce30 - Add correct calls to NtAcceptConnectPort if NTLPC is used. Now we freeze because CSRSS uses client/server views so I have to implement that.
svn path=/trunk/; revision=24674
2006-10-30 16:21:21 +00:00
Alex Ionescu 9eeadde533 - Implement NtRequestWaitReplyPort. This is a simple implementation that doesn't support Callback LPC Messages yet (Since we don't make use of them). SMSS can now send API messages on the Sb Port.
- With these APIs we now have a skeleton NTLPC that is fully NT-compatible. Thanks to ea's (Emanuele)'s smss work which he strived to make portable, building with NTLPC = 1 will also build a compatible smss that now works.
- CSRSS requires some changes since it was not written to be NTLPC portable.

svn path=/trunk/; revision=24673
2006-10-30 14:50:31 +00:00
Alex Ionescu 7000c5a210 - Implement NtSecureConnectPort so that clients can connect to SMSS. Does not yet support actual secure connections (with a SID) and will fail those requests. Also doesn't support memory-mapped LPC yet.
svn path=/trunk/; revision=24672
2006-10-30 14:46:56 +00:00
Alex Ionescu b14168c73c - Implement NtCompleteConnectPort. SMSS can now completely accept new incoming connections.
svn path=/trunk/; revision=24671
2006-10-30 14:45:07 +00:00
Alex Ionescu ed9d7c1816 - Implement NtAcceptConnectPort. This is a naive implementation that doesn't support memory-mapped LPC yet (since it's not used by SMSS). Such LPC messages will hit an ASSERT for now (when they do, I'll implement the missing functionalitY).
svn path=/trunk/; revision=24670
2006-10-30 14:44:05 +00:00
Alex Ionescu 2624bc881d - Implement NtReplyWaitReceivePortEx (And LpcpSave/FreeDataInfoMessage and LpcpMoveMessage). SMSS can now respond to connection attempts.
svn path=/trunk/; revision=24669
2006-10-30 14:42:07 +00:00
Alex Ionescu fa1547f01d - Implement NtListenPort as a wrapper around NtReplyWaitReceivePort that only listens for connection requests. SMSS can now do this.
svn path=/trunk/; revision=24668
2006-10-30 14:32:18 +00:00
Alex Ionescu 850c098196 - Implement LpcpCreatePort (And LpcpInitializePortQueue). SMSS can now create the Sb API Port.
svn path=/trunk/; revision=24667
2006-10-30 14:30:20 +00:00
Alex Ionescu 86a52afde3 - Add lpc\ntlpc directory when NTLPC = 1.
- Add function stubs in appropriate files.
- Implement NtConnectPort (stub to NtSecureConnectPort). Implement NtReplyWaitReceivePort (stub to NtReplyWaitReceivePortEx). Everything else is unimplemented.
- Implement LpcpInitSystem and object callbacks LpcpDeletePort and LpcpClosePort.
- Add internal lpc.h header.

svn path=/trunk/; revision=24666
2006-10-30 14:28:50 +00:00
Alex Ionescu 8d1e84dfd6 - Implement the rest of Hard Error support.
- Kernel support is complete (except temporary LPC hack), and CSRSS properly receives the event and sends it off to win32csr's hard error handler (much like on NT). However, the handler doesn't call NtUserHardErrorControl nor do much of the complex sequence of events that NT does, instead, we only display a hello-world style message box. Anyone up for implementing the rest is welcome.

svn path=/trunk/; revision=24665
2006-10-30 14:20:45 +00:00
Alex Ionescu 1a98439492 - SMSS: Send QOS structure when creating new ports, it's not optional on NT LPC. Send maximum port length when creating new ports, it's not optional on NT LPC. Create 2 listening threads on NTLPC, instead of just one. [AUDIT: Unlock smlib, it's fully internal and specific to ROS without any relationship to NT. The author used clean-room tests and documentation].
- Fix various LPC structures in the NDK. Fix some prototypes too.
- Don't export PEPORT or PLPCP_PORT_OBJECT outside of /lpc and use PVOID isntead.
- Add a new RBUILD setting called NTLPC, which enables NTLPC when turned on.

svn path=/trunk/; revision=24664
2006-10-30 14:17:37 +00:00
Johannes Anderwald 48ffe89726 - zero complete buffer
- increase buffer when reading more data than current capacity

svn path=/trunk/; revision=24663
2006-10-30 12:58:35 +00:00
Christoph von Wittich a1de6893f7 -force include of warning.h from WDK
-removed CRT_SECURE_NO_DEPRECATE because it is declared in warning.h
-set warning level to /W3
-set calling convention to stdcall
-use nasmw for asm files

svn path=/trunk/; revision=24662
2006-10-30 12:53:25 +00:00
Johannes Anderwald 963c6260b1 - use ReactOS_Debug as a default os when DBG && unattended setup mode is defined
- set timeout to zero in unattended mode && DBG defined

svn path=/trunk/; revision=24661
2006-10-30 12:41:17 +00:00
Thomas Bluemel bcf2a300f2 Implement GetTickCount64
svn path=/trunk/; revision=24660
2006-10-30 11:56:28 +00:00
Christoph von Wittich e343b07d1f now it is possible to build bootcd and bootcdregtest with the same tree (without changing any files)
svn path=/trunk/; revision=24659
2006-10-26 08:45:16 +00:00
Alex Ionescu ef31ab5c96 - Make CSRSS register the default hard error port on startup.
- Stubplement the System Hard Error handler (it simply bugchecks)
- Fully implement ExRaiseHardError when called from user-mode so that the strings and parameters are properly captured into user-mode memory.
- Almost completely implement ExpRaiseHardError which is responsible for actually doing the error. However, ROS LPC is screwed up so sending the LPC Message crashes since the port isn't in a listening state or something.
- Would appreciate some advice on how to get the LPC message to CSRSS.
- Fix Get/SetErrorMode. The Native API uses an inverted value of SEM_FAILCRITICALERRORS, so this must be handled in win32.
- Cleanup formatting of RaiseException, and only normalize the paramter count if we're actualy going to use it.
- Implement LpcRequestWaitReplyPort as a big hack, but it should work.

svn path=/trunk/; revision=24658
2006-10-26 04:55:34 +00:00
Alex Ionescu 6d56cb39a6 - Fix dozens of missing typecast errors.
- Other MSVC/WDK compatibility fixes.

svn path=/trunk/; revision=24657
2006-10-26 01:49:51 +00:00
Martin Fuchs 3dbb7d20de add build script
svn path=/trunk/; revision=24656
2006-10-25 21:10:38 +00:00
Martin Fuchs 52ca28450e added GCC compatible chinese resource file translation of Larry Li <larryli@qq.com>
svn path=/trunk/; revision=24655
2006-10-25 20:58:04 +00:00
Martin Fuchs cc6d35abef rename explorer-cn.rc to explorer-cn-msvc.rc (MSVC specific resource file encoding)
svn path=/trunk/; revision=24654
2006-10-25 20:54:46 +00:00
Christoph von Wittich a94c4a796e fix some issues when reading from a named pipe
fix a typo
terminate qemu at exit (when using named pipes)

svn path=/trunk/; revision=24653
2006-10-25 20:02:01 +00:00
Alex Ionescu 6497d295c3 - Add some missing/internal definitions to proper headers.
- Get rid of FLUSH_TLB macros and use KeFlushCurrentTb and the MSVC_compatible instrinsic __invlpg;
- Fix some prototypes.
- Fixed unsigned/signed mismatches.
- Fix SEH usage in ExAllocatePoolWithQuotaTag.

svn path=/trunk/; revision=24652
2006-10-25 18:23:45 +00:00
Alex Ionescu a900757d83 - Implement more of the Ke386 ASM macros for MSVC.
- Remove custom Set/Get Cr macros and use MSVC-compatible __read/__writecrX
- Remove custom WbInvd macro and use MSVC-compatible __wbinvd.

svn path=/trunk/; revision=24651
2006-10-25 17:15:11 +00:00
Alex Ionescu b5e25167e2 - Move all ASM internal intrinsics to intrin_i.h. Request for KJK::Hyperion/hackbunny to look at the GCC ones and optimize/fix them up.
- Add MSVC versions for some of them (not yet complete).
- Fix the fact that KeGetLocalDescriptorTable was setting the LDT instead of retrieving it.
- Fix bug in LIST_FOR_EACH and LIST_FOR_EACH_SAFE which was setting the flink to NULL instead of checking if the flink is NULL. One more reason these damned macros should've never been used.
- Use MSVC-intrinsics when applicable (_disable/_enable, etc).
- Fix JOB_SET_ARRAY problems.
- Fix buffer overflow in SystemProcessInformation QSI_DEF.
- Fix some broken compares/arithmetic to due to lack of parens.
- Add some ASSERTS to some unknown functions that make pointer assumptions.

svn path=/trunk/; revision=24650
2006-10-25 16:37:46 +00:00
Christoph von Wittich 6f17cc84f7 -debug info can now be read from a pipe
-fixed a typo
-terminate the qemu process on linux

svn path=/trunk/; revision=24649
2006-10-25 16:02:47 +00:00
Christoph von Wittich 2aceefe1a5 use TCHAR instead of WCHAR
svn path=/trunk/; revision=24648
2006-10-25 12:49:35 +00:00
Christoph von Wittich 94663d29ba fix SYSREG_CHECKPOINT:USETUP_COMPLETE
svn path=/trunk/; revision=24647
2006-10-25 12:29:47 +00:00
James Tabor e4ee4f1bab Commit tmp patch by dralnix, fixes Rev 24626 Breaks Linux Build, and windows build.
svn path=/trunk/; revision=24646
2006-10-25 01:30:19 +00:00
Johannes Anderwald 9529d06636 - add an checkpoint for the system regression tool
svn path=/trunk/; revision=24645
2006-10-24 20:21:30 +00:00
Christoph von Wittich 2da90d7544 -added -l parameter to list all available tests
-when no config file is specified use sysreg.cfg as default
-updated help text

svn path=/trunk/; revision=24644
2006-10-24 19:59:27 +00:00
Johannes Anderwald 8c625a375a - fix string define mess
svn path=/trunk/; revision=24643
2006-10-24 11:45:21 +00:00
Johannes Anderwald 5e8e6f57b6 - set svn:eol-style properties
- update makefile
- fix warning

svn path=/trunk/; revision=24642
2006-10-24 11:27:23 +00:00
Johannes Anderwald 985cb41a59 - fix typo in config file
- implement ROSBOOT_CRITICAL_APP
- implement a class which is responsible for file reading
- 

svn path=/trunk/; revision=24641
2006-10-24 11:21:17 +00:00
Alex Ionescu bca3708172 - Optimize PsGetCurrentProcess as well.
svn path=/trunk/; revision=24640
2006-10-23 22:07:45 +00:00
Alex Ionescu edaa6996f4 - Properly implement inline versions of KeGetCurrentThread and KeGetPreviousMode/ExGetPreviousMode, as well as KeGetPcr. This should significantly increase performance. (KeGetPreviousMode is reduced to 2 lines of code instead of 15 lines with 2 expensive jumps).
svn path=/trunk/; revision=24639
2006-10-23 22:01:25 +00:00
Alex Ionescu 2dae9ef970 - Fix/add some remaining prototypes.
- Add all the Nt functions to sysfuncs.lst and fixup some entries which were out-of-order. Unless I skipped anything (might've skipped 1 or 2 APIs), we should now have the same system call table as Windows 2003 SP1 (useful for my testing of ntdll.dll inside Windows).

svn path=/trunk/; revision=24638
2006-10-23 21:28:17 +00:00
Alex Ionescu 2e1f5d46f3 - Add some missing definitions to our NTIFS.h.
svn path=/trunk/; revision=24637
2006-10-23 21:24:16 +00:00
Alex Ionescu 57a9accaa9 - Add NtApphelpCacheControl, NtFilterToken (WARNING: PATENTED. TAKE CARE WHEN IMPLEMENTING).
- Add all the recently added functions to their proper place in the NDK.

svn path=/trunk/; revision=24636
2006-10-23 21:19:15 +00:00
Alex Ionescu 4ccf5bf0a4 - Implement NtSetEventBoostPriority, NtGetCurrentProcessorNumber, NtQueryPortInformationProcess, NtWaitForMultipleObjects32.
svn path=/trunk/; revision=24635
2006-10-23 20:49:52 +00:00
Alex Ionescu 20cab2c593 - Should fix the build.
svn path=/trunk/; revision=24634
2006-10-23 20:21:08 +00:00
Alex Ionescu 0df736c010 - Add NtGetWriteWatch, NtResetWriteWatch.
- Add NtCreateJobSet and define JOB_SET_ARRAY.

svn path=/trunk/; revision=24633
2006-10-23 18:35:13 +00:00
Alex Ionescu 0b311bdf68 - Add NtCreateKeyedEvent, NtOpenKeyedEvent, NtReleaseKeyedEvent, NtWaitForKeyedEvent.
svn path=/trunk/; revision=24632
2006-10-23 18:25:23 +00:00
Alex Ionescu 1bf94f2a3a - Add NtEnumerateSystemEnvironmentValuesEx, NtQuerySystemEnvironmentValueex, NtSetSystemEnvironmentValueEx.
- Fix some build brtakage.

svn path=/trunk/; revision=24631
2006-10-23 18:21:31 +00:00
Alex Ionescu 03aeec584e - Add NtGetDevicePowerState, NtIsSystemResumeAutomatic, NtRequestWakeupLAtency, NtSetThreadExecutionState.
svn path=/trunk/; revision=24630
2006-10-23 18:16:24 +00:00
Alex Ionescu e46732dfc8 - Add NtAllocateUserPhysicalPages, NtMapUserPhysicalPAges, NtMapUserPhysicalPagesScatter, NtFreeUserPhysicalPages.
- Add NtAreMappedFilesTheSame.

svn path=/trunk/; revision=24629
2006-10-23 18:12:12 +00:00