Commit graph

49719 commits

Author SHA1 Message Date
Timo Kreuzer
a78b493a6b [NTOSKRNL]
In PeFmtCreateSection don't use the ImageBase field of the ImageOptionalHeader directly, since it's different between PE32 and PE64. Use the ImageSectionObject->ImageBase field instead, which already contains the correct value.

svn path=/trunk/; revision=55446
2012-02-06 00:29:50 +00:00
Timo Kreuzer
83904f66db [NTOSKRNL]
- Add MM_HAL_VA_END and use it in MiAddHalIoMappings instead of making assumptions about the page tables
- Add MM_SHARED_USER_DATA_VA for x86
- use MM_SHARED_USER_DATA_VA in Mm to avoid ambiguities
- fix or comment out USER_SHARED_DATA in asm headers, as it should be the kernel mode address here
- set Teb->ExceptionList to NULL on amd64, it is used as a link to the Wow64 TEB, if any

svn path=/trunk/; revision=55445
2012-02-06 00:24:31 +00:00
Daniel Reimer
a10e76cc38 Massive rapps update. Almost anything revisited and corrected.
svn path=/trunk/; revision=55442
2012-02-05 21:15:01 +00:00
Giannis Adamopoulos
aac3d18763 [rosautotest]
- When rosautotest is launched, show how much time has past since the machine has started
- Also show how much time each individual test need to complete
- The purpose of this feature isn't to benchmark the os but to let us spot regressions regarding test time 

svn path=/trunk/; revision=55441
2012-02-05 20:56:21 +00:00
Giannis Adamopoulos
a423f34284 [win32k]
- load gpsi->dtCaretBlink and g_PaintDesktopVersion in sysparams.c
- Rename IntGdiGetLanguageID to UserGetLanguageID
- Remove some unused functions and definitions

svn path=/trunk/; revision=55439
2012-02-05 20:21:22 +00:00
Timo Kreuzer
440561287c [NTOSKRNL]
- Modify MiRosTakeOverPebTebRanges to only create a memory area for the shared user page and rename it to MiRosTakeOverSharedUserPage. Previously it was creating a memory area for the whole region from USER_SHARED_DATA up to MM_HIGHEST_USER_ADDRESS, which is the majority of the x64 user mode address space and doesn't even contain the PEB/TEB. Those are allocated below the shared user page and get their memory areas created in MiInsertNode.
- Add amd64 versions of MmGetPageTableForProcess, MmUnmapPageTable, MmGetPageFileMapping

svn path=/trunk/; revision=55438
2012-02-05 18:41:37 +00:00
Timo Kreuzer
78b0ef2aa4 [NTOSKRNL]
- Rewrite SeCaptureSecurityDescriptor. The old code was mess and totally broken for 64 bit.
- Many fixes to security descriptor code that was making wrong assumptions about the SECURITY_DESCRIPTOR structures

svn path=/trunk/; revision=55437
2012-02-05 17:57:34 +00:00
Timo Kreuzer
53b6f45505 [NTOSKRNL]
Handle _MI_PAGING_LEVELS >= 3 in MiBuildPagedPool and MmArmAccessFault

svn path=/trunk/; revision=55433
2012-02-05 17:19:58 +00:00
Amine Khaldi
66ef59c637 [PORTCLS]
* Silence some debug info.

svn path=/trunk/; revision=55432
2012-02-05 17:19:07 +00:00
Timo Kreuzer
75a453ceba [NTOSKRNL/NEWCC]
Fix MSVC build and warnings

svn path=/trunk/; revision=55431
2012-02-05 16:42:22 +00:00
Thomas Faber
0c13e015cf [CRT]
- Fix multiple free in msvcrt_free_io. Fixes VLC Player crash on exit. Wine already has it right.

svn path=/trunk/; revision=55430
2012-02-05 15:47:41 +00:00
Rafal Harabien
0bb1f439a4 [CMAKE]
- Add wallpaper optional module to CMake build

svn path=/trunk/; revision=55426
2012-02-05 13:44:16 +00:00
Rafal Harabien
8562446b0d - Add CMakeLists for wallpaper
svn path=/trunk/; revision=55425
2012-02-05 13:43:04 +00:00
Olaf Siejka
a0f9dfe66d [TRANSLATION]
- Bulgarian translation update of several modules (bug no. 6840), by CCTANEB, minor fixes by me;
- Polish translation update of sysdm by me;



