- remove assertions from the process callout checking that ppiCurrent->rpdeskStartup and ppiCurrent->hdeskStartup are valid. This can happen in case we fail to open the initial desktop or window station
svn path=/trunk/; revision=55726
- Try to fix reset bugs in my code and remove hacks
- Don't clear extra bits when acknowledging a port connect status change
[USBOHCI]
- Code cleanup
- No functional change
svn path=/trunk/; revision=55725
- Fix a crash in KiSystemCall that was caused because PsConvertToGuiThread may have switched to a large kernel stack, but still returned with failure because win32k did not succeed. To fix it reload the trap frame after the call before checking for success.
svn path=/trunk/; revision=55724
[CSRSRV]: Add special handling for certain messages (similar to how "Reply" is used in CSRSRV2) so that we don't keep replying to the wrong thead. For example, during an ExitProcess, special handling is needed at the end of the loop.
[CSRSRV]: Remove the last few remaining legacy process management function and use the correct CsrLock/Unlock APIs instead. No longer leak references for every process like crazy. Fully manage proc/thread/session reference counts now.
At this point it looks like there might just be one issue left before this thing works right (minus potential regressions due to missed hacks).
svn path=/trunk/; revision=55718
[CSRSRV/kERNEL32]: Switch to using the Windows CSRSS message structure for a new process, minus the bInheritHandles field which we still support for ReactOS compatibility.
[CSRSRV]: Port CsrCreateProcess from CSRSRV2, rewrite CsrSrvCreateProcess to use this API, and add required ReactOS compatibility hacks. A lot of stuff is still not supported, but the minimum (ie: previous ReactOS functionality) has been maintained during the transition. Processes are now tracked correctly, but there are still refcount leaks (known, to be fixed later).
Will let this breathe for a bit now to catch regressions. Work can now continue back on the kernel32 side while that happens.
svn path=/trunk/; revision=55711
[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
- 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
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
- Fix regressions which resulted in hang after reseting device
- Introduced in revision 55662
- Tested in VBox + Mass Storage Device
svn path=/trunk/; revision=55679
[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
- 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
- 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