- apc.c -> Also multiple optimizations to use the APC lock instead of the full-fledged dispatcher lock.
- gate.c -> Use APC lock as well, the full dispatcher lock isn't required because a thread can only wait on one and only one gate.
- process.c -> Optimize the code to use the Process and/or APC lock instead of the dispatcher lock. Also delay acquiring the locks after some checks, to make the exit paths simpler.
- More fixes are teh needed.
svn path=/trunk/; revision=24038
- Update KeSetAFfinityThread, KeSetPriorityThread with new locks and assertions (plus the current ROS scheduler hack).
svn path=/trunk/; revision=24034
- Update KeSetIdealProcessorThread to properly do Ideal CPU logic instead of blindgly setting it (most importantly, respect UserIdealProcessor and SystemAffinityActive seettings).
svn path=/trunk/; revision=24033
- Stargint reorganizing some public functions to the bottom of the file.
- Don't hold lock during KeSetKernelStackSwapEnable.
svn path=/trunk/; revision=24030
- Update KeFreezeAllThreads to use the Process and APC In-Stack Queued Spinlock.
- Update KeTerminateThread to use the Process Lock. Call KiRundownThread to cleanup the NPX thread. Add some assertions for Stack in/out-paging. Use KiSetThreadSwapBusy for proper SMP vs UP building.
- NUMA Node semantics in KeStartThread only need to be done for CONFIG_SMP builds, so #ifed them appropriately. Also made it use the Process In-Stack QSL.
svn path=/trunk/; revision=24029
- Implement KeAcquireInStackQueuedSpinLockRaiseToSynch for UP systems.
- Implement KiAcquireApcLock, KiAcquireApcLockAtDpcLevel, KiReleaseApcLock, KiReleaseApcLockFromDpcLevel.
- KeResumeThread, KeSuspendThread, KeAlertThread, KeForceResumeThread, KeTestAlertThread, KeAlertResumeThread are now the first to use the new APC In-Stack Queued Spinlock for sychronization.
svn path=/trunk/; revision=24028
- Also fix KeSetAffinityThread to return the old affinity, instead of NTSTATUS and move NtYieldExecution from Ps to Ke, and move NtDelayExecution to wait.c
- No code changes.
svn path=/trunk/; revision=24024
- Finally get rid of duplicated relocation code in ntdll by using the relocate function from RTL and enable/disable protection
- Some improvements added to RTL's relocation function, it's split up into two functions now
svn path=/trunk/; revision=24020
It did not catch the last input tick from keyboard or mouse.
This code is not tested in reactos, but should work.
See issue #1753 for more details.
svn path=/trunk/; revision=24005
- PE loading/relocating/fixups/etc is greatly documented in a number of sources (e.g. good russian-language article - http://www.uinc.ru/articles/41/, it has links to a different media describing loading process of PE)
- Nothing suspicious found in the code itself
svn path=/trunk/; revision=23987
Added S_OK and S_FALSE
modified Resources/ntstatus.xml
Added all possible STATUS_WAIT_XX codes as STATUS_WAIT_0 + XX
modified TechBot.Console/App.config
Don't use hard-coded paths, please!
modified TechBot.Library/ErrorCommand.cs
New and improved !error command, now performs heuristics to catch all possible or likely uses
modified TechBot.Library/HresultCommand.cs
Removed useless field
modified TechBot.Library/NumberParser.cs
Made a couple of methods static
modified TechBot.Library/TechBotService.cs
Disable !api until it fails gracefully
svn path=/trunk/; revision=23984