Alex Ionescu
7991c9c192
[CSRSRV]: Let's see if touching the CSR header file kills CSRSRV again. Re-enable the #if'0ed code that merely added a few fields to the create process structure. I think we no longer have weird fucked up dependencies on exact structure byte sizes. I hope.
...
svn path=/trunk/; revision=55708
2012-02-19 10:19:16 +00:00
Alex Ionescu
8306172b6a
[CSRSRV]: Properly implement CsrSrvCreateThread now that the worker thread issue is fixed. CSR_THREAD's are now created for everyone, and CSRSS succesfully duplicates their thread handle! Also, while connections from unknown threads are still allowed (in case I missed something), we do warn on the console about these guys now.
...
svn path=/trunk/; revision=55707
2012-02-19 10:12:14 +00:00
Alex Ionescu
07ea12ee5b
[RTL/NTDLL/KERNEL32]: Rtl provides worker queue and timer queue functionality, which queues a worker thread associated with a caller-supplied callback. In Windows, Rtl by default calls RtlCreateUserThread, but as soon as kernel32 loads, it's DllMain calls an exported function RtlSetThreadPoolStartFunc which changes that default to a special Base function that calls CreateRemoteThread instead. The net result is that Win32 processes using the Rtl functionality get their threads properly registered with CSRSS. In ReactOS, this did not happen, so when those threads called into CSRSS, CSRSS had no CSR_THREAD structure/state for them, which is why CsrCreateThread (and the API loop) are so badly hacked. This commit implements RtlSetThreadPoolStartFunc, implements the kernel32 base functions which wrap CreateRemoteThread, and implements the rtl functions which wrap RtlCreateUserThread. Services, Setup, and any ReactOS application using RPC now have the worker threads correctly registered.
...
svn path=/trunk/; revision=55706
2012-02-19 10:06:31 +00:00
Alex Ionescu
55e9cddf05
[CSRSRV]: Take a refernece to the client thread since we are dereffing it...
...
svn path=/trunk/; revision=55705
2012-02-19 10:00:47 +00:00
Alex Ionescu
f34ec165f6
[CSRSRV]: Port CsrLockedReferenceThread from CSRSRV2.
...
svn path=/trunk/; revision=55704
2012-02-19 09:57:00 +00:00
Alex Ionescu
131b6d2ea6
[CSRSRV2]: Bugfix, don't dereference the thread instead of referencing it!
...
svn path=/trunk/; revision=55703
2012-02-19 09:54:41 +00:00
Johannes Anderwald
83e2f62323
[USBSTOR]
...
- Fix bugs introduced in rev 55695
svn path=/trunk/; revision=55702
2012-02-19 09:45:54 +00:00
Thomas Faber
f9a5be185d
[NTOSKRNL]
...
- Make Trap debugging usable again. Suggested by Stefan.
svn path=/trunk/; revision=55701
2012-02-19 08:38:09 +00:00
Alex Ionescu
59ac9cae89
[CSRSRV]: Fix scenario when a new thread is being created from within CSRSRV and it could not register itself due to the new server-to-server support. Fixes CTRL-C and using the "X" button in a console window to close it, which had regressed since the server-to-server commit.
...
svn path=/trunk/; revision=55700
2012-02-19 07:22:37 +00:00
Alex Ionescu
7d4a765fe0
[CSRSRV]: I confused ShutdownCallback with DisconnectCallback. What win32csr needs is actually the later. Fixed that. Also removed CallProcessDeleted since we already call the Disconnectcallback from CsrRemoveProcess, which we do call in CSRSRV. Enabled the code that was disabled.
...
svn path=/trunk/; revision=55699
2012-02-19 06:44:09 +00:00
Alex Ionescu
002ef4e66b
[CSRSRV]: Switch to the CSRSRV2 model of having a dynamic amount of threads handling CSRSS requests depending on how many are deadlocked, instead of creating a thread for every single client. CSRSRV now has about 2 API threads instead of 16.
...
svn path=/trunk/; revision=55698
2012-02-19 06:32:17 +00:00
Alex Ionescu
86597860d2
[CSRSRV]: No longer accept connections from unknown processes.
...
svn path=/trunk/; revision=55697
2012-02-19 04:18:33 +00:00
Alex Ionescu
e403a8e2e1
[CSRSRV/WIN32CSR]: Remove all the code that was setting new values for DataLength/TotalLength in the LPC header. I have no idea why the code was doing this. I suspect it's partly to blame for why changing the structures of the CSRSS messages caused bizarre failures. Perhaps this behavior was needed with the original winsock-based LPC implementation that I rewrote back in 2006?
...
svn path=/trunk/; revision=55696
2012-02-19 03:51:36 +00:00
Johannes Anderwald
53bd8f1e21
[USBSTOR]
...
- Queue inquriry & format capacity command with an irp
svn path=/trunk/; revision=55695
2012-02-19 02:47:35 +00:00
Alex Ionescu
fa51806949
Missed these guys.
...
svn path=/trunk/; revision=55694
2012-02-19 02:25:31 +00:00
Alex Ionescu
d68458a259
[NTOSKRNL]: Implement ThreadBreakOnTermination for the SET case.
...
Cleanup some dbgprints.
svn path=/trunk/; revision=55693
2012-02-19 02:24:52 +00:00
Alex Ionescu
37d7c2aa03
[CSRSRV/WIN32CSR]: Make Win32CSR much closer to a real CSRSS Server DLL than before, and make calling the Server callbacks compatible with the correct CSR_SERVER_DLL structure. API dispatching is still all wrong, though.
...
svn path=/trunk/; revision=55692
2012-02-19 01:53:58 +00:00
Johannes Anderwald
6e38e0e13c
[USBEHCI]
...
- Remove assertion which no longer holds
- Delete old queue head after a new queue head has been sucessfully fetched
svn path=/trunk/; revision=55691
2012-02-19 00:16:50 +00:00
Alex Ionescu
727c97602e
[NTOSKRNL]: When you rewrite my ASM code, get it right, dumbasses. Thanks Stefan.
...
svn path=/trunk/; revision=55690
2012-02-19 00:08:50 +00:00
Alex Ionescu
1966e04ee2
[CSRSRV]: Remove a bunch of hacks and don't attach the shared section when CSRSS is connecting to itself (which happens because our Win32k does that). Things are cleaner now :)
...
svn path=/trunk/; revision=55689
2012-02-19 00:04:05 +00:00
Alex Ionescu
28f0bba7b4
[NTOSKRNL]: Implement SeCheckPrivilegedObject and call it in the two cases where it's needed (when changing process priority) instead of spamming the debug log that we're not doing the check.
...
[NTOSKRNL]: Implement ProcessUserModeIOPL info level (and implement Ke386SetIopl) instead of spamming we can't do this.
[NTOSKRNL]: Implement ProcessExecuteOptions info level (and implement MmSetExecuteOptions) instead of spamming we can't do this.
[NDK]: Add NoExecute Flags based on ProcessHacker.
No longer spammed to death for every process all the time.
svn path=/trunk/; revision=55688
2012-02-18 23:59:31 +00:00
Johannes Anderwald
656f87b67c
[USBOHCI]
...
- Don't preserve command status values when notifying controller of a new bulk / control endpoint
- Abort pipe & reset data toggle in the sync reset routine
- Allocate interface descriptors and endpoint handles when creating the configuration descriptor
- Implement routine for allocating chained descriptors
- Implement data toggle for bulk&interrupt transfers
- Mass storage devices should now work in real hardware with OHCI controller
- Tested in real hardware with NEC Corporation USB [1033:0035] (rev 43)
svn path=/trunk/; revision=55687
2012-02-18 23:23:13 +00:00
Amine Khaldi
87a7ba545c
* Get rid of $Id$ usage and the related svn property.
...
svn path=/trunk/; revision=55685
2012-02-18 22:57:24 +00:00
Alex Ionescu
3bd63cad35
[KERNEL32]: Try to connect to the Console Server when initializing console support. For normal apps, won't do anything since ConnectionInfo == NULL (to hack around the fact there's no server in ReactOS for this), but for DLLs running inside of CSRSS, because we now support Server-to-Server, the call will detect that and not fail. This fixes the "failed to give us console" error when kernel32 inside of csrss tries to get a console (which it shouldn't). There's still user32 to cleanup.
...
svn path=/trunk/; revision=55684
2012-02-18 22:29:46 +00:00
Stefan Ginsberg
c718e04922
[NTOSKRNL]
...
KdInitSystem may be called after system set up if /CRASHDEBUG is enabled and a bugcheck or NMI occurs. With the INIT discard/delete now implemented, and KdInitSystem marked for INIT, this would have resulted in a crash...during a system crash, if /CRASHDEBUG had been enabled. Fun.
svn path=/trunk/; revision=55680
2012-02-18 13:39:08 +00:00
Johannes Anderwald
ab8f90859c
[USBOHCI]
...
- Fix regressions which resulted in hang after reseting device
- Introduced in revision 55662
- Tested in VBox + Mass Storage Device
svn path=/trunk/; revision=55679
2012-02-18 12:28:20 +00:00
Thomas Faber
c73d3138d4
[ADVAPI32]
...
- Fix buffer overflow in LookupAccountSidA
See issue #6752 for more details.
svn path=/trunk/; revision=55678
2012-02-18 12:00:50 +00:00
Alex Ionescu
e5f337a82b
[CSRSRV]: Port CsrCallServerFromServer (and hackplement a reactos-compatible implememntation) from CSRSRV2.
...
[CSRSRV/CSRSRV2]: Fix CsrLockProcessByPid -- it was skipping the root process itself, so requests coming from a CSRSS-hosted DLL would fail (which is exactly what server-to-server depends on).
[NTDLL]: Enable support for server-to-server calls!
Server-to-server calls work now, and one of the multiple mapping hacks is gone. User32 and kernel32 still need a bit of fixes to get rid of the other hacks, though. Also, Perf++.
svn path=/trunk/; revision=55677
2012-02-18 01:27:50 +00:00
Alex Ionescu
87a966228c
[NTOSKRNL]: And finally, the third part of Richard's patch, cleaned up and ready to go. This cleans up the INIT and SCN_MEM_DISCARDABLE sections from all drivers and the kernel. Reduces RAM usage by another 350KB on my test box.
...
svn path=/trunk/; revision=55676
2012-02-17 22:57:32 +00:00
Timo Kreuzer
69172a1b38
[FREELDR]
...
- Fix heap code for 64 bit (before someone asks: the reason to use ULONG_PTR instead of ULONG is warning free code without casts)
svn path=/trunk/; revision=55675
2012-02-17 17:22:14 +00:00
Jérôme Gardou
48cf74fcca
[NTOSKRNL/ARM3]
...
- remove useless code : Page Directories Entries are backed by ARM3 managed pages
svn path=/trunk/; revision=55674
2012-02-17 16:14:12 +00:00
Johannes Anderwald
301809cb8d
[KERNEL32]
...
- Fix error status of GetQueuedCompletionStatus, which should set the error to WAIT_TIMEOUT
- Fixes 4 failing winetests
- Patch by Samuel Serapion (samcharly_hotmail_com)
See issue #6907 for more details.
svn path=/trunk/; revision=55673
2012-02-17 16:11:40 +00:00
Jérôme Gardou
484671d6c8
[CMAKE]
...
- use quotes in reactos.dff for every platform.
Paths beginning with '.' are no longer seen as directives
svn path=/trunk/; revision=55672
2012-02-17 15:54:05 +00:00
Timo Kreuzer
4c5e2c71ec
[WIN32K]
...
Fix another bug in NtGdiSelectBitmap, where selecting the same bitmap a second time, would release the bitmap
svn path=/trunk/; revision=55671
2012-02-17 15:51:13 +00:00
Kamil Hornicek
04135b7ce4
[ROSAUTOTEST]
...
If the last chunk of the string sent to StringOut isn't a whole line and forcePrint is set to false, send back what's left after processing. The caller is then responsible for prepending that string next time it calls StringOut. Should fix the rest of debug log corruptions.
svn path=/trunk/; revision=55670
2012-02-17 12:31:32 +00:00
Johannes Anderwald
c0f7614fb0
[CDROM_NEW]
...
- Misc build fixes for mingw and msvc with cmake
svn path=/trunk/; revision=55669
2012-02-17 12:07:17 +00:00
Thomas Faber
3fec97b52e
[CABMAN]
...
- Fix MSVC build
svn path=/trunk/; revision=55668
2012-02-17 08:26:33 +00:00
Alex Ionescu
7313a0dacd
[NTOSKRNL]: This second part of Richard's patch implements MmFreeLoaderBlock, which results in 932KB less RAM being used on my 3rd stage test after first boot. It deletes the boot registry, NLS, and heap data.
...
svn path=/trunk/; revision=55667
2012-02-17 07:23:27 +00:00
Alex Ionescu
c21ab0f761
[NTOSKRNL]: This is kind of embarssing, but after doing a local grep for some of cgutman and zekflop's changes (respectively the patch that had added MmDeleteProcessPageDirectory, and the mshtml fix patch), I fell upon a .patch file. It included 3 memory-leak-fixing patches from richard that had been sent to me during his last days -- which, had I paid attention, would've fixed the MSHTML bug and the memory leaks months ago! I've tried my best to now re-integrate a portion of the patch (the other two portions deal with freeing the loader block, and freeing .INIT sections, and I will commit them later) with the current state of trunk. Some things that patch did, no longer seem to work, and I've commented where appropriate. But in general it does seem to dereference/delete some PTEs that had been left behind before (such as deleted TEBs, and deleted VA mappings). It no longer seems to be able to delete the root PDE nor the shared data page however (this worked in the original patch's timeframe). Zekflop, tkreuzer, please take a look. I hope this will set us on a better path!
...
svn path=/trunk/; revision=55666
2012-02-17 07:07:47 +00:00
Alex Ionescu
7cb7765a31
[WIN32CSR/CSRSRV]: Make the outdated CSR_PLUGIN architecture as close to the CSR_SERVER_DLL architecture as possible for easier migration later. Main changes are return values/number of parameters, importing csrsrv functions instead of using a manual export table, and other similar small changes. Also, add win32csr.dll to the registry command-line for CSRSS, but still load it hard-coded for now.
...
svn path=/trunk/; revision=55665
2012-02-17 05:15:13 +00:00
Cameron Gutman
03166cbd75
[CLASS2]
...
- Clear the DO_DEVICE_INITIALIZING flag on the new device objects
svn path=/trunk/; revision=55664
2012-02-17 04:34:10 +00:00
Cameron Gutman
5a766eeaac
[CLASS2]
...
- Store the registry path passed in ScsiClassInitialize to pass in ScsiClassAddDevice
svn path=/trunk/; revision=55663
2012-02-17 04:21:51 +00:00
Cameron Gutman
075cf8cdc9
[USBOHCI]
...
- Remove massive hacks from our port reset code
- We now wait for the reset complete interrupt instead of stalling 10ms and continuing
- Don't wait for a port to stabilize unless there's actually a device connected
[USBEHCI]
- Fix very long delay between setting the reset bit and clearing it
- Wait for the port to come back enabled before finishing the reset
- Don't wait for a port to stabilize unless there's actually a device connected
svn path=/trunk/; revision=55662
2012-02-17 03:45:46 +00:00
Johannes Anderwald
c1c3ea3ac8
[USBSTOR]
...
- Only send read format capacity when the device type is zero (direct access device)
- Add fixme
[INF]
- Fix issue
- USB CDROM installation now starts
svn path=/trunk/; revision=55661
2012-02-17 03:44:56 +00:00
Johannes Anderwald
1ead4da36a
[USBSTOR]
...
- Fix build
svn path=/trunk/; revision=55660
2012-02-17 03:04:32 +00:00
Johannes Anderwald
27f6cfc84e
[USBSTOR]
...
- Implement timer routine which checks for hung srbs, not yet activated
- Stop timer when the device is stopped
- Implement function to check if the attached device is a floppy device
- Implement function to send read format capacity request
- Implement missing hardware id / device id support for floppy
- Add retry count parameter for debugging purposes
- Tested in VBox + VmWare + RH
svn path=/trunk/; revision=55659
2012-02-17 03:02:14 +00:00
Alex Ionescu
918a786b67
[WIN32CSR]: link with CSRSRV in rbuild too.
...
svn path=/trunk/; revision=55658
2012-02-17 01:27:20 +00:00
Alex Ionescu
4cbb5ac02e
[CSRSRV]: Add a future hack.
...
svn path=/trunk/; revision=55657
2012-02-17 01:23:25 +00:00
Alex Ionescu
a83b8752d4
[WIN32CSR]: Link with CSRSRV.
...
svn path=/trunk/; revision=55656
2012-02-17 01:22:19 +00:00
Alex Ionescu
77dfdf0e87
[CSRSRV2]: formatting fix.
...
svn path=/trunk/; revision=55655
2012-02-17 01:21:35 +00:00