svn path=/trunk/; revision=55424
2012-02-05 12:21:11 +00:00
Timo Kreuzer
d7bdbf2152 [NTOSKRNL]
- Fix a bug in CmpSetSystemValues, where an uninitialized handle would be closed in the failure path.
- Add a hack on top of the MI_GET_ROS_DATA(x) hack so that we can squeeze a pointer into a 32 bit field.
Make MmInitializeProcessAddressSpace amd64 ready and use a portable way to determine the page table base pfn in MiInitializeWorkingSetList
- Make MmProbeAndLockPages ready for 3 and 4 level page tables
add MiIsPteOnP*eBoundary macros - use  these in MmProbeAndLockPages
- Raise IRQL to SYNCH_LEVEL not DISPATCH_LEVEL in KiAcquireDispatcherLock
- Add MiNonPagedSystemSize for all architectures
- Fix amd64 definition of KERNEL_HANDLE_FLAG
- Fix definition of PrototypePte
- Fix KiGetLinkedTrapFrame()
- Make MmProtectTpPteMask 64 bit wide 
- Fix definition of MI_PTE_LOOKUP_NEEDED for amd64
- Impllement KiSendEOI() to be able to send an EOI from C code.
- Fix some MSVC/amd64 warnings

svn path=/trunk/; revision=55423
2012-02-04 23:08:20 +00:00
Timo Kreuzer
cb837e18a1 [FREELDR]
- Don't map the low 1 MB into kernel space, it's pointless and leads to inconsistencies between reported memory type and what is found in the page tables. On x86 it works, because it uses an overcomplicated pfn initialization wih redundent checks. Anyway this memory, containing freeldr and real mode code, was simply wasted.
- Silence some debug prints
- Fix warnings

svn path=/trunk/; revision=55421
2012-02-04 21:53:09 +00:00
Sylvain Petreolle
98a73736a6 [ADVAPI32]
Don't export Vista+, unused and unimplemented APIs.
Some apps / tests detect their presence and try to use them.

svn path=/trunk/; revision=55419
2012-02-04 21:42:22 +00:00
Timo Kreuzer
eb594c7610 [NDK]
Fix amd64 definitions of SYNCH_LEVEL, DISPATCH_LENGTH, KINTERRUPT, KTHREAD, KPROCESS, EPROCESS
- add MM_SHARED_USER_DATA_VA
- Add PsGetProcessSessionId prototype
- Remove duplicated RtlWow64Get/SetThreadContext prototypes

svn path=/trunk/; revision=55418
2012-02-04 21:16:52 +00:00
Eric Kohl
5a51670178 [ADVAPI32]
Add or fix parameter checks.

svn path=/trunk/; revision=55417
2012-02-04 19:56:21 +00:00
Timo Kreuzer
9fa8f0915e [RTL]
- Fix RtlLengthSecurityDescriptor
- Implement amd64 version of Implement RtlInitializeContext
- Add unwind info to amd64 debug asm functions
- Fix 64 bit HEAP_COMMON_ENTRY structure The resulting version doesn't exactly match the original windows one, but its compatible, as every field, except the dummy fields - which are omitted - is at its correct position.

svn path=/trunk/; revision=55415
2012-02-04 18:35:56 +00:00
Timo Kreuzer
cbee83498e [NTDLL]
- Implement amd64 version of LdrInitializeThunk and KiUserApcDispatcher
- Export ExpInterlockedPopEntrySList* on amd64, too
- Fix some 64 bit issues

svn path=/trunk/; revision=55414
2012-02-04 18:25:25 +00:00
Timo Kreuzer
85bb9f1bce [XDK]
- fix ASSERTs in amd64 inline functions
- fix definition of KWAIT_BLOCK
These fixes are not critical, so I don't update wdm.h to avoid additional recompilation

svn path=/trunk/; revision=55413
2012-02-04 17:29:34 +00:00
Thomas Faber
d5606434e4 [RTL]
- Work around Wine's misuse of critical section debug flags. Hopefully fixes KVM

svn path=/trunk/; revision=55410
2012-02-04 13:47:16 +00:00
Timo Kreuzer
5634a14cce [ASM]
Modify syscall stub macros to be compatible with the new amd64 stubs

svn path=/trunk/; revision=55409
2012-02-04 12:29:24 +00:00
Timo Kreuzer
61a48a890e [CMLIB]
Fix 64 bit / MSVC warnings

svn path=/trunk/; revision=55408
2012-02-04 12:23:27 +00:00
Timo Kreuzer
afd88373ce [NTOSKRNL/MM/AMD64]
- Implement more of MmCreateProcessAddressSpace
- Acquire pfn lock and use MiRemoveZeroPage in MiGetPteForProcess

