Johannes Anderwald [Sun, 12 Feb 2012 00:49:18 +0000 (00:49 +0000)]
[USBEHCI]
- Enable async park mode when available
- Use correct type for the pipe handle
- Implement URB_FUNCTION_GET_STATUS_FROM_INTERFACE, URB_FUNCTION_GET_STATUS_FROM_ENDPOINT
- Verify that there is buffer provided in SubmitSetupPacket
[KBDCLASS]
- Forward requests to lower device
svn path=/branches/usb-bringup-trunk/; revision=55552
Johannes Anderwald [Sat, 11 Feb 2012 19:26:18 +0000 (19:26 +0000)]
[USBSTOR]
- Implement retrieving endpoint halted status
- Fix multiple bugs which leaded to crashes (wrong device object passed). Usbstor now successfully restarts requests after handling the errors
- Implement mass storage reset, not yet used
- Add checks in CSW completion
svn path=/branches/usb-bringup-trunk/; revision=55548
Amine Khaldi [Sat, 11 Feb 2012 11:27:29 +0000 (11:27 +0000)]
* Sync up to trunk r55544.
svn path=/branches/usb-bringup-trunk/; revision=55545
Amine Khaldi [Sat, 11 Feb 2012 10:34:28 +0000 (10:34 +0000)]
[PSDK]
* ntdddisk.h: Import a recent fix from trunk.
svn path=/branches/usb-bringup-trunk/; revision=55544
Amine Khaldi [Sat, 11 Feb 2012 10:32:22 +0000 (10:32 +0000)]
[PSDK]
* ntdddisk.h: Improve some definitions and add some missing ones.
svn path=/trunk/; revision=55543
Cameron Gutman [Sat, 11 Feb 2012 06:56:10 +0000 (06:56 +0000)]
[PCI]
- Add forgotten line
svn path=/branches/usb-bringup-trunk/; revision=55542
Cameron Gutman [Sat, 11 Feb 2012 06:25:16 +0000 (06:25 +0000)]
[ACPI]
- Fix incorrect maximum bound for resource requirements
- Handle PCI buses manually
[HAL]
- Don't hang if the IRP_MN_QUERY_INTERFACE is received
[INF]
- Misc fixes
svn path=/branches/usb-bringup-trunk/; revision=55541
Cameron Gutman [Sat, 11 Feb 2012 05:47:56 +0000 (05:47 +0000)]
[PCI]
- Set device command flags when starting the PCI device PDO
svn path=/branches/usb-bringup-trunk/; revision=55540
Cameron Gutman [Sat, 11 Feb 2012 05:15:25 +0000 (05:15 +0000)]
[PCIX]
- Ignore invalid extended capabilities pointer
- Don't hang on unimplemented IRPs that we actually use
svn path=/branches/usb-bringup-trunk/; revision=55539
Cameron Gutman [Sat, 11 Feb 2012 04:14:41 +0000 (04:14 +0000)]
[NTOSKRNL]
- Call HalAdjustResourceList to fixup the requirements list before building the resource list
svn path=/branches/usb-bringup-trunk/; revision=55538
Cameron Gutman [Sat, 11 Feb 2012 03:54:10 +0000 (03:54 +0000)]
[NTOSKRNL]
- Implement IopFixupResourceListWithRequirements to replace IopCreateResourceListFromRequirements
- This functions fills in gaps between required resources and currently allocated resources in the resource list
- It also implements support for alternate requirement descriptors which IopCreateResourceListFromRequirements ignored
- Fix a critical bug in requirement processing that could result in the kernel allocating resources outside the devices requested range
- Now the PnP manager will actually claim resources that the device reports that it needs but it does not currently have
svn path=/branches/usb-bringup-trunk/; revision=55537
Johannes Anderwald [Sat, 11 Feb 2012 02:10:20 +0000 (02:10 +0000)]
[USBEHCI]
- Store configuration index in the setup packet
- Perform retrieving the configuration request before storing the configuration details. Perform the same action for the select interface request
- EHCI now supports selecting configuration & interface on devices with more than one configuration (previously only one configuration was supported)
- Code has not yet been tested, as no available usb device has such feature
svn path=/branches/usb-bringup-trunk/; revision=55536
Cameron Gutman [Sat, 11 Feb 2012 01:11:47 +0000 (01:11 +0000)]
[HAL]
- Print a message when a PCI device requires an interrupt but has none assigned
svn path=/branches/usb-bringup-trunk/; revision=55535
James Tabor [Sat, 11 Feb 2012 01:09:41 +0000 (01:09 +0000)]
Alexandre Julliard : Draw the mask with SRCCOPY in DrawIcon when the image isn't being drawn.
svn path=/trunk/; revision=55534
James Tabor [Sat, 11 Feb 2012 00:44:16 +0000 (00:44 +0000)]
Dmitry Timoshkov : user32: RealChildWindowFromPoint should skip invisible windows.
svn path=/trunk/; revision=55533
Cameron Gutman [Fri, 10 Feb 2012 22:16:03 +0000 (22:16 +0000)]
[IPHLPAPI]
- Forward ICMP function calls to icmp.dll (for XP and higher)
svn path=/trunk/; revision=55532
Johannes Anderwald [Fri, 10 Feb 2012 21:42:42 +0000 (21:42 +0000)]
[USBSTOR]
- Read Capacity cmd length is 10 bytes
svn path=/branches/usb-bringup-trunk/; revision=55531
Johannes Anderwald [Fri, 10 Feb 2012 20:15:39 +0000 (20:15 +0000)]
[USBEHCI]
- Partly revert 55516, as the memory bug got fixed
svn path=/branches/usb-bringup-trunk/; revision=55530
Timo Kreuzer [Fri, 10 Feb 2012 19:10:17 +0000 (19:10 +0000)]
[FREELDR]
Fix 64 bit warnings
Patch by Samuel Serapion, slightly modified by me
svn path=/trunk/; revision=55529
Pierre Schweitzer [Fri, 10 Feb 2012 18:57:55 +0000 (18:57 +0000)]
[NTOSKRNL]
IoCreateSymbolicLink -> IoAssignArcName
svn path=/trunk/; revision=55528
Timo Kreuzer [Fri, 10 Feb 2012 17:36:11 +0000 (17:36 +0000)]
[RTL]
Fix64 bit warnings
svn path=/trunk/; revision=55527
Cameron Gutman [Fri, 10 Feb 2012 17:14:39 +0000 (17:14 +0000)]
[CLASS2]
- Fix boot from HDD with USB drive present
- Fix USB drive failure with no HDD present
svn path=/branches/usb-bringup-trunk/; revision=55526
Johannes Anderwald [Fri, 10 Feb 2012 16:28:35 +0000 (16:28 +0000)]
[USBEHCI] [USBOHCI]
- Don't corrupt memory when a queue head / transfer descriptor is freed
- How did this work before...
svn path=/branches/usb-bringup-trunk/; revision=55525
Johannes Anderwald [Fri, 10 Feb 2012 11:58:11 +0000 (11:58 +0000)]
[USB-BRINGUP-TRUNK]
- Rename usbehci & usbhub
svn path=/branches/usb-bringup-trunk/; revision=55524
Giannis Adamopoulos [Thu, 9 Feb 2012 23:18:47 +0000 (23:18 +0000)]
[win32k]
- fix some more tests in user32:winstation
svn path=/trunk/; revision=55522
Johannes Anderwald [Thu, 9 Feb 2012 21:37:37 +0000 (21:37 +0000)]
[USBHUB]
- Fix mingw build
svn path=/branches/usb-bringup-trunk/; revision=55521
Timo Kreuzer [Thu, 9 Feb 2012 20:11:35 +0000 (20:11 +0000)]
[FREELDR]
Fix rbuild...
svn path=/trunk/; revision=55520
Timo Kreuzer [Thu, 9 Feb 2012 20:10:26 +0000 (20:10 +0000)]
[FREELDR]
Rename Heap_new.c to Heap.c
svn path=/trunk/; revision=55519
Timo Kreuzer [Thu, 9 Feb 2012 20:01:10 +0000 (20:01 +0000)]
[FREELDR]
- Enable new heap code and cleanup the heap, releasing unused memory, before starting reactos
- Gives our kernel about 4MB additional memory, which - at the current leak rate - means around 8 minutes longer before it runs out of memory :)
- Using the temp heap for all temporary allocations should increase the amount of saved space
svn path=/trunk/; revision=55518
Giannis Adamopoulos [Thu, 9 Feb 2012 19:41:38 +0000 (19:41 +0000)]
[win32k]
- Use the parse context to store whether or not the desktop object was created. If the object was not created, NtUserCreateDesktop should return immediately (this can happen if it didn't exist)
- Before this , if the desktop already exited, we opened the existing desktop and initialized it again. We also created another desktop heap, desktop window, etc.. This fact confused threads using this desktop and caused problems like the assertion we see in the test suite
svn path=/trunk/; revision=55517
Johannes Anderwald [Thu, 9 Feb 2012 19:11:13 +0000 (19:11 +0000)]
[USBEHCI]
- Revert 55515, 55502, 55491, 55490, 55489 as it breaks mass storage support in VBox + Vmware
svn path=/branches/usb-bringup-trunk/; revision=55516
Johannes Anderwald [Thu, 9 Feb 2012 16:06:34 +0000 (16:06 +0000)]
[EHCI]
- Try fix bulk transfers #1
svn path=/branches/usb-bringup-trunk/; revision=55515
Johannes Anderwald [Thu, 9 Feb 2012 15:33:09 +0000 (15:33 +0000)]
[USBHUB]
- Ignore error when the device provides a string descriptor but no contents
- Fixes installation of cheap usb devices
svn path=/branches/usb-bringup-trunk/; revision=55514
Timo Kreuzer [Thu, 9 Feb 2012 12:04:31 +0000 (12:04 +0000)]
[NTOSKRNL]
Use MiNonPagedSystemSize when creating the system NP memory area instead of making assumptions about the memory layout
Finally the amd64 port boots into usermode and usetup is partly working, formats the harddisk but freezes, when copying files.
svn path=/trunk/; revision=55513
Timo Kreuzer [Thu, 9 Feb 2012 11:54:59 +0000 (11:54 +0000)]
{RTL]
- Fix RtlLengthSecurityDescriptor
- Fix pointer calculation in amd64 interlocked slist code
- Assert that the slist entry pointer is 16 byte aligned
[CRT]
- Add amd64 stubs for acos and acosf
svn path=/trunk/; revision=55512
Timo Kreuzer [Thu, 9 Feb 2012 11:51:21 +0000 (11:51 +0000)]
[USB]
Don't compile nt4 compat driver for amd64
svn path=/trunk/; revision=55511
Timo Kreuzer [Thu, 9 Feb 2012 11:34:21 +0000 (11:34 +0000)]
[CLASS2]
Fix 64 bit warnings
svn path=/trunk/; revision=55510
Alex Ionescu [Thu, 9 Feb 2012 02:21:56 +0000 (02:21 +0000)]
[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
Alex Ionescu [Thu, 9 Feb 2012 00:07:36 +0000 (00:07 +0000)]
[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
Alex Ionescu [Wed, 8 Feb 2012 23:49:19 +0000 (23:49 +0000)]
[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
Timo Kreuzer [Wed, 8 Feb 2012 22:53:29 +0000 (22:53 +0000)]
[SHELL32]
Fix a bug I introduced in r55498
Spotted by Thomas
svn path=/trunk/; revision=55506
Timo Kreuzer [Wed, 8 Feb 2012 22:23:10 +0000 (22:23 +0000)]
[NTOSKRNL]
- Implement amd64 version of MmDeleteProcessPageDirectory
- Fix amd64 build
svn path=/trunk/; revision=55505
Timo Kreuzer [Wed, 8 Feb 2012 22:15:06 +0000 (22:15 +0000)]
[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
Timo Kreuzer [Wed, 8 Feb 2012 22:11:02 +0000 (22:11 +0000)]
[SMLIB]
"Fix" 64 bit compilation
svn path=/trunk/; revision=55503
Johannes Anderwald [Wed, 8 Feb 2012 22:06:00 +0000 (22:06 +0000)]
[EHCI]
- Add back old implementation for testing purposes (if'd out)
- Display more status field of queue head / transfer descriptor
- Dump queue head when a halted queue is detected
- Display data toggle status
svn path=/branches/usb-bringup-trunk/; revision=55502
Alex Ionescu [Wed, 8 Feb 2012 22:05:53 +0000 (22:05 +0000)]
[SMSS2]: Implement (not yet used) Session Management APIs.
svn path=/trunk/; revision=55501
Alex Ionescu [Wed, 8 Feb 2012 21:56:23 +0000 (21:56 +0000)]
[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
Alex Ionescu [Wed, 8 Feb 2012 21:53:00 +0000 (21:53 +0000)]
[SM Headers]: Fix a few typos.
svn path=/trunk/; revision=55499
Timo Kreuzer [Wed, 8 Feb 2012 21:38:53 +0000 (21:38 +0000)]
[SHELL32]
Fix 64 bit MSVC build, fix some warnings
svn path=/trunk/; revision=55498
Rafal Harabien [Wed, 8 Feb 2012 19:03:43 +0000 (19:03 +0000)]
[SHELL32]
- Fix warnings in MSVC
svn path=/trunk/; revision=55497
Timo Kreuzer [Wed, 8 Feb 2012 18:29:08 +0000 (18:29 +0000)]
[HAL]
Fix syntax, patch by Victor Martinez
svn path=/trunk/; revision=55496
Timo Kreuzer [Wed, 8 Feb 2012 17:16:00 +0000 (17:16 +0000)]
[ATL]
Fix an MSVC warning
svn path=/trunk/; revision=55495
Timo Kreuzer [Wed, 8 Feb 2012 16:25:13 +0000 (16:25 +0000)]
[NDK]
Add definition of PWOW64_CONTEXT
svn path=/trunk/; revision=55494
Cameron Gutman [Wed, 8 Feb 2012 15:50:52 +0000 (15:50 +0000)]
[USBHUB]
- Don't wait for the work item to complete in the SCE completion handler
- Use an event to signal the completion of a reset and wait for that event during IRP_MN_START_DEVICE handling so devices are enumerated synchronously which allows USB boot devices to be enumerated
svn path=/branches/usb-bringup-trunk/; revision=55493
Johannes Anderwald [Wed, 8 Feb 2012 01:10:36 +0000 (01:10 +0000)]
[USBEHCI]
- Fix a few bulk transfer bugs
- Enable interrupt completion on last interrupt
- Increment transferred offset
- Mass storage device now gets further (passing SRB_FUNCTION_CLAIM_DEVICE)
svn path=/branches/usb-bringup-trunk/; revision=55491
Johannes Anderwald [Tue, 7 Feb 2012 22:20:46 +0000 (22:20 +0000)]
[USBEHCI]
- Merge hub controller from usbohci
- Partly implement AbortPipe request
- Implement resetting data toggle in HandleSyncResetAndClearStall
svn path=/branches/usb-bringup-trunk/; revision=55490
Johannes Anderwald [Tue, 7 Feb 2012 21:48:05 +0000 (21:48 +0000)]
[USBEHCI]
- Rewrite the transfer descriptor handling
- Take into account the direction of the pid
- Revert previously added hacks
- Support now more than one transfer descriptor for control transfers
- Include the bulk transfers in one queue head which should speed up operation
- Store data toggle in usb endpoint structure
- Mass storage devices now passes the control status phase on real hw and enters bulk operation stage
svn path=/branches/usb-bringup-trunk/; revision=55489
Pierre Schweitzer [Tue, 7 Feb 2012 20:40:00 +0000 (20:40 +0000)]
[RAPPS]
Fix French translation encoding
svn path=/trunk/; revision=55488
Timo Kreuzer [Tue, 7 Feb 2012 18:09:25 +0000 (18:09 +0000)]
[CRT]
Fix 64 bit build of MSVCRT
svn path=/trunk/; revision=55487
Pierre Schweitzer [Tue, 7 Feb 2012 17:50:00 +0000 (17:50 +0000)]
[NTOSKRNL]
*grmbl*
s/UINT_MAX/ULONG_MAX/g
*grmbl*
svn path=/trunk/; revision=55486
Pierre Schweitzer [Tue, 7 Feb 2012 17:40:15 +0000 (17:40 +0000)]
[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
Johannes Anderwald [Tue, 7 Feb 2012 16:46:19 +0000 (16:46 +0000)]
[USBEHCI]
- Fix data toggle misuse
- EHCI host error is now fixed
- Fixed by the Haiku dev Michael Lotz
svn path=/branches/usb-bringup-trunk/; revision=55484
Johannes Anderwald [Tue, 7 Feb 2012 16:18:56 +0000 (16:18 +0000)]
[USBEHCI]
- Don't set NumberOfTransaction 0x3 for the async queue head(Haiku doesnt do it too)
- Also don't set maximum packet length or interrupt on complete
- Stop the async / periodic schedules after acquiring ownership from os (ported from the Pedigree OS)
- Remove unused structs from header
- Allocate device descriptor from start of a page to prevent alignment issues
- Clear halted bit in the queue overlay transaction layer (usb_queue.cpp:507)
- Always set the alternative and next pointers in BuildControlTransferQueueHead
- Use data the toggle in the transfer requests
- Start using toggle in bulk requests, invert data toggle after each descriptor
- EHCI controller still reports error 0xA / 0xB which is USB Error Interrupt + Frame List Rollover + [USB Interrupt]
- Errors need to be researched more, though the control transfers results appear o.k.
- Tested in real hw + ros stack with USB Mass Storage Device
- Currently hangs after first completed CDB/Data/CSW block
svn path=/branches/usb-bringup-trunk/; revision=55483
Jérôme Gardou [Tue, 7 Feb 2012 14:54:02 +0000 (14:54 +0000)]
[WIN32KDLL]
- use spec file
- fix use of def files
svn path=/trunk/; revision=55482
Timo Kreuzer [Tue, 7 Feb 2012 13:21:04 +0000 (13:21 +0000)]
[smmsg.h]
Fix 64 bit compilation
svn path=/trunk/; revision=55481
Alex Ionescu [Tue, 7 Feb 2012 08:05:06 +0000 (08:05 +0000)]
[SMLIB]: Rbuild fix.
svn path=/trunk/; revision=55480
Alex Ionescu [Tue, 7 Feb 2012 07:43:20 +0000 (07:43 +0000)]
[SMLIB]: Forgot to commit this directory.
svn path=/trunk/; revision=55479
Alex Ionescu [Tue, 7 Feb 2012 07:13:42 +0000 (07:13 +0000)]
[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
Cameron Gutman [Tue, 7 Feb 2012 02:22:34 +0000 (02:22 +0000)]
[USBEHCI]
- Wait for periodic scheduling to start
- Increase the wait interval for asynchronous scheduling to start
svn path=/branches/usb-bringup-trunk/; revision=55477
Cameron Gutman [Tue, 7 Feb 2012 01:59:18 +0000 (01:59 +0000)]
[USBOHCI]
- Enable bus master on OHCI controllers if it's not set by default
svn path=/branches/usb-bringup-trunk/; revision=55476
Amine Khaldi [Mon, 6 Feb 2012 22:48:17 +0000 (22:48 +0000)]
[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
Amine Khaldi [Mon, 6 Feb 2012 22:45:18 +0000 (22:45 +0000)]
[WDMGUID]
* Add missing GUID_DEVINTERFACE_PARTITION guid.
svn path=/branches/usb-bringup-trunk/; revision=55474
Amine Khaldi [Mon, 6 Feb 2012 22:01:35 +0000 (22:01 +0000)]
[NTOSKRNL]
* Fix build.
svn path=/branches/usb-bringup-trunk/; revision=55473
Timo Kreuzer [Mon, 6 Feb 2012 22:01:09 +0000 (22:01 +0000)]
[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
Amine Khaldi [Mon, 6 Feb 2012 20:53:47 +0000 (20:53 +0000)]
[SMSS2]
* Fix build.
svn path=/trunk/; revision=55471
Amine Khaldi [Mon, 6 Feb 2012 20:43:38 +0000 (20:43 +0000)]
[MSI_WINETEST]
* Sync to Wine 1.3.37. This partially reverts r55047.
svn path=/trunk/; revision=55470
Amine Khaldi [Mon, 6 Feb 2012 20:43:28 +0000 (20:43 +0000)]
[MSI]
* Properly sync to Wine 1.3.37. This partially reverts r55046.
svn path=/trunk/; revision=55469
Alex Ionescu [Mon, 6 Feb 2012 19:37:19 +0000 (19:37 +0000)]
[SMSS2]: I hate you, rbuild.
svn path=/trunk/; revision=55468
Alex Ionescu [Mon, 6 Feb 2012 18:57:18 +0000 (18:57 +0000)]
[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
Amine Khaldi [Mon, 6 Feb 2012 18:48:50 +0000 (18:48 +0000)]
[SXS]
* Sync to Wine 1.3.37.
svn path=/trunk/; revision=55466
Alex Ionescu [Mon, 6 Feb 2012 18:14:36 +0000 (18:14 +0000)]
[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
Alex Ionescu [Mon, 6 Feb 2012 17:41:49 +0000 (17:41 +0000)]
[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
Alex Ionescu [Mon, 6 Feb 2012 17:03:59 +0000 (17:03 +0000)]
[SMSS2]: Add some debugging to figure out what's happening on KVM.
svn path=/trunk/; revision=55463
Timo Kreuzer [Mon, 6 Feb 2012 15:08:32 +0000 (15:08 +0000)]
[NTOSKRNL]
Handle 3 and 4 level page tables in MmArmAccessFault
svn path=/trunk/; revision=55462
Cameron Gutman [Mon, 6 Feb 2012 15:04:12 +0000 (15:04 +0000)]
[NTOSKRNL]
- Assert that reference counts are sane in MmReferencePage and MmDereferencePage
svn path=/trunk/; revision=55461
Timo Kreuzer [Mon, 6 Feb 2012 14:35:09 +0000 (14:35 +0000)]
[NTOSKRNL]
Add a modification that I missed to apply.
svn path=/trunk/; revision=55460
Timo Kreuzer [Mon, 6 Feb 2012 14:32:07 +0000 (14:32 +0000)]
[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
Giannis Adamopoulos [Mon, 6 Feb 2012 12:30:59 +0000 (12:30 +0000)]
[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
Giannis Adamopoulos [Mon, 6 Feb 2012 11:00:52 +0000 (11:00 +0000)]
[win32k]
- Fix a warning caused by my previous commit
svn path=/trunk/; revision=55457
Timo Kreuzer [Mon, 6 Feb 2012 10:46:52 +0000 (10:46 +0000)]
[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
Alex Ionescu [Mon, 6 Feb 2012 09:29:33 +0000 (09:29 +0000)]
[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
Timo Kreuzer [Mon, 6 Feb 2012 09:26:23 +0000 (09:26 +0000)]
[Ç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
Alex Ionescu [Mon, 6 Feb 2012 09:06:38 +0000 (09:06 +0000)]
[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
Alex Ionescu [Mon, 6 Feb 2012 08:17:03 +0000 (08:17 +0000)]
[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
Johannes Anderwald [Mon, 6 Feb 2012 08:15:21 +0000 (08:15 +0000)]
[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
Cameron Gutman [Mon, 6 Feb 2012 07:41:20 +0000 (07:41 +0000)]
[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
Johannes Anderwald [Mon, 6 Feb 2012 07:35:22 +0000 (07:35 +0000)]
[DDK]
- More header fixes for disk_new
svn path=/branches/usb-bringup-trunk/; revision=55449
Alex Ionescu [Mon, 6 Feb 2012 06:53:28 +0000 (06:53 +0000)]
[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
Johannes Anderwald [Mon, 6 Feb 2012 06:50:19 +0000 (06:50 +0000)]
[DISK_NEW]
- Fix compilation of new disk driver
- Patch by Alex Ionescu
svn path=/branches/usb-bringup-trunk/; revision=55447
Timo Kreuzer [Mon, 6 Feb 2012 00:29:50 +0000 (00:29 +0000)]
[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