- Correctly handle NULL ppidl in EnumerateNext as required by Skip() callers
- Don't reenumerate NT directories every time EnumerateNext is called from Skip()
CORE-10311 #resolve
svn path=/trunk/; revision=69462
- Implement BiInitializeAndValidateHive, BiLoadHive. Leveraging our existing cmlib and the previously committed code, we are now able to read the BCD file, parse it as a registry hive, and lookup the BCD Objects subkey! The BCD Data Store is now available to the Boot Manager (which also validates that reading from ETFS works).
svn path=/trunk/; revision=69454
- The Objects key is in the root, not under Description.
[MKHIVE]:
- Make it *actually* build a BCD hive. It was doing nothing before, because it turns out that irrespective of what appear to be dynamic, command-line driven behavior modes, all of mkhive's logic is deeply tied together through C-level changes and knowledge. (for example, that's why calling it with a single .inf, it still wants to build 6 hives for you). There were also some copy/pasta bugs in the BCD handling code, now fixed.
svn path=/trunk/; revision=69453
- Fix multiple bugs in ETFS code (confusion between file offset vs. disk offset)
- Implement EtfsGetInformation, EtfsSetInformation, and fix ETFS_FILE definition to make this easy.
- Implement EtfsRead.
- Fix multiple bugs in file I/O code (swapped/reversed validation checks)
- Make BlStatusPrint call EfiPrintf on debug builds, even without BD.
- Add some additional error logging.
svn path=/trunk/; revision=69452
- Improve the internal locale storage. Replace the array of strings by a customized struct.
- Implement the locale customization properly. The customization property sheet modifies the internal locale storage rather than the registry. Now, cancelling changes works properly.
CORE-10074
svn path=/trunk/; revision=69449
- Whoever wrote mkhive ran into the problem I just did, and realized hey-i-dont-fucking-want-to-use-that-almost-copy-pasted-but-not-shared-code-so-why-dont-i-use-the-good-kernel-code-instead... but instead of taking the time to create a fucking library like I just did (cause that would be hard man, and fixing headers n' shit), just hard-coded the paths to the kernel files directly like a lazy shit. Fix mkhive to just rely on cmlib, which now has the files shared there.
svn path=/trunk/; revision=69445
- Move cmindex.c and cmname.c to cmlib, because bootmgr/winload use the kernel's cm implementation, unlike our freeldr which uses an almost copy-pasted-but-not-shared-because-hey-why-not-have-to-fix-the-bugs-in-two-places-instead-of-just-one implementation.
- Minor fixes to headers to allow those two files to be used/built outside of ntoskrnl.
svn path=/trunk/; revision=69444
Usability fixes (part 2):
- Properly keep the mouse show state across screenbuffer switches.
- Use unicode strings for the disk menu items.
See r69428.
svn path=/trunk/; revision=69431
Convert COLOR16 values to byte range before calling XLATEOBJ_iXlate.
This fixes gradient colors in some applications, as for example in Code::Blocks.
Patch by Vort. This is a fix for code written in revision r8117, so old !!
CORE-8652 #comment Committed in r69430, thanks guys!
svn path=/trunk/; revision=69430
Usability fixes:
- Update the menu each time the user chooses to show or hide the mouse pointer.
- Keep the mouse show state across screenbuffer switches (text/graphics) (half-hackish at the moment; will be elegantly fixed later on).
- Update the floppy disk menu items each time the user mounts / ejects a disk; display the disk image file name currently mounted (CHAR strings used at the moment, WCHAR conversion will follow soon).
svn path=/trunk/; revision=69428
Reading/writing to memory should #SS(0) when the segment is the stack segment,
and #GP(0) otherwise. It should never generate #NP.
svn path=/trunk/; revision=69427
- Temporarily hack the boot sequence to floppy, then hard disk. See r69421; will be improved in the future.
- Complete the BIOS 16-bit bootstrap code.
svn path=/trunk/; revision=69422
- Add a basic boot sequence functionality (read from CMOS); will be improved in the future.
- Print a "FATAL BOOT FAILURE" error message when INT 18h is called.
- Fail startup if we cannot mount the available hard disk images.
- Improve some diagnostic error messages.
svn path=/trunk/; revision=69421
- Don't forget to push the error code when the exception handler is a task gate.
- Use SS0/ESP0, SS1/ESP1, or SS2/ESP2 for ring 0/1/2 code task CALLs.
svn path=/trunk/; revision=69420
Properly implement support for IOCTL_DISK_GET_DRIVE_GEOMETRY, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, IOCTL_CDROM_GET_DRIVE_GEOMETRY_EX, IOCTL_DISK_GET_LENGTH_INFO in CdRomDeviceControl
CORE-10287 #resolve #comment Fixed with r69418
svn path=/trunk/; revision=69418