Commit graph

64928 commits

Author SHA1 Message Date
Alex Ionescu
ba3178b813 [CMLIB/NTOSKRNL]: Move key deletion functions to cmlib, so that UEFI boot library can use them.
[BOOTLIB]: Implement BCD element deletion (bootreg: implement key deletion)
[BOOTMGR]: Implement BL_FATAL_ERROR_BCD_ENTRIES fatal error.
[BOOTMGR]: Stubplement support for memory list data parsing (when memtest.efi will run), and stubplement support for boot persistent data blobs.
[BOOTMGR]: Stubplement boot sequence support, create stub for boot entry population.
[BOOTMGR]: Stubplement boot entry selection, create stub for boot entry enumeration.
Mostly factoring-level changes to get us closer to the needed code paths.

svn path=/trunk/; revision=70609
2016-01-17 21:48:00 +00:00
Eric Kohl
f91d835c5a [USERINIT]
Add missing newline for MSVC.

svn path=/trunk/; revision=70608
2016-01-17 19:37:18 +00:00
Eric Kohl
8c9a41db96 [USERINIT]
Add two dialogs that are shown when the LiveCD is booted. The first dialog is used to select the language and keyboard layout. The second dialog is used to either start the shell or the GUI installer. Language and keyboard layout selection are still work in progress.

svn path=/trunk/; revision=70607
2016-01-17 19:20:47 +00:00
Sylvain Petreolle
9511b56f3c [FLOPPY]
Check for controller configuration status.
CORE-10761 #comment Please retest.

svn path=/trunk/; revision=70606
2016-01-17 16:59:55 +00:00
Hermès Bélusca-Maïto
8c2454ea74 [CMLIB]
- Now that both FreeLdr and MKHIVE use the regular (aka. the "NT-style public") CMLIB functions, get rid of the "old-style public" cmlib functions, with the exception of CmCreateRootNode and CmPrepareHive which remain for now due to a slight different implementation difference between NT and ours. Remove the cmtools.c file containing those old functions.
- Remove the now-deprecated VALUE_LIST_CELL structure (which was an old version of CELL_DATA:KeyList).
- When freeing hive bins (in HvpFreeHiveBins), use the storage number count stored in the hive instead of a constant value.
- Flat hives have only one storage type (they are read-only and reside only in memory).
CORE-10802
CORE-10793

svn path=/trunk/; revision=70605
2016-01-17 02:12:37 +00:00
Hermès Bélusca-Maïto
17c6bfd956 [FREELDR]
Make FreeLdr fully using the CMLIB library. CORE-10802 #resolve
CORE-10793

svn path=/trunk/; revision=70604
2016-01-17 01:42:11 +00:00
Hermès Bélusca-Maïto
660ad50bae [MKHIVE]
- Fix two warnings in GCC Linux build (in KeBugCheckEx and in a call to the helper function RepGetValueData).
- Remove two unused RTL ANSI functions.
- Fix USHORT vs. ULONG type misuage.
- Fix SIZE_T vs. ULONG usage.

svn path=/trunk/; revision=70603
2016-01-17 01:29:43 +00:00
Hermès Bélusca-Maïto
30da982e36 [MKHIVE]
- Make mkhive tool correctly initialize the Max(Value)[Name|Data]Length members of HHIVE structure. CORE-10794 #resolve
- Add default security hive descriptors to our mkhive-built registry hives. CORE-10795 #resolve
- Make MKHIVE fully using the CMLIB library. CORE-10802
CORE-10793

svn path=/trunk/; revision=70602
2016-01-17 00:50:03 +00:00
Hermès Bélusca-Maïto
5a29ec2659 [CMLIB]
- One less hardcoded number.
- Minor code formatting.

[NTOS]
- Minor code formatting (cmvalche.c).
- The key-node timestamp can usually be retrieved without using another temporary value.
- The security descriptor copy allocated for the hive can be freed after it was assigned to it.