svn path=/trunk/; revision=55407
2012-02-04 12:13:53 +00:00
Eric Kohl
775cef8b4c [EVENTLOG]
- Change LogfInitializeNew and LogfInitializeExisting to return an NTSTATUS code instead of a BOOL value.
- LogfInitializeExisting no longer calls LogfInitializeNew when reading a log file fails but returns a proper status code instead.

svn path=/trunk/; revision=55406
2012-02-04 11:34:13 +00:00
Timo Kreuzer
597c140370 [NTOSKRNL/KE/AMD64]
- Fix stack alignment in KiSwitchToBootStack
- Handle ExceptionFrame == NULL in KeContextToTrapFrame and KeTrapFrameToContext
- Implement KiSwapContextInternal
- Fix KiSwapContext and KiThreadStartup
- Implement dispatching of user mode exceptions including in-paging of module data used by the kernel-debugger
- Implement KeInitializeInterrupt, KeConnectInterrupt, KeSynchronizeExecution
- Don't zero more than the actual PCR size in KiInitializePcr
- Add asm function KiInitializeSegments to initialize the segment selectors to proper values
- Initialize system call entrypoints in KiInitializeCpu
- Implement KiDpcInterruptHandler, KiIdleLoop, KiInitializeUserApc, KiSwapProcess, KiSystemCallHandler, KiInitializeContextThread, KiSwapContextResume
- Implement asm functions KiRetireDpcList, KiInterruptDispatch, KiSystemCallEntry64, KiZwSystemService

svn path=/trunk/; revision=55405
2012-02-04 11:32:13 +00:00
Timo Kreuzer
de74279d5b [ASM/AMD64]
- Add multiple amd64 asm constant and structure offset definitions
- Add more unwind information to the amd64 trap entry code
- Add IRQL check, APC check and segment sanitize code to trap entry/exit

svn path=/trunk/; revision=55404
2012-02-04 11:01:19 +00:00
Timo Kreuzer
0fcb7d138d [NTOSKRNL/MM/AMD64]
- Add MI_REAL_SYSTEM_RANGE_START, which is the canonical system space base address, while MmSystemRangeStart variable contains a broken value, like on Windows.
- Define MmSystemRangeStart to MI_REAL_SYSTEM_RANGE_START, since on amd64 there is no dynamic system space start address and we don't want to use the broken address anywhere
- Add some more address layout definitions
- Add MiIsPteOnP*eBoundary() macro
- Add MMPPE, MI_WRITE_VALID_PPE and ValidKernelPpe definitions
- Fix initialization of PrototypePte
- Add mappings for VAD bitmap and working set list to MiInitializePageTable
- Fix calculations in MiBuildNonPagedPool
- Improve MiBuildSystemPteSpace
- Implement MiBuildPfnDatabase, MiAddDescriptorToDatabase, MiBuildPfnDatabaseFromPageTables, MiSetupPfnForPageTable all of these are written to be portable, yet they are untested on anything else than amd64 builds
- Mostly finish MiInitMachineDependent

svn path=/trunk/; revision=55403
2012-02-04 10:40:27 +00:00
Rafal Harabien
adffed162f [BOOTDATA]
- Don't create paging files on livecd. Verified by Alex Ionescu.

svn path=/trunk/; revision=55402
2012-02-03 23:43:42 +00:00
Alex Ionescu
b1e15cc96d [SMSS2]: Implement the rest of the code to create page files. All that's missing is the actual call to NtCreatePagingFile.
svn path=/trunk/; revision=55400
2012-02-03 23:11:28 +00:00
Timo Kreuzer
b7f8e21b52 Fix gcc build
svn path=/trunk/; revision=55398
2012-02-03 21:12:18 +00:00
Timo Kreuzer
36a816a584 [NTOSKRNL]
- Rewrite MmFindGapBottomUp and MmFindGapTopDown, the old versions were broken and were first checking the address range after the first memory area and only used the area below (above) the first memory are when nothing free was found.
- Fix an ASSERT, that gets triggered now that the memory areas are created at the "right" locations
- Create a memory are for the boot loaded images, which previously could be overwritten happily by new memory areas, which was only prevented by the brokenness of the code
- Fix a few memory regions so that they are correct for amd64 builds as well

svn path=/trunk/; revision=55397
2012-02-03 20:59:35 +00:00
Thomas Faber
173b42e7cb [SMSS2]
- Properly handle an empty list in SmpSaveRegistryValue
- Compare the value string for equality, as the comment says, not inequality
- This fixes a crash, although another solution may perhaps be better

