Commit graph

48439 commits

Author SHA1 Message Date
Timo Kreuzer
00502b9642 [FREELDR/HAL/NDK]
- Move some shared constants (HYPERSPACE_BASE, MM_HAL_VA_START, APIC_BASE) to NDK to avoid duplicating them, also fix wrong values for amd64
- Map the hal address space in amd64 freeldr
- Fix use of uninitialized variable (HighPart of PHYSICAL_ADDRESS) in HalpAcpiCopyBiosTable
- Fix some MSVC and amd64 warnings

svn path=/trunk/; revision=53709
2011-09-15 10:46:02 +00:00
Timo Kreuzer
679d1e828c [GDI32]
Improve GdiAllocBatchCommand formatting and fix MSVC warnings

svn path=/trunk/; revision=53708
2011-09-15 10:12:20 +00:00
Timo Kreuzer
19b8dfac16 [NTOSKRNL]
- Fix MSVC warning about signed/unsigned comparison.

svn path=/trunk/; revision=53707
2011-09-14 14:01:41 +00:00
Timo Kreuzer
16c957463f [SHELL32]
A DialogProc returns INT_PTR, not BOOL

svn path=/trunk/; revision=53706
2011-09-14 06:28:11 +00:00
Timo Kreuzer
57b01f1a06 [PSDK]
Use CHAR instead of char in STRRET structure (as documented in MSDN). Fixes compilation of shell32 with MSVC.

svn path=/trunk/; revision=53705
2011-09-13 21:20:46 +00:00
Timo Kreuzer
a6a01dd912 [HAL]
Fix amd64 build

svn path=/trunk/; revision=53704
2011-09-13 14:44:47 +00:00
Timo Kreuzer
ca9e3a9c67 [NTOSKRNL]
Fix a DPRINT

svn path=/trunk/; revision=53703
2011-09-13 13:28:49 +00:00
Amine Khaldi
3a93089ba7 [SHELL32]
* Merge r53700. Point 3 in bug 6481 was fixed by fixing the parser (at line 414) to use only ',' as the delimiter, to match Windows behavior.

svn path=/trunk/; revision=53702
2011-09-13 13:13:35 +00:00
Timo Kreuzer
744be47dde [NTOSKRNL]
Cleanup amd64/ke.h a bit, add KiUserTrap()

svn path=/trunk/; revision=53701
2011-09-13 13:12:38 +00:00
Timo Kreuzer
611d62ecb0 [NTOSKRNL]
Move x86 specific file trap_x.h into include/internal/i386

svn path=/trunk/; revision=53699
2011-09-13 12:53:50 +00:00
Eric Kohl
9c8386d2b6 [MSGINA]
- Call NotifyBootConfigStatus after a user has been logged-on successfully.
- Implement WlxIsLogoffOk.

svn path=/trunk/; revision=53698
2011-09-13 09:42:25 +00:00
Eric Kohl
5fe2e119f5 [MSPORTS]
Implement device removal.

svn path=/trunk/; revision=53697
2011-09-13 09:30:22 +00:00
Eric Kohl
3b374be2f7 [MSPORTS]
Implement ComDBResizeDatabase.

svn path=/trunk/; revision=53696
2011-09-12 14:24:24 +00:00
Timo Kreuzer
d28eae967a [HAL]
Implement lazy irql for APIC. This is useful for VMs, since APIC usually has high overhead due to the need of invoking the hypervisor on every irql raise and lower. With lazy irql we avoid that until absolutely neccessary. Note that we misuse the PCR's IRR field to save the current hardware irql. Its a huge performance boost (some parts take half the time), making APIC performance close to PIC performance on VBox. This is something that Windows doesn't have :)

svn path=/trunk/; revision=53695
2011-09-12 09:46:20 +00:00
Cameron Gutman
ff75ae1b72 [NTOSKRNL]
- Create a volatile device tree during 1st stage so the new HAL that's loaded in 2nd stage can do proper enumeration without phantom devices from the old HAL

svn path=/trunk/; revision=53694
2011-09-11 17:26:01 +00:00
Amine Khaldi
2817ba1e7e * Comment out some unused but set variables, remove some others.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53693
2011-09-11 16:56:56 +00:00
Cameron Gutman
15c8127658 [SCSIPORT]
- Remove a duplicate assignment

svn path=/trunk/; revision=53692
2011-09-11 15:40:01 +00:00
Amine Khaldi
6b9d48d482 * Comment out some unused but set variables, remove some others.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53691
2011-09-11 15:39:19 +00:00
Cameron Gutman
4076b77e1f [FREELOADER]
- Use a larger data type to iterate through the disk buffer to avoid an infinite loop with broken BIOSes

