Commit graph

49767 commits

Author SHA1 Message Date
Timo Kreuzer 0b2dbd9cea [USB]
Don't compile nt4 compat driver for amd64

svn path=/trunk/; revision=55511
2012-02-09 11:51:21 +00:00
Timo Kreuzer 680bfb5aa7 [CLASS2]
Fix 64 bit warnings

svn path=/trunk/; revision=55510
2012-02-09 11:34:21 +00:00
Alex Ionescu 14ba04899c [SMSS2]: Implement SmpCallCsrCreateProcess and SmpLoadSubsystem. We now load CSRSS and everything works 100%! Winlogon is now launched by SMSS2 and no regressions have been found.
[SMSS]: Turn off all code other than setting up the pagefile.
There's a lot of debug prints, as soon as things seem stable after a few days, SMSS will be gone and SMSS2 will take over and DPRINT1s will mostly be gone.

svn path=/trunk/; revision=55509
2012-02-09 02:21:56 +00:00
Alex Ionescu e23e0ca401 [SMSS2]: Implement SmpExecPgm and SmpSbCreateSession. Nothing happens (STATUS_OBJECT_NAME_NOT_FOUND is returned) because we don't really launch CSRSS and so we can't find a subsystem for Winlogon and fail (as expected for now).
svn path=/trunk/; revision=55508
2012-02-09 00:07:36 +00:00
Alex Ionescu 09c7bc60a5 [SMSS2]: Make not-implemented functions return a failure. Cleanup the SMSS hack in the _main function to be cleaner. Add a few more functions and flags to the header. Fix a function prototype.
svn path=/trunk/; revision=55507
2012-02-08 23:49:19 +00:00
Timo Kreuzer 2adafb93b0 [SHELL32]
Fix a bug I introduced in r55498
Spotted by Thomas

svn path=/trunk/; revision=55506
2012-02-08 22:53:29 +00:00
Timo Kreuzer 54bd4f5cc8 [NTOSKRNL]
- Implement amd64 version of MmDeleteProcessPageDirectory
- Fix amd64 build

svn path=/trunk/; revision=55505
2012-02-08 22:23:10 +00:00
Timo Kreuzer 683b30a149 [XDK/DDK]
Slightly reorganize architecture dependent headers, so that ASSERT can be used
[CRT]
Use some definitions only for vista+, since 2k3 msvcrt doesn't have them

svn path=/trunk/; revision=55504
2012-02-08 22:15:06 +00:00
Timo Kreuzer 5eeb447451 [SMLIB]
"Fix" 64 bit compilation

svn path=/trunk/; revision=55503
2012-02-08 22:11:02 +00:00
Alex Ionescu e856535365 [SMSS2]: Implement (not yet used) Session Management APIs.
svn path=/trunk/; revision=55501
2012-02-08 22:05:53 +00:00
Alex Ionescu 17492f9097 [CSRSRV]: The connection with SMSS(2) should be done after initialization, not before. This is because in SMSS2, there is no "Complete" API -- you are assumed to be ready when you connect, instead of connecting + completing later. Should not break SMSS behavior, but required for SMSS2.
[CSRSRV]: Fix many bugs in ServerSbApiPortThread. This function never worked as SMSS never actually connects to the SB API Port. Since SMSS2 does, a few bugs were discovered. Also, hack-plement the one SB API that is required for SMSS2 (SbpCreateSession). All we do is resume the thread we receive (Winlogon)... normally we'd also register a hard-error port, etc.
[CSRSRV]: If connecting with SMDLL to SMSS did not work (such as on my system where SMSS is no longer there), try using SMLIB and SMSS2 instead. This way CSRSS still works with both environments.
[CSRSRV]: Required rbuild/cmake changes to build with SMLIB.

svn path=/trunk/; revision=55500
2012-02-08 21:56:23 +00:00
Alex Ionescu f1831b3bac [SM Headers]: Fix a few typos.
svn path=/trunk/; revision=55499
2012-02-08 21:53:00 +00:00
Timo Kreuzer 9e03b92631 [SHELL32]
Fix 64 bit MSVC build, fix some warnings

svn path=/trunk/; revision=55498
2012-02-08 21:38:53 +00:00
Rafal Harabien b6d994d577 [SHELL32]
- Fix warnings in MSVC

svn path=/trunk/; revision=55497
2012-02-08 19:03:43 +00:00
Timo Kreuzer a713dd0ea3 [HAL]
Fix syntax, patch by Victor Martinez

svn path=/trunk/; revision=55496
2012-02-08 18:29:08 +00:00
Timo Kreuzer d964bd32f2 [ATL]
Fix an MSVC warning

svn path=/trunk/; revision=55495
2012-02-08 17:16:00 +00:00
Timo Kreuzer 03e2adb69e [NDK]
Add definition of PWOW64_CONTEXT

svn path=/trunk/; revision=55494
2012-02-08 16:25:13 +00:00
Pierre Schweitzer eece771f9f [RAPPS]
Fix French translation encoding

