- Avoid a potential double free in InitializePrintMonitor2. CID 1401299
- Avoid a use after free in LocalmonClosePort. CID 1401298
svn path=/trunk/; revision=73835
Modify ReadVolumeLabel() so that it is able to read the volume label, even without using the VCB, the root FCB, Cc, the universe.
This is important, because in case of device verifying, you cannot rely on these elements anylonger, but you need to read the label.
A readme has been attached to the function, to indicate how to call it (I wish I could have put more asserts!). It's ugly, I know.
This allows fixing a FIXME in VfatVerify(): we can also check the volume label for FATX volumes.
The FIXME comment was misleading: MS FastFAT doesn't make any checksum or whatever of FAT root. Let's not do it.
svn path=/trunk/; revision=73830
- Make the "Open with" dialog start in Program Files as is done in Windows (doesn't really changes anything because comdlg32 doesn't expand environment variables).
svn path=/trunk/; revision=73823
Generalize the usage of functions pointers for FatX vs Fat specific code (direntry).
This should also help speeding up FastFAT.
svn path=/trunk/; revision=73822
In the FCB, get rid of the FCB_IS_FATX_ENTRY flag. It makes no sense to have it on each and every file as the VCB already has such flag
svn path=/trunk/; revision=73821
More FastFAT cleanup.
Except a light performances boost due to useless checks removal in read/write and to some functions inlining
More to follow...
svn path=/trunk/; revision=73819
- The pattern bitmap can get deleted during the GDI cleanup for process before the brush itself.
- Gets rid of some of those pesky "GreDeleteObject: Trying to delete invalid object" debug prints.
svn path=/trunk/; revision=73812
- Use the official libtiff 4.0.3 def file to determine exported functions (instead of exporting everything in GCC builds, nothing in MSVC builds)
- Remove unused ROS-diffs
CORE-6898 CORE-12275
svn path=/trunk/; revision=73811
- Addendum to r73626. Convert the print specifiers too so that ping doesn't only output the old specifiers themselves.
svn path=/trunk/; revision=73810
-Fix a couple of cases where we use the versioned class atom instead of the non versioned one.
[USER32]
- Add support for versioned classes in RegisterClassExWOWW, GetClassInfoExW, GetClassInfoExA, UnregisterClassA, UnregisterClassW, and User32CreateWindowEx
- Make ClassNameToVersion return the name of the versioned class and the library name that implements it while preserving a hack that lets user32 know which classes are registered by comctl32 (this is needed because the default activation context doesn't contain the non versioned classes yet).
- Make VersionRegisterClass to load the specified library and make it register its classes which is used when the class is not registered yet but its manifest is active.
svn path=/trunk/; revision=73806
- Add and install a manifest for comctl32 version 5.82.
- Since our comctl32 tries to imitate both version 5 and version 6, register its classes twice, once while having the version 6 manifest active and once when having the version 5 active.
- Register the themed versions of the built in controls while having the version 6 manifest active (and register them as global classes). This breaks theming of built in controls until versioned classes get implemented.
- Do not try to subclass the dialog class. This is incorrect and can lead to problems like in CORE-8534, CORE-12727, CORE-8387. This removes the background texture of the themed tabs which will be implemented in the future in uxtheme using api hooks.
This breaks a great deal of theming but keep in mind that it is in the middle of a transition to have them implemented correctly without the terrible side effects (broken ansi conversion, not always using themes for built in controls. However comctl32 is now ready for versioned classes to be enabled.
CORE-12285
svn path=/trunk/; revision=73803
[BOOTLIB]: Correctly bias access to GDT/IDT registers by 2 bytes since this is a 48-bit instruction. The loaded GDT/IDT was previously invalid and causing random GPFs.
[BOOTLIB]: Fix EfiStall in protected mode. It was previously not stalling.
[BOOTLIB]: Fix calculation in MmMapPhysicalAddress
[BOOTLIB]: Fix missing goto in MmSelectMappingAddress which broke the function in real mode.
[BOOTLIB]: Fix incorrect ranges in MmSelectMappingAddress.
[BOOTLIB]: Fix incorrect offset calculation in MmSelectMappingAddress.
Now hitting (as expected), unimplemented virtual code path in BlMmMapPhysicalAddressEx.
svn path=/trunk/; revision=73801
[BOOTLIB]: Implement MmSelectMappingAddress and fix its prototype.
[BOOTLIB]: Implement MmPapPageAllocatorExtend and fix MmPapAllocatePagesInRange to use it.
We are trying to choose VA 0 for PA 0x8000 and currently fail due to conflicts. TBD.
svn path=/trunk/; revision=73797
PNP_GetDeviceList and PNP_GetDeviceListSize:
- Do not return CR_CALL_NOT_IMPLEMENTED by default.
- pulLength is counted in characters, not in bytes!
- Use the correct Relations value for PowerRelations.
[NDK]
Add the PowerRelations value to a comment.
[DEVMGR]
CM_Get_Device_ID_List_Size_ExW and CM_Get_Device_ID_List_ExW count the buffer length in characters, not in bytes!
svn path=/trunk/; revision=73796
In order to make VfatVerify() work on something else than floppies, ask for change count when issuing IOCTL_DISK_CHECK_VERIFY
svn path=/trunk/; revision=73793