Commit graph

50238 commits

Author SHA1 Message Date
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
Cameron Gutman
27a04819e7 [USBEHCI]
- Wait for periodic scheduling to start
- Increase the wait interval for asynchronous scheduling to start

svn path=/branches/usb-bringup-trunk/; revision=55477
2012-02-07 02:22:34 +00:00
Cameron Gutman
ec95123297 [USBOHCI]
- Enable bus master on OHCI controllers if it's not set by default

svn path=/branches/usb-bringup-trunk/; revision=55476
2012-02-07 01:59:18 +00:00
Amine Khaldi
60e9668112 [CLASSPNP]
* Rename class.spec to classpnp.spec and adjust the build files accordingly.
[DISK_NEW]
* Fix the build files (cmake and rbuild).
* Fix InitSafeBootMode use.
* Add disk_new to build.

svn path=/branches/usb-bringup-trunk/; revision=55475
2012-02-06 22:48:17 +00:00
Amine Khaldi
6fe69b972d [WDMGUID]
* Add missing GUID_DEVINTERFACE_PARTITION guid.

svn path=/branches/usb-bringup-trunk/; revision=55474
2012-02-06 22:45:18 +00:00
Amine Khaldi
19caa78426 [NTOSKRNL]
* Fix build.

svn path=/branches/usb-bringup-trunk/; revision=55473
2012-02-06 22:01:35 +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
Johannes Anderwald
99a3cc7d54 [DISK]
- Add more structures to ntdddisk.h
- Fix more compile errors in disk_new
- disk_new builds but fails to link as classpnp import lib is broken

svn path=/branches/usb-bringup-trunk/; revision=55451
2012-02-06 08:15:21 +00:00
Cameron Gutman
385ddbfd32 [USBEHCI]
- Implement ResetController and call it before setting up the controller
- Don't disable 64-bit addressing until the BIOS gives up control of the controller
- Comment out manually clearing the SMI interrupt and the BIOS owned flag by request of janderwald
- EHCI no longer hangs for me on real hardware during controller initialization

svn path=/branches/usb-bringup-trunk/; revision=55450
2012-02-06 07:41:20 +00:00
Johannes Anderwald
f0520a8b63 [DDK]
- More header fixes for disk_new

svn path=/branches/usb-bringup-trunk/; revision=55449
2012-02-06 07:35:22 +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
Johannes Anderwald
2f6346e3cf [DISK_NEW]
- Fix compilation of new disk driver 
- Patch by Alex Ionescu

svn path=/branches/usb-bringup-trunk/; revision=55447
2012-02-06 06:50:19 +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
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
Johannes Anderwald
ba68ad2102 [HIDPARSE]
- Check if the report uses a report id
- Fix arrows in USB 2 PS/2 conversion table (Needs more fixing)

svn path=/branches/usb-bringup-trunk/; revision=55440
2012-02-05 20:28:26 +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
Johannes Anderwald
cf494ea401 [HIDCLASS]
- Check if attaching to device stack failed. In that case fail the request
[HIDUSB]
- Always set SupriseRemovalOk
[USBCCGP] [HIDCLASS] [USBHUB] [USBSTOR]
- Check if the pdo is still in the pdo list. Only call IoDeleteDevice in that case

svn path=/branches/usb-bringup-trunk/; revision=55429
2012-02-05 15:36:00 +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
Pierre Schweitzer
82848d85df [MOUNTMGR]
Implement DeleteRemoteDatabaseEntry

svn path=/branches/usb-bringup-trunk/; revision=55422
2012-02-04 22:01:12 +00:00