[MKHIVE]
- Minor formatting of the source headers.
- Update the list of registry value types; add another error code (to be used later on).
- Remove now unused "ntoskrnl.h" header.

CORE-10793

svn path=/trunk/; revision=70601
2016-01-16 23:54:45 +00:00
Eric Kohl
b45ce14687 [MMC]
- Prepare the 'file open', 'file save' and 'file save as' actions.
- Store the file name in the console struncture.

svn path=/trunk/; revision=70600
2016-01-16 15:17:12 +00:00
Hermès Bélusca-Maïto
2bb29d9cea [BOOTDATA]
- Add "aif" and "aiff" to the supported MCI Extensions.
- Remove an extra erroneous "rmi" entry that was wrongly marked as being of type "MPEGVideo".

svn path=/trunk/; revision=70597
2016-01-16 00:30:01 +00:00
Pierre Schweitzer
a8eec26809 [MOUNTMGR]
Warn when stubling upon Winism.

svn path=/trunk/; revision=70596
2016-01-15 21:12:57 +00:00
Hermès Bélusca-Maïto
9e6cbffcd8 [FREELDR]
- Since the registry handling rewrite of Timo in r61595 all the freeldr-specific registry structures got deprecated. Remove them, as well as few other prototypes of non-existing functions.
- Use the CMLIB registry flags instead of some (already-removed) flags --> fix build.

svn path=/trunk/; revision=70594
2016-01-14 20:00:18 +00:00
Hermès Bélusca-Maïto
62e9fb7872 [CMLIB]
- Do not define _NTOSKRNL_ at compilation time, keep only the _NTSYSTEM_ define (and NASSERT).
- Remove deprecated unused private flags.
- Modify CmCreateRootNode to make it look more similar to the CmpCreateRootNode function of ntoskrnl/config/cmsysini.c, to ease future code adaptation in cmlib & mkhive and then deprecate CmCreateRootNode in favour of CmpCreateRootNode.

svn path=/trunk/; revision=70593
2016-01-14 18:03:35 +00:00
Hermès Bélusca-Maïto
5cef0d2fc2 [VFATLIB]: Comments (and DPRINT) fixes only.
svn path=/trunk/; revision=70583
2016-01-13 14:12:04 +00:00
Hermès Bélusca-Maïto
734bc29142 [CMLIB]
- Fix HBLOCK_SIZE vs. HSECTOR_SIZE mix-ups in HvpGetHiveHeader.
- Add a function to create cluster-aligned hive base blocks (HBASE_BLOCK) based on the existing code of HvpGetHiveHeader, and use it everytime we need to allocate HBASE_BLOCKs.
- Keep the actual base block size in the BaseBlockAlloc member, and use this value for the "quota" parameter when we free the blocks.
- Introduce & use a function to initialize the hive file name array (mainly used for debugging purposes).
- "HvpInitializeMemoryInplaceHive" should read "HvpInitializeFlatHive" instead since this function is used to initialize a flat hive. Memory-in-place hives are a different thing.
- Fix some memory leaks in the error paths of HvLoadHive.
- Initialize some additional hive members in HvInitialize(Hive).

svn path=/trunk/; revision=70582
2016-01-13 01:40:58 +00:00
Hermès Bélusca-Maïto
36a7330eee [CMLIB]: Better fix for r70580.
svn path=/trunk/; revision=70581
2016-01-12 22:22:18 +00:00
Hermès Bélusca-Maïto
c63d2718c5 [CMLIB]: Fix host-tool compilation (+ add a comment).
svn path=/trunk/; revision=70580
2016-01-12 22:17:39 +00:00
Hermès Bélusca-Maïto
ab7ca4116c [CMLIB]
- Fix some structure definitions to match Win2k3 symbols (define also _SECURITY_DESCRIPTOR_RELATIVE for the host-tools so that the CM_KEY_SECURITY structure is always correctly defined).
- Complete other structure definitions with respect to the NT version defined at compile time; http://msdn.mirt.net/ was used as the source of information.
- Add the definition of CM_BIG_DATA for supporting big valued keys (see also http://www.msuiche.net/2009/06/07/windows-vista-and-later-registry-secrets/ for what they are).

[NTOS]
- Move CM functions defined in the CMLIB out of the internal ntoskrnl headers.

svn path=/trunk/; revision=70579
2016-01-12 21:37:36 +00:00
Pierre Schweitzer
cae19acb7a [ROSVBOXMGMT]
Let's add hacks to glue hacks together:
In case rosvboxmgmt is started with its current directory not being the directory where it is along with hackssign_client.exe, then autoassign fails finding the hackssign client executable and thus, fails assigning drive letter.
This is what happens when you starts rosvboxmgmt on boot with shell.
So, when using autoassign, first look for the location of rosvboxmgmt and set our current directory there.

This fixes rosvboxmgmt autoassign not working on boot.

CORE-10032
ROSAPPS-303

svn path=/trunk/; revision=70578
2016-01-11 22:41:32 +00:00
Hermès Bélusca-Maïto
658e9e13b3 [DESK.CPL]
Resolution selection improvement patch by Mark Jansen:
- Fix a bug that allowed only a subset of resolutions to be visible.
- Update the preview on the fly when dragging the resolution slider.
- Fix a bug that prevented the monitor preview from properly invalidating the preview, leaving the old preview partially visible.
Needs to be included in 0.4 branch.
CORE-10786

svn path=/trunk/; revision=70577
2016-01-11 20:52:44 +00:00
Eric Kohl
30862b5020 [vfatlib]
- Use a single wipe function (FatWipeSectors) for FAT12, FAT16 and FAT32.
- Code has been reviewed by Hermès and me. Ready for merge into 0.4.

svn path=/trunk/; revision=70576
2016-01-11 20:44:06 +00:00
Hermès Bélusca-Maïto
d0eb702ec2 [NTOS:CONFIG]
Remove a very old hack (that dated back from the Configuration Manager rewrite): now the hives are already correctly loaded in memory, therefore there is no need to call CmCreateRootNode after creating a hive, because the root node is subsequently initialized with calls to CmpCreateLinkNode. The comment saying that calls to CmCreateRootNode can be removed when CmpCreateLinkNode is used, is now in order. This means we correctly parse & mount the hives. The CmCreateRootNode function is now only used in the 'mkhive' tool in order to create file hives, since this tool needs to create new hives from nowhere (that's why also our bootloaders do not need this function: they only load & parse existing hive files).

The fact that this hack remained caused us hidden troubles: some hives (SAM, SOFTWARE) had "two" root keys: a first one that was unused (which was created by this hackish call), and the second one which was the one used (and was created by CmpCreateLinkNode as expected).

svn path=/trunk/; revision=70575
2016-01-11 00:37:44 +00:00
Eric Kohl
4216e8389f [SCSIPORT]
Fix indentation! No code changes!

svn path=/trunk/; revision=70574
2016-01-10 22:39:25 +00:00
Hermès Bélusca-Maïto
a677879087 [NTOS:CONFIG]
- Remove useless casts.
- Fix a REG_OPTION_* hack.

svn path=/trunk/; revision=70573
2016-01-10 22:35:09 +00:00
Eric Kohl
cd9434b877 [NDK]
Add PLUGPLAY_CONTROL_RETRIEVE_DOCK_DATA.

svn path=/trunk/; revision=70572
2016-01-10 21:26:46 +00:00
Eric Kohl
b83fd18555 [INTL]
- Remove the Advanced page for non-admin users.
- Disable the 'complex script' and 'east asian language' checkboxes for non-admin users.

svn path=/trunk/; revision=70571
2016-01-10 21:12:23 +00:00
Timo Kreuzer
24c45ac2f1 [PSDK]
Add missing dbghelp.h definitions

svn path=/trunk/; revision=70570
2016-01-10 19:46:16 +00:00
Timo Kreuzer
1c0099452e [CREATESPEC]
- Implement retrieving export names from forwarders
- Add error() function to print errors
- Refactor image/symbol loading
- Fix some bugs and add some hacks, so that it compiles in out tree
- Add to build

svn path=/trunk/; revision=70569
2016-01-10 18:50:36 +00:00
Eric Kohl
3c1003aaf5 [LSASRV]
Add credential function stubs to the lsa dispatch table.

svn path=/trunk/; revision=70568
2016-01-10 13:01:29 +00:00
Eric Kohl
396b335764 [LSASRV]
Add missing exports.

svn path=/trunk/; revision=70567
2016-01-10 12:44:35 +00:00
Eric Kohl
cc8ac23992 [ADVAPI32]
Implement LsaOpenPolicySce.
[LSASRV]
Update the LsarOpenPolicySce prototype.

svn path=/trunk/; revision=70566
2016-01-10 10:27:46 +00:00
Hermès Bélusca-Maïto
1dba309628 [CMLIB][NTOS:CONFIG]
- The BaseBlock->Length member is really the size in bytes of the full hive, minus the header (base) block size.
- Remove the last remnents of the "hack of doom" aka. the one similar in magnitude to the US national debt, addendum to r61621 and r26712. The FileSize can be computed with BaseBlock->Length.

svn path=/trunk/; revision=70565
2016-01-10 02:16:39 +00:00
Hermès Bélusca-Maïto
a5ed535978 [NTOS:CONFIG]
- Use the standard "CmHive" naming (that is used in all the rest of the 'config' module) for the first parameter of CmpInitializeHive.
[CMLIB]
- Fix the order of the 'HiveFlags'/'FileType' parameters in HvInitialize (the function 'CmGetSystemControlValues' in ntoskrnl/config/cmcontrl.c got them right already).

svn path=/trunk/; revision=70564
2016-01-10 01:28:04 +00:00
Hermès Bélusca-Maïto
3182337569 [CMLIB]: Use the HvGetCell* macros where it's possible.
svn path=/trunk/; revision=70563
2016-01-09 23:50:10 +00:00
Hermès Bélusca-Maïto
c8688507db [CMLIB]: Go from 3-space indentation to 4-space.
svn path=/trunk/; revision=70562
2016-01-09 23:42:45 +00:00
Hermès Bélusca-Maïto
c55976dada [CMLIB]
- HV_BLOCK_SIZE and HBLOCK_SIZE are the same thing; prefer the newly introduced HBLOCK_SIZE define.
- Improve the HvGetCell* macros.
- Add next to the defined hive signatures what their corresponding strings are (for documentation purpose).
- Some whitespace fixes in the headers.

svn path=/trunk/; revision=70561
2016-01-09 23:15:05 +00:00
Eric Kohl
496764ad58 [DEVMGR]
Set the focus to the treeview when the main window recieves a WM_ACTIVATE message.
CORE-10769 #resolve #comment Fixed in r70560.

svn path=/trunk/; revision=70560
2016-01-09 22:22:17 +00:00
Timo Kreuzer
2a5c5c0c76 [CREATESPEC]
Small utility to auto-create spec files. Uses MS symbol server to evaluate data not available in the export table. Features:
- Parse export table for export names and forwarders
- Find function name for nameless exports
- Recognize calling convention / data exports
- Analyze function parameters

svn path=/trunk/; revision=70559
2016-01-09 19:05:14 +00:00
Hermès Bélusca-Maïto
6ed0a4c6b2 [USETUP]: Do not append an extra NULL-terminator when updating freeldr.ini
svn path=/trunk/; revision=70558
2016-01-09 11:39:56 +00:00
Hermès Bélusca-Maïto
119229c8fb [USETUP]: Since calling RtlAllocateHeap with the HEAP_ZERO_MEMORY flag works as expected, just use it instead of manually zero-out the newly-created buffer just after.
svn path=/trunk/; revision=70557
2016-01-09 11:22:20 +00:00
Alex Ionescu
9701df346f [BOOTMGFW]: Implement the final boot selection & launch loop.
[BOOTMLIB]: Implement a few more BCD option functions.
Minus a PE loader (BmpLaunchBootEntry) and some more BCD parsing (BmpGetSelectedBootEntry) with some glue in between, the UEFI Boot Manager is nearly done. Once it is, it will be time to implement the actual loader -- Winload.efi. The good news is that we'll have all of bootlib already good to go (with all its hacks). The bad news is that Winload will turn on paging, so all those unimplemented paths and UEFI mode switches will have to be made to work.

svn path=/trunk/; revision=70556
2016-01-09 05:39:18 +00:00
Hermès Bélusca-Maïto
5e7a5d0d57 [DEVMGR]: Keep the computer name as it is, don't lower-case it.
svn path=/trunk/; revision=70555
2016-01-08 21:14:13 +00:00
Hermès Bélusca-Maïto
adec9641bc [CDMAKE]: Improve an error message.
svn path=/trunk/; revision=70554
2016-01-08 20:27:55 +00:00
Hermès Bélusca-Maïto
9c232dfd4f [CDMAKE]
- #if _WIN32 --> #ifdef _WIN32
- Define the "max" macro only if needed.
- Fix a comment.
- Plug a memory leak ('case_name' not freed in the "!*case_name" case of the dir_hash_create_dir function).
- Return a non-zero value (the file structure pointer) from dir_hash_add_file in case we succeed in creating the file in the ISO structure, and NULL otherwise (i.e. when the filename is empty). In that latter case we fail the hard way. No-named files are completely invalid in ISO archives. Now, the following testcase (e.g. to be added into bootcd.lst):
reactos/reactos.exe/=C:/test/reactos.exe
fails as expected (before, we were able to create a directory named "reactos/reactos.exe", and inside, a no-named file with the contents of C:/test/reactos.exe).

svn path=/trunk/; revision=70553
2016-01-08 20:25:30 +00:00
Hermès Bélusca-Maïto
509ec7bdab [CDMAKE]
- Optimize splitting paths (merge chop_dirname and chop_filename functions).
- Make the code working as expected for the following testcases (you can test these by adding the following lines into e.g. bootcd.lst):
testdir1   --> create "testdir1" in the root directory.
testdir2/  --> create "testdir2" in the root directory. No no-named subdirectory is created.
testdir3// --> create "testdir3" in the root directory. No no-named subdirectory is created.
dir1//\/dir14///\//\//   --> create "dir1" in the root directory, and "dir14" inside dir1. No no-named subdirectory is created.
EFI/ReactOS/Boot/Fonts//chs_boot.ttf=C:/somepath/chs_boot.ttf --> create the directories "EFI/ReactOS/Boot/Fonts", no no-named subdirectory is created, and create in the Fonts directory the file "chs_boot.ttf".

Before those changes, empty no-named (therefore, invalid) subdirectories were created in the second, third and fourth testcases, and an obscure error was returned in the fifth testcase.

svn path=/trunk/; revision=70552
2016-01-08 18:43:46 +00:00
Thomas Faber
9533d5eb74 [ACPICA]
- Update to version 20160108

svn path=/trunk/; revision=70551
2016-01-08 16:41:39 +00:00
Thomas Faber
3e7cd6e646 [ACPICA]
- Actually use the BSD/GPL licensed version as we should be, instead of the Intel license

svn path=/trunk/; revision=70550
2016-01-08 16:37:52 +00:00
Hermès Bélusca-Maïto
2aa1a8c21d [BOOTMGR]: Fix missing '\r' for EfiPrintf newlines, and few misspellings.
svn path=/trunk/; revision=70549
2016-01-08 15:01:11 +00:00
Hermès Bélusca-Maïto
6d8ed09fbe [FATTEN]: Set the directory volume label in addition to the bootsector label.
[FATFS]: For FAT12 volumes, do not expand the FAT size.

svn path=/trunk/; revision=70548
2016-01-08 13:51:45 +00:00