svn path=/trunk/; revision=55391
2012-02-03 11:21:15 +00:00
Timo Kreuzer
4895b9388e [SMSS2]
Fix MSVC build

svn path=/trunk/; revision=55384
2012-02-02 20:50:22 +00:00
Amine Khaldi
46ba8b17cc [NTOSKRNL]
* Fix MSVC build.

svn path=/trunk/; revision=55383
2012-02-02 20:45:49 +00:00
James Tabor
75c818eefb [User32]
- Attempt to fix the font leak when switching applications. Tested with other applications other than Acrobat Reader since it crashes when installing. See bug 5314.

svn path=/trunk/; revision=55362
2012-02-01 03:09:57 +00:00
Amine Khaldi
86b5a7c90b [README.WINE]
* Mark some modules, that are in sync with Wine 1.3.37, as such.

svn path=/trunk/; revision=55358
2012-01-31 20:53:40 +00:00
Giannis Adamopoulos
29a7102825 [user32_apitest]
- Add some more tests

svn path=/trunk/; revision=55349
2012-01-31 10:49:44 +00:00
Giannis Adamopoulos
3d8783aa35 [user32_apitest]
- Add a couple of tests for SPI_SETMOUSESPEED and SPI_GETMOUSESPEED
- inspired by bug 905

svn path=/trunk/; revision=55347
2012-01-31 09:58:05 +00:00
Alex Ionescu
5ebd3e62cf [SMSS2]: Implement helper functions for reading and writing to the BSD (What lets Windows know if this was a good boot/shutdown or a bad one, and to display the recovery settings or not (FreeLDR should do this...)). Implement the functions needed to launch native applications, and add support for launching autochk and any other bootexecute applications. Set the correct SessionID with the kernel by calling ProcessSessionInformation. Pending File Rename Operations are the last big thing left, plus actual pagefile creation.
[SMSS2]: Fix a bug in SmpParseCommandLine.

svn path=/trunk/; revision=55346
2012-01-31 02:38:42 +00:00
Alex Ionescu
292010dcd6 [NDK/RTL]: Fix RtlGetSetBootStatusData prototype and add the BSD Items that can be set with it.
svn path=/trunk/; revision=55345
2012-01-31 02:33:02 +00:00
Alex Ionescu
b12e5cfc77 [SMSS2]: Implement SmpCreateDynamicEnvironmentVariables such that all the SMSS-generated variables are created. Compared to SMSS it has some bug fixes and also handles the safe-mode options key. Next step is to handle boot/setup/execute keys and get autochk running from SMSS2.
[SMSS]: No longer initialize the registry, let SMSS2 do that now.

svn path=/trunk/; revision=55343
2012-01-31 01:19:14 +00:00
Alex Ionescu
432f60ee68 [NDK]: D'oh.
svn path=/trunk/; revision=55342
2012-01-30 22:55:24 +00:00
Alex Ionescu
0f85c44176 [SMSS2]: Create and define the volume descriptor structure, and go ahead and build some volume descriptors!
svn path=/trunk/; revision=55340
2012-01-30 22:50:37 +00:00
Alex Ionescu
51dbd93981 [SMSS2]: Implement all the processing required for being able to create emergency, system, and manual-sized page files, on both fixed drives any "any" drives. Missing the code to build volume descriptors and to actually ask the kernel to create the file (right now, just prints what should be done and sizes).
svn path=/trunk/; revision=55335
2012-01-30 21:28:48 +00:00
Thomas Faber
2740865cc0 [COMCTL32]
- Fix the fix for MSVC build (r55306). This is the version accepted by Wine.

svn path=/trunk/; revision=55334
2012-01-30 20:29:12 +00:00
Alex Ionescu
973a9360b2 [SMSS2]: Implement command line and token parsing. Implement pagefile descriptor structure, format, flags, and parsing. They are now created as they should. Use SmpHeap instead of RtlGetProcessHeap() to keep code cleaner. Use SmpSystemRoot instead of NtSystemRoot now that it's being defined. "Environment" in registry should be parsed twice to handle nested expansions.
svn path=/trunk/; revision=55333
2012-01-30 19:29:30 +00:00
Alex Ionescu
51fe71aec3 [NTOSKRNL]: Keep doing the old region/swap work incorrectly, but at least return a correct size. Let's see if this fixes it.
svn path=/trunk/; revision=55330
2012-01-30 17:19:14 +00:00