svn path=/trunk/; revision=53690
2011-09-11 15:32:15 +00:00
Cameron Gutman
5381c4af56 [WS2_32_NEW]
- Fix an error found by PVS Studio
[RAMDISK]
- Fix an error found by PVS Studio

svn path=/trunk/; revision=53689
2011-09-11 15:17:48 +00:00
Thomas Faber
758fe19cd0 [NTOSKRNL][RTL][DOC]
- Fix incorrect loop boundaries in the ARM version of MmCreateProcessAddressSpace. Spotted by Vincenzo Cotugno and cppcheck
- Correct outdated wineimport.cmd URL in README.WINE
- Assorted spelling and readability fixes

svn path=/trunk/; revision=53688
2011-09-11 11:47:28 +00:00
Thomas Faber
2b17fa159d [KMTESTS]
- Add support for guarded allocations, that can be used to detect buffer overruns
- Add GuardedMemory example test
- Add MmSection test with some basic parameter checks for MmCreateSection
- Fix some x64 build problems
- Update readme

svn path=/trunk/; revision=53687
2011-09-11 11:22:00 +00:00
Eric Kohl
0d4f432270 [SERVICES]
- Add optional asynchronous io code for service control pipes. This is disabled by default due to bugs in NPFS.
- Read service pipe timeout value from the registry.

svn path=/trunk/; revision=53686
2011-09-11 11:17:25 +00:00
Timo Kreuzer
1b9f1974ad [HAL]
- End the interrupt in HalpApcInterruptHandler and HalpDispatchInterruptHandler before calling the kernel, otherwise we would be stuck at high processor irql
- Improve HalEnableSystemInterrupt
- disable interrupts in HalpInitializeClock
=> APIC hal boots to desktop!

svn path=/trunk/; revision=53685
2011-09-11 09:34:50 +00:00
Timo Kreuzer
2aa7014184 [KDCOM]
Improve a debug print

svn path=/trunk/; revision=53684
2011-09-11 08:56:38 +00:00
Eric Kohl
36386adb24 [MUP]
Disable debug output.

svn path=/trunk/; revision=53683
2011-09-11 08:52:59 +00:00
Amine Khaldi
f904ba5cf9 * Missed some assignments in debug.c.
* Add a dummy allow_warnings() for msvc build.

svn path=/trunk/; revision=53682
2011-09-11 00:44:13 +00:00
Amine Khaldi
0864fd08d6 * Comment out some unused but set variables, remove some others.
svn path=/trunk/; revision=53681
2011-09-11 00:40:20 +00:00
Amine Khaldi
4e616754a5 * Fix some more unused but set variables.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53680
2011-09-10 23:54:02 +00:00
Timo Kreuzer
680bdcf253 [NTOSKRNL]
The handlers for unexpected interrupts that we generate from asm macros use a push instruction with an 8 bit operand to push the interrupt number on the stack. Now the 8 bit push has the unfortunate behaviour of sign extending to 32 bit. But since the assembler is smart (or at least thinks so) it will not generate such a push instruction for values larger than 0x7f. This resulted in 7 bytes long stubs in the range of 0x30 .. 0x7f and 10 bytes long stubs after that. To fix this 128 is substracted from the value and later readded in the common code path. A second issue arose, because the assembler would start to use 8 bit relative short jumps as soon as the target was less than 127 bytes away, which happened for some of the higher interrupts, which then had a smaller stub then the others. Fix this by moving the stubs up in the code further away from the target label, so that always 32bit relative jumps will be used. These problems didn't show up so far, since we used the PIC and interrupts in the range of 0x30 .. 0x40 and the code that relied on the stubs all having the same length was working well. This changes with an APIC based hal, where interrupts of much higher number are likely to be used.