svn path=/trunk/; revision=55488
2012-02-07 20:40:00 +00:00
Timo Kreuzer 48449b1971 [CRT]
Fix 64 bit build of MSVCRT

svn path=/trunk/; revision=55487
2012-02-07 18:09:25 +00:00
Pierre Schweitzer 26260e22cb [NTOSKRNL]
*grmbl*
s/UINT_MAX/ULONG_MAX/g
*grmbl*

svn path=/trunk/; revision=55486
2012-02-07 17:50:00 +00:00
Pierre Schweitzer b3466d43ab [NTOSKRNL]
Fix a FIXME in IopCreateArcNames.
This allows ntoskrnl to find where it boots from and where it is when performing remote boot.
Now ReactOS should boot a bit farther using PXE :-).

svn path=/trunk/; revision=55485
2012-02-07 17:40:15 +00:00
Jérôme Gardou 31a15829d9 [WIN32KDLL]
- use spec file
 - fix use of def files

svn path=/trunk/; revision=55482
2012-02-07 14:54:02 +00:00
Timo Kreuzer f89567dbbb [smmsg.h]
Fix 64 bit compilation

svn path=/trunk/; revision=55481
2012-02-07 13:21:04 +00:00
Alex Ionescu 5df1402bab [SMLIB]: Rbuild fix.
svn path=/trunk/; revision=55480
2012-02-07 08:05:06 +00:00
Alex Ionescu 7c4171a370 [SMLIB]: Forgot to commit this directory.
svn path=/trunk/; revision=55479
2012-02-07 07:43:20 +00:00
Alex Ionescu dfb761830d [SMSS2]: Implement executing the initial command as well as doing the SM-to-SM initial connection.
[SMSS2]: Implement the main LPC loop and handle all the supported APIs (all stubs for now). Also handle new connection requests and implement SmpHandleConnectionRequest.
[SMSS2]: Implement subsystem helper functions.
[SMSS2]: Use SmApiPort2 instead of Sm2ApiPort.
[SMSS2]: Rename the SMSRV_APIs not to conflict with the function names, nor with the client functions in smlib.

svn path=/trunk/; revision=55478
2012-02-07 07:13:42 +00:00
Timo Kreuzer 35a3e62e9d [NTOSKRNL]
- Implement MiIsUserP*e inline functions to efficiently determine if a pte is a pte/pde/ppe or pxe for a user mode page
- Make MiDetermineUserGlobalPteMask work for _MI_PAGING_LEVELS >= 3
- In MiResolveDemandZeroFault, use MI_MAKE_HARDWARE_PTE only, it does all the necessary work.

svn path=/trunk/; revision=55472
2012-02-06 22:01:09 +00:00
Amine Khaldi 3bc403f6e7 [SMSS2]
* Fix build.

svn path=/trunk/; revision=55471
2012-02-06 20:53:47 +00:00
Amine Khaldi 7a516cc7e6 [MSI_WINETEST]
* Sync to Wine 1.3.37. This partially reverts r55047.

svn path=/trunk/; revision=55470
2012-02-06 20:43:38 +00:00
Amine Khaldi 5d71814fc4 [MSI]
* Properly sync to Wine 1.3.37. This partially reverts r55046.

svn path=/trunk/; revision=55469
2012-02-06 20:43:28 +00:00
Alex Ionescu 56152bb4a9 [SMSS2]: I hate you, rbuild.
svn path=/trunk/; revision=55468
2012-02-06 19:37:19 +00:00
Alex Ionescu 524f08e959 [SMSS2]: Implement SmpTranslateSystemPartitionInformation which sets a few last registry keys as part of the initialization process.
[SMSS2]: Implement SmpLoadSubsystemsForMuSession which correctly creates a session, loads win32k.sys inside of it, and then detaches from the session. Winlogon.exe is set as the initial command (but not launched), and CSRSS is fake-started.
[CSRSRV]: No longer start win32k.sys, that's not your job.
[SMSS2]: Kill most debug prints that aren't errors.

svn path=/trunk/; revision=55467
2012-02-06 18:57:18 +00:00
Amine Khaldi 9aaaa6c4a2 [SXS]
* Sync to Wine 1.3.37.

svn path=/trunk/; revision=55466
2012-02-06 18:48:50 +00:00
Alex Ionescu 560ff3fed9 [SMSS2/SMSS]: Put SMSS back in charge of the pagefile as yet another attempt to fix KVM.
[NTOSKRNL]: Stub-plement SystemSessionDetachInformation.

svn path=/trunk/; revision=55465
2012-02-06 18:14:36 +00:00
Alex Ionescu 5fb988c04d [NTOSKRNL]: Stubplement SystemSessionCreateInformation (it allocates a real Session ID and sets the right EPROCESS flags). Nobody uses this yet (future SMSS2 will).
[SMSS2]: More attempts at fixing KVM.

