* Put ntoskrnl and ntdll in the same folder, because they both start with nt.
* Place hal next to acpi, they both deal with hardware stuff.
* Move mountmgr next to usb drivers.
* Put the rtl next to the crt, and share as much as possible between the two.
* I'm just kidding, you know, April's fool and all ;)
Here's the real deal:
[WIN32SS]
* And finally, integrate win32k itself into the new file layout. Now the subsystem modules are located close to each other (like gdi32 and ntgdi, or user32 and ntuser).
* Thanks go to the subsystem team for coming up with this nice layout, hopefully this will scale to the whole codebase layout soon.
* Special thanks to Smiley for coming up with this cool idea :)
svn path=/trunk/; revision=56311
* Initialize the subsystem restructure. Start by bringing-in gdi32 and user32. Brought to you by the awesome Subsystem Team.
svn path=/trunk/; revision=56305
- If neccessary unlock the working set in MiMakeSystemAddressValid before calling MmAccessFault, fixes a failed ASSERT, when coming from NtFreeVirtualMemory
- Remove duplicated ASSERT
svn path=/trunk/; revision=56300
- turkish translation of dxdiag by Arda Tanrýkulu (bug no. 6986);
- italian translation of browseui by Paolo Devoti (bug no. 6980);
svn path=/trunk/; revision=56298
* Make use of /client none and /server none to tell midl not to generate them.
* Add dummy proxy file generation in generate_idl_iids().
svn path=/trunk/; revision=56288
* Recognize the extra client/server files in add_rpc_files() that Mr. midl generates regardless of the passed flags, and mark them as dummy files so that they don't break the msvc parallel build.
svn path=/trunk/; revision=56286
- Don't rely on the current lookahead size for loopback packets. Instead, indicate the entire packet at once.
- The current lookahead size doesn't matter when indicating full packets. The packets are indicated in their entirety regardless of the lookahead size.
- The Parallels Tools NIC driver now works on ROS. Dedicated to Alex Ionescu.
svn path=/trunk/; revision=56285
- The legacy ROS Mm uses structures known as page ops to track operations on a page such as page out, page in, and access fault. The idea is that each operation is forced to wait until the page has completed all other pending operations to start its work. The problem was that the page op's completion event was a NotificationEvent instead of a SynchronizationEvent. This caused all operations to proceed at the same time if they were waiting on a single page op to begin. Now that is fixed and page ops proceed one after another as intended. This bug has been around since r9077.
- When waiting for sections to be unmapped or destroyed, the Mm waits for pending page operations to complete. The problem is that MmUnmapViewOfSection had a critical bug in which it forgot to dereference the page op it just retrieved. This caused zombie page ops to be stuck to that particular address if there were any pending operations at the time of the MmUnmapViewOfSection call. As a result, section destruction to bug check due to the hung page op after waiting 10 seconds for the operation to complete. This bug has been around since r18849.
- Due to the combined effects of the above bugs, sometimes unmapping or freeing a section would hang the system or bug check the system (remember the "Failed to wait for page op" messages?). This was evident in smiley_'s theme work when many applications calling FreeLibrary at the same time would trigger this bug. There are likely many more cases that triggered this series of events which either could never be replicated or simply could not be explained.
svn path=/trunk/; revision=56284
Attempt to fix a concurrency issue with midl. Regarding to the MSVC builder output, midl failed when compiling wine/itss.h due to a concurrent access to itss_i.c. Although the command to generate itss.h doesn't seem to geenrate itss_i.c (at least not on my wdk buld), I added a switch to rename that file.
svn path=/trunk/; revision=56280
"while (TRUE);" is probably the worst way of handling critical errors / unhandled failure pathes! Replace that with ASSERT(FALSE);
svn path=/trunk/; revision=56272
- Only initialize the nonpged pool after the pfn database was initialized
- "Fix" IRQL for the initialization of non paged pool
svn path=/trunk/; revision=56271
- Implement HwIdle() function to put cpu in idle mode, when waiting for keyboard input.
- Patch by Carlo Bramini (carlo dot bramix at libero.it)
See issue #6453 for more details.
svn path=/trunk/; revision=56270
Write a lot of general prose about the operation of the Mm parts of NewCC.
Dedicate to timo and chongo.
No code changes.
svn path=/trunk/; revision=56267
- romanian rapps translation update (including INF update) by Stefan Fulea (bug no. 6878);
- italian translation update by Paolo Devoti (bug no. 6980);
svn path=/trunk/; revision=56266
- ObReferenceObject() does NOT return an NTSTATUS. It returns the new reference count. Remove pointless NT_SUCCESS check
- Enable interrupts in amd54 page fault handler before calling MmAccessFault
- Add missing MmDecommittedPte for amd64
svn path=/trunk/; revision=56265