svn path=/trunk/; revision=53679
2011-09-10 23:05:10 +00:00
Timo Kreuzer
0e5e391c4a Fix build (oh how I hate this mini_hal thing)
svn path=/trunk/; revision=53677
2011-09-10 21:56:07 +00:00
Amine Khaldi
74634a76e2 * Fix some unused but set variables. Brought to you by gcc 4.6.1.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53676
2011-09-10 21:31:09 +00:00
Timo Kreuzer
158c621c68 [HAL]
- Use a global variable HalpBuildType instead of a define when checking the BUILD (we don't recompile this code for SMP hal)
- Move registering IRQ2 out of the generic init code into HalInitializePICs
- Modify legacy HalpGetRootInterruptVector to use HalpIrqToVector and HalpVectorToIrql so it works with APIC, too

svn path=/trunk/; revision=53675
2011-09-10 18:58:01 +00:00
Thomas Faber
e5bc333825 [RBUILD]
- Add kmtests to the CD

svn path=/trunk/; revision=53674
2011-09-10 16:12:19 +00:00
Timo Kreuzer
459b5c212e [HAL/APIC]
- Implement HalpApcInterruptHandler, fix HalpDispatchInterruptHandler
- Insert a read to the APIC version register in ApicGetCurrentIrql(). This fixes inconsistencies between the internal APIC state and register reads/writes.
- Remove old hacks in ApicGetCurrentIrql() and ApicSetCurrentIrql
- Fix HalpVectorToIrql()
- read/write cr8 for the value of the TPR on amd64 builds
- Fix amd64 build

svn path=/trunk/; revision=53673
2011-09-10 15:55:15 +00:00
Thomas Faber
ac09e360bb [KMTEST]
- Load the driver from the application directory, not the current directory

svn path=/trunk/; revision=53672
2011-09-10 14:45:47 +00:00
Thomas Faber
454f222ade [ROSTESTS]
- Merge the Kernel Mode Test Suite Google Summer of Code project
- Happy testing, everyone ;)

svn path=/trunk/; revision=53671
2011-09-10 11:41:33 +00:00
Thomas Faber
abac3d72f3 [KMTESTS]
- Fix kmtest_.exe file naming in CMake

svn path=/branches/GSoC_2011/KMTestSuite/; revision=53670
2011-09-10 11:19:50 +00:00
Thomas Faber
34e64d7748 [KMTESTS]
- Skip the remaining tests that result in assertions
- Hide KeProcessor test, as it takes very long

svn path=/branches/GSoC_2011/KMTestSuite/; revision=53669
2011-09-10 10:48:07 +00:00
Thomas Faber
b37b73edf4 [NTOSKRNL/OB]
- Do not bugcheck in ObpCloseHandle if the handle is -1. Powered by kmtests

svn path=/trunk/; revision=53668
2011-09-10 10:41:57 +00:00
Thomas Faber
21494c6ffa [KMTESTS/OB]
- ObReference: add better tests for closing invalid handles

svn path=/branches/GSoC_2011/KMTestSuite/; revision=53667
2011-09-10 10:38:43 +00:00
Timo Kreuzer
50058d32a2 [HAL]
Add a hack to work around a bug in VBox: The APIC emulation requires an iret instruction following closely after writing the EOI register. Since we return from kernel mode traps with a jmp (yes you can return from an interrupt with a jmp!) the EOI is never triggered, making VBox believe we are still serving the interrupt and keeping the PPR on high level, preventing following interrupts. A small asm stub now does the work of both writing the EOI and doing an iret.

svn path=/trunk/; revision=53665
2011-09-09 21:10:07 +00:00
Ged Murphy
99530efcdd [DEVMGMT]
Add the treeview and resize data. It now somewhat resembles an app.

svn path=/trunk/; revision=53664
2011-09-09 19:10:11 +00:00
Ged Murphy
9ec05fbc97 [DEVMGMT]
Some main window work.

svn path=/trunk/; revision=53663
2011-09-09 18:52:52 +00:00
Amine Khaldi
859dd5c42a [SHELL32]
* Merge r53661.

svn path=/trunk/; revision=53662
2011-09-09 16:55:59 +00:00
Rafal Harabien
d18bfcff5e [WIN32K]
- Improve formating of input.c and keyboard.c

svn path=/trunk/; revision=53660
2011-09-09 16:17:02 +00:00
Rafal Harabien
5f3b37f429 [WIN32K]
- Don't use magic type values for IntMapVirtualKeyEx calls
- Fix a typo in ERR

svn path=/trunk/; revision=53659
2011-09-09 16:08:09 +00:00
Timo Kreuzer
4c5b0d11ab [HAL]
- Add a hack to ApicGetCurrentIrql and ApicSetCurrentIrql to work around a VBox bug
- call KeSetTimeIncrement after initializing the rtc clock
- calculate TSC frequency from the samples
- Fix a bug in KeStallExecutionProcessor

svn path=/trunk/; revision=53658
2011-09-09 15:42:59 +00:00
Rafal Harabien
da83700379 [USER32]
- Fix ole32:clipboard winetest regression

svn path=/trunk/; revision=53657
2011-09-09 15:24:14 +00:00
Giannis Adamopoulos
65bfc47fd6 [undocuser.h]
- Move definition of UpdatePerUserSystemParameters to undocuser.h

svn path=/trunk/; revision=53656
2011-09-09 14:13:04 +00:00