svn path=/trunk/; revision=55464
2012-02-06 17:41:49 +00:00
Alex Ionescu 1fbcc2809f [SMSS2]: Add some debugging to figure out what's happening on KVM.
svn path=/trunk/; revision=55463
2012-02-06 17:03:59 +00:00
Timo Kreuzer 60f4720280 [NTOSKRNL]
Handle 3 and 4 level page tables in MmArmAccessFault

svn path=/trunk/; revision=55462
2012-02-06 15:08:32 +00:00
Cameron Gutman 1374772ff7 [NTOSKRNL]
- Assert that reference counts are sane in MmReferencePage and MmDereferencePage

svn path=/trunk/; revision=55461
2012-02-06 15:04:12 +00:00
Timo Kreuzer 1e7a03a903 [NTOSKRNL]
Add a modification that I missed to apply.

svn path=/trunk/; revision=55460
2012-02-06 14:35:09 +00:00
Timo Kreuzer 02fdd71dd4 [NTOSKRNL]
- Modify the logic in MmArmAccessFault, so that faults on kernel mode addresses including page table addresses are handled in the first part and user mode addresses (VADs) in the second part. This works, because for the special case of page table addresses, the user mode and kernel mode part of the code end up doing the same thing and this simplifies the code.
- In the user mode part call MiCheckVirtualAddress early and bail out if no VAD is found, since we do not care about any other cases any more.

svn path=/trunk/; revision=55459
2012-02-06 14:32:07 +00:00
Giannis Adamopoulos 0e7cf2af87 [win32k]
- Cleanup Win32kProcessCallback and Win32kThreadCallback
- Even though it works, trying to post a message in Win32kProcessCallback after the THREADINFO is destroyed can only cause trouble, so move it in Win32kThreadCallback
- There is no need to try opening a desktop and windowstation before winlogon initializes
- Handle errors properly when we fail to get a default window station and desktop for the new process
- Enable win32k syscall hook callbacks
- Rewrite SetThreadDesktop to update THREADINFO properly and handle errors properly
- Do not initialize the THREADINFO in GetW32ThreadInfo as it is now done properly (actually leave a small hack that updates pci->dwTIFlags)
- Add UserDbgAssertThreadInfo that asserts the integrity of THREADINFO, CLIENTINFO and CLIENTTHREADINFO. This is called by GetW32ThreadInfo and the syscall hook callbacks

svn path=/trunk/; revision=55458
2012-02-06 12:30:59 +00:00
Giannis Adamopoulos da5891c24b [win32k]
- Fix a warning caused by my previous commit

svn path=/trunk/; revision=55457
2012-02-06 11:00:52 +00:00
Timo Kreuzer 44d9f6f838 [NTOSKRNL]
- Implement MiSynchronizeSystemPde, which does what its name suggests, synchronize a system PDE and is an improved replacement (with a more proper name) for MiCheckPdeForPagedPool
- Move some code to avoid an additional check
- Call MiResolveDemandZeroFault directy instead of creating a demand zero PDE and then calling MiDispatchFault, which after a lot of checks will finally do the same

svn path=/trunk/; revision=55456
2012-02-06 10:46:52 +00:00
Alex Ionescu ed64af75b6 [SMSS]: Nuke the environment code and instead inherit SMSS2's, which does all the right things. #if 0 all the non-used code, and nuke support for the "debug" subsystem as well as the custom "SmQuery" APIs.
[SMSS2]: Use SMSS2's environment when creating SMSS.

svn path=/trunk/; revision=55455
2012-02-06 09:29:33 +00:00
Timo Kreuzer b207b33d11 [ÇNTOSKRNL]
- modify MiResolveDemandZeroFault to take the page protection as a parameter instead of the PTE. This will be used soon.
- Move increment of counters into the region where the pfn lock is held to avoid race conditions and make heavy locked operations unneccessary
- Add some ASSERTs

svn path=/trunk/; revision=55454
2012-02-06 09:26:23 +00:00
Alex Ionescu 12f8a6d6a6 [SMSS2]: Implement SmpProcessFileRenames and actually create the paging file now. All initialization work is now done by SMSS2.
[SMSS]: Neuter away most of the code and only keep SMSS around for managing the API port.
Next step is to make the SMSS2 API port go into use.

svn path=/trunk/; revision=55453
2012-02-06 09:06:38 +00:00
Alex Ionescu f17b946a88 [NTOSKRNL]: Finish implementation of NtAreMappedFilesTheSame based on what winetests revealed. Should fix all 20+ winetests in this area, on top of making Ldr suck less.
svn path=/trunk/; revision=55452
2012-02-06 08:17:03 +00:00
Alex Ionescu 16b9a65060 [NTOSKRNL]: Partly implement NtAreMappedFilesTheSame...
[NTDLL]: Fix (although I'm not sure quite why) LdrpCheckForLoadedDll which was crashing now that I've fixed PAGE_EXECUTE sections with only FILE_EXECUTE handles. Ironically, this meant that LdrpCheckForLoadedDll never worked until my previous fix some revisions ago, it always returned FALSE.
This should fix KVM/QEMU crashes...

svn path=/trunk/; revision=55448
2012-02-06 06:53:28 +00:00
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