[CSRSRV]: CSRSS was started with a free address space, and was able to map 0xA0000 into it by luck, because the ReactOS Mm allocator picks address ranges randomly, and it somehow managed to avoid the low 1MB addresses. Were this algorithm to change, or perhaps, were we to implement VADs for VM allocations, the 0xA0000 region might already be allocated (by an early-process-initialization allocation, such as the heap). This is what the flag referenced above was designed for, but it was not used. Using this flag, on the other hand, now makes CSRSS fail, because it attempts to map the RAM into 0xA0000, which fails since you can map a section on top of reserved memory. To work around this Brobdingnagian annoyance, CSRSS simply releases the first MB of memory that SMSS has nicely reserved for it, and then proceeds with the mapping. This fixes the issue of getting 0xA0000 by luck and now guarantees it can be mapped.
svn path=/trunk/; revision=49133
Implemented IopFetchConfigurationInformation(), IopCreateArcNamesCd(), IopCreateArcNamesDisk(), IopVerifyDiskSignature()
Removed IopApplyRosCdromArcHack(), IopGetDiskInformation(), IopAssignArcNamesToCdrom()
Finally, rewritten IopCreateArcNames()
To make it short, this is the rewrite of ARC names handling in the kernel.
This brings our kernel to a higher state of existence. Indeed, it's leaving NT4 design for a proper NT5.2 design, with less hacks, less ROS specific stuff and such.
This code handles the mount manager we don't have yet.
svn path=/trunk/; revision=49131
Implemented FstubAllocateDiskInformation(), FstubDbgGuidToString(), FstubDbgPrintDriveLayoutEx(), FstubDbgPrintPartitionEx(), FstubDetectPartitionStyle(), FstubFreeDiskInformation(), FstubGetDiskGeometry(), FstubReadPartitionTableMBR(), FstubReadSector()
Stubbed FstubReadPartitionTableEFI()
This leads to a correct & working implementation of IoReadPartitionTableEx(). As this state, it only handles MBR partition tables as EFI/GPT as been stubbed out.
EFI/GPT support will come later.
svn path=/trunk/; revision=49130
Switch use from DISK_GEOMETRY to DISK_GEOMETRY_EX. It's needed to handle some Windows 2003's kernel routines.
[CDROM]
Reflect changes in Class2.
[DISK]
Reflect changes in Class2.
Also added support for IOCTL_DISK_GET_DRIVE_GEOMETRY_EX.
svn path=/trunk/; revision=49129
- Check that the interrupt line is not 255
- Check that the interrupt pin is not 0
- Fixes a failed assertion that Caemyr experienced with an ATI Rage graphics card
svn path=/trunk/; revision=49127
- Don't access unitialized memory. Caught thanks to a new heap manager, and this fixes all weird actctx exceptions in kernel32_winetest heap.
svn path=/trunk/; revision=49122
- Update the only two tests that I tested and know that does not have RTL support. The Right To Left support will be another comprehensive change that can be done in a non intrusive way as long no one uses it.
svn path=/trunk/; revision=49117
- Remove the FreeLParam 'feature' from win32k. This hack allowed us to post messages that contain pointers. However we don't do it anymore so we can also remove this as well
- Add keyboard messages to the list with Hardware messages and not in the list with post messages
svn path=/trunk/; revision=49115
- Fix RtlQuery/SetHeapInformation prototypes, move them to an appropriate place.
- Implement RtlQuery/SetHeapInformation.
- Implement in-place block growing.
- Amount of winetest heap failures is down to 6 (3 exceptions still happen).
svn path=/trunk/; revision=49111
- Katayama Hirofumi: Use DataLength field in RegEnumValueW instead of DataOffset.
- Roel Messiant: Test behaviour in Vista and apply same fix to RegEnumValueA.
See issue #2492 for more details.
svn path=/trunk/; revision=49110
- Properly set HEAP_GROWABLE flag if dwMaximumSize is 0 in HeapCreate. Also check for dwMaximumSize validity. Fixes out-of-memory problems when running "heavy" applications like Office 2003 setup with a new heap manager (which actually respects HEAP_GROWABLE flag).
svn path=/trunk/; revision=49102
- apply patch by Black_Fox (see bug 5434)
- fix minor bugs introduced by it
- generalize changes related to mirroring rectangular selections to free form selections
- solve problem regarding selection contents update
svn path=/trunk/; revision=49089
- Sync to Wine-1.3.4
- Bugfix: The switchtype attribute of non-encapsulated unions was not propagated to a type but only to its aliases.
svn path=/trunk/; revision=49085
- Sync to WINE 1.3.4
[WININET]
- Add a forgotten change to the diff
[WINHTTP]
- Sync to WINE 1.3.4
- Sync the inet_ntop.c change from wininet
- Update the diff
svn path=/trunk/; revision=49083
- Add a ROS-specific change that was missed during the last winesync to fix winsock error handling
- Remove the CP_UNIXCP definition
- Use WSASetLastError instead of errno in inet_ntop.c
- Thanks to IRC:igorko for pointing out the bug
svn path=/trunk/; revision=49078
- Move (and cleanup) private heap definitions and structure to a standalone header file heap.h. It's explicitly included in heap_rewrite.c and heapdbg.c to prevent conflicts with the existing heap manager in heap.c.
svn path=/trunk/; revision=49071
- Implement setting/getting heap user values and flags (very easy provided heap design is now proper). Amount of winetest failures is down to 12 (but 3 crashes in child processes).
svn path=/trunk/; revision=49069
Igor Paliychuk:
- Update some broken links.
- Changed the cyrillic "P" to a latin "P" in the beginning of the VBox driver's russian and ukrainian descriptions (rapps doesn't display it when it's cyrillic).
svn path=/trunk/; revision=49067
- Revert incorrect changes from 34404 and 40910: RtlSetUserFlagsHeap() doesn't set usual heap flags, it sets special user-settable heap entry flags. With the new heap manager such usage corrupts heap integrity (not to say prototype of this function is incorrect).
- RtlReAllocateHeap() is supposed to copy user values and flags so there is no need to set them afterwise again.
- Fix a typo in comments.
svn path=/trunk/; revision=49063
- Set proper heap flags (tail and free checking) in case heap validation is enabled. Fixes another bunch of winetests.
svn path=/trunk/; revision=49057
Rename the EVENTSOURCE struct to LOGHANDLE because it is currently used like a handle object. The EVENTSOURCE struct will be added again in one of the next commits.
svn path=/trunk/; revision=49055