• last updated 4 hours ago
Constraints: committers
Constraints: files
Constraints: dates
  • More
  • CR-120
  • resumed reviewing

- Style changes, typo fixes etc.

  1. … 3 more files in changeset.

- Quit CmdParser() as soon as no valid key supplied


- Close the INF file after loading the info

[NTFS] - Allow for creating a file when the index root gets too large and needs to be moved into an index record. Add some helper functions.

+AllocateIndexNode() - Allocates a new index record in an index allocation.

+CreateDummyKey() - Creates the final B_TREE_KEY for a B_TREE_FILENAME_NODE. Also creates the associated index entry.

GetSizeOfIndexEntries() - Sums the size of each index entry in every key in a B-Tree node.

+SetIndexEntryVCN() - Sets the VCN of a given IndexEntry.

NtfsInsertKey() - Handle instance when the index root grows too large. If it does, add its contents to a new sub-node, and replace contents with a dummy-key whose child is the new node.

UpdateIndexAllocation() - Update index entry if a key has just been assigned a child allocation.

UpdateIndexNode() - Make sure the node exists on disk, and allocate an index record for it if it doesn't.


- Added the icon provided by Pi_User5

    • binary

- Changed "/SETUP" key to "/INSTALL"

- Added support for multiple apps install by "/INSTALL"

rapps /INSTALL 7-Zip AkelPad [...]

- Added INF based batch install with the "/SETUP" key

Works for the full path for the .inf file

TODO: detect if user entered the relative path for the inf and correct it

- Moved CmdParser to include/unattended.h and unattended.cpp

    • -0
    • +70
[NTFS] - Allow for resizing an attribute in the middle of a file record. Add a helper function and minor improvements:

AddRun() - Allow for resizing the size of the data runs when the attribute isn't the last in the file record. Fix some comments.

CreateIndexBufferFromBTreeNode(), CreateIndexRootFromBTree - Fix math of IndexSize when checking if the index buffer is too large.

InternalSetResidentAttributeLength() - Allow changing the length of an attribute in the middle of a file record. Adjust the position of every attribute after the one being resized.

+MoveAttributes() - Moves a block of attributes to a new location in the file Record.

PrintAllVCNs() - Add consideration for an index allocation with a size of 0.

WriteAttribute() - Add optional parameter for a pointer to the file record being written to. If passed a file record, WriteAttribute() will skip reading the file record from disk, and will update the file record in memory before returning. This helps callers that use the file record after writing an attribute to stay in-sync with what's on disk.


-Added Balloon notification for safely removal icon.

-Added familiar warning dialog when device ejection fails.

-Figured out that 'Problem number' of a device is perhaps an important enumeration filter.

-Minor code cleanup and whitespace fixes.

-Test in win xpvm looks fine, but needs further testing.

[USETUP]: Sync with tfaber's r75536.
    • -2
    • +2
[REACTOS]: Adapt the 1st-stage GUI setup to compile with the setuplib.
    • -0
    • +71

- Added headers to CMake file to have them in the VS project


- Added /SETUP key support

TODO: use the short names from db files

- Some style changes

- Conditional creation of the dialogs

[USETUP]: Sync with hpoussin's r75532, and add the corresponding INF_FreeData().
    • -11
    • +19
[USETUP]: Close the txtsetup.sif file at the end of the operations.
    • -0
    • +2
[USETUP]: Addendum to 75537.
    • -3
    • +3
[SETUPLIB]: Fix compilation errors when using these headers with usetup (that doesn't use setupapi.dll) and "reactos" (the 1st-stage GUI installer, which uses setupapi.dll).
    • -3
    • +4
    • -1
    • +6
[USETUP]: Move the files in ./interface/ back into the main directory, since (almost) all of the usetup source files concerns the user interface of the setup program...
    • -0
    • +4849
    • -0
    • +427
    • -0
    • +794
    • -0
    • +193
    • -1
    • +1
[USETUP]: Fix the keyboard selection in the list of OS installations that can be updated.
[SYSSETUP]: Following r75518, we use the $winnt$.inf file (created in System32 by the 1st-stage installer) as the setup information file for the 2nd-stage setup for:

- retrieving the installation source media path;

- retrieving the unattended information that was copied from the unattend.inf file from the installation source media.

The installation source media path is converted from NT format to Win32 format for usage with Win32 functions and storage in the registry: this is done by GetInstallSourceWin32(),

which replaces the hackish GetRosInstallCD() function.

The $winnt$.inf file is also updated, and the values "SourcePath" and "ServicePackSourcePath" in HKLM\Software\Microsoft\Windows\CurrentVersion\Setup are created / updated.

In addition, delete the created fonts where needed.

    • -86
    • +190
[SYSSETUP]: Use ARRAYSIZE / _countof instead of sizeof ratios.
    • -46
    • +44
[SYSSETUP]: Code formatting.
    • -65
    • +55

- written two functions sendCommand and ProcessEvent

- SendCommand will be used to place a command trb on the command ring and activate doorbell

- ProcessEvent will be called every time we get an interrupt. this function processes all the valid event trbs.


[USETUP]: NT RTL thread functions use 'NULL' (instead of 'INVALID_HANDLE_VALUE' which is a Win32 thing) for thread handles that are "invalid" / uninitialized.
[USETUP][SETUPLIB]: Code refactoring:

- Move several global setup variables into a structure "USETUP_DATA", similar to the syssetup structure "SETUPDATA"

(or the WIP 1st-stage installer structure of the same name), so that these variables can be set easily by different helper setup functions;

- Move CheckUnattendedSetup() and GetSourcePaths() to setuplib and make CheckUnattendedSetup() use the USETUP_DATA structure;

- Add a LoadSetupInf() function that loads the txtsetup.sif file (factoring out the corresponding code in usetup);

- Add a InstallSetupInfFile() function (that I'll certainly rename later on) whose purpose is to create a valid "$winnt$.inf" setup installation file

in the ReactOS\system32 directory, which should help the 2nd-stage installer to correctly retrieve the source installation media we used during 1st-stage,

and contain the unattended setup lines copied from unattend.inf. This is done in a Windows-compatible way.

- Add the lib/infsupp.c and lib/setuplib.c to compilation.

    • -0
    • +71
    • -0
    • +512
[USETUP]: Minor code formatting only.
[USETUP]: Sprinkle some INF_FreeData() calls to balance the INF_GetData() / INF_GetDataField() calls. They currently do nothing, since the getter functions don't actually capture (copy) the strings but merely return pointers to read-only strings. But the calls are placed here for consistency, because if one day the getters implementation is changed to capture the strings, then it would now be needed to free the allocated buffers.

In addition, fix a buggy call to INF_GetData() -- should be instead INF_GetDataField() -- in AddSectionToCopyQueue().

[USETUP][SETUPLIB]: Move some INF-related code from usetup to the setuplib.

- Move the generic INF_GetDataField() and INF_GetData() helpers to setuplib, and rework them a bit so that they explicitly call setupapi functions (or implementations thereof when being used in usetup);

- Rework the headers in accordance;

- and Fix compilation in lib/registry.c .

    • -19
    • +129
    • -105
    • +29
    • -0
    • +119
    • -1
    • +2
    • -99
    • +9
    • -1
    • +1

- Refactoring

- A template for a future parameters parser