Amine Khaldi [Sat, 26 Oct 2019 12:01:05 +0000 (13:01 +0100)]
[D3DCOMPILER_43_WINETEST] Sync with Wine Staging 4.18. CORE-16441
Amine Khaldi [Sat, 26 Oct 2019 12:00:33 +0000 (13:00 +0100)]
[D3DCOMPILER_43] Sync with Wine Staging 4.18. CORE-16441
Amine Khaldi [Sat, 26 Oct 2019 11:59:56 +0000 (12:59 +0100)]
[PSDK] Add missing GetRequiresFlags. CORE-16441
Joachim Henze [Thu, 24 Oct 2019 22:42:01 +0000 (00:42 +0200)]
[WIN32SS] Fix last user visible parts of regression CORE-10855
When Themesvc was disabled, some Window titlebar
frames were drawn too thin until the window
was actively resized in y by the user.
That and similar symptoms started to show up after SVN r68904 ==
6dfa71c487dbb193ed7fb1a249a8c964ec3aef0d
Many thanks to patches author Doug Lyons.
We leave the ticket unresolved still due to explicit request of
James Tabor, who wants to continue working in that context.
I will merge that back into 0.4.13RCs as well.
Jared Smudde [Thu, 24 Oct 2019 11:58:04 +0000 (06:58 -0500)]
[APPWIZ] Very minor icon fix for the Create Shortcut wizard. (#1993)
Also cleaned up the other icons to reduce size.
Robert Naumann [Wed, 23 Oct 2019 13:51:35 +0000 (15:51 +0200)]
[REISERFS] Fix a copy paste Error. CID
1363527
Robert Naumann [Wed, 23 Oct 2019 13:44:02 +0000 (15:44 +0200)]
[UDFS] Fix a copy paste error. CID1321910
Robert Naumann [Wed, 23 Oct 2019 13:38:39 +0000 (15:38 +0200)]
[SETUP/LIB] Fix wrong if() logic. CID1441307
Stanislav Motylkov [Wed, 23 Oct 2019 11:54:33 +0000 (14:54 +0300)]
[FREELDR] MiniTui: Fix progress bar width on custom resolutions (#1964)
+ Sync with the "direct-UI" i.e. with less bugs.
Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Pierre Schweitzer [Tue, 22 Oct 2019 19:51:04 +0000 (21:51 +0200)]
[MOUNTMGR] Fix invalid WorkerReferences check in QueueWorkItem()
This fixes shutting down ReactOS under certain circumstances, where
the references were incremented, but no worker thread started.
Also, took the opportunity to clarify the WorkerReferences comparisons
where relevant.
CORE-16446
Serge Gautherie [Tue, 22 Oct 2019 01:12:04 +0000 (03:12 +0200)]
[HDWWIZ] ProbeListPageDlgProc(): Top 'Item' variable is enough (#1990)
Addendum to
ce498aa5714a42c449b244feaa70c7df6d59e0af.
Joachim Henze [Tue, 22 Oct 2019 01:06:07 +0000 (03:06 +0200)]
[WINED3D] Workaround regression CORE-15408
Many 3D applications crashed with 'WineD3D fake window' msgbox
if they were used in VirtualBox with graphics driver
'VBoxDisp.sys from VM guest additions + installed 3D acceleration'
That was a regression of SVN r75847 == git
3d13ed394efdd0ce0aef4e10965b1d08334394ec
Contrary we had no such issues with the SW emulation.
The reason for the bug is that
VBoxDisp only supports OpenGL 2.1 (GLSL 120) and WineD3D
tried to use shaders for OpenGL 3.2 (GLSL 150).
This workaround disables the usage in a hard-coded way for
all graphics adapters. Should be ok for now, as ros does not
really support any modern GPU drivers yet.
Proper working runtime detection would be better ofc.
Thx to Doug Lyons & Fabian Maurer
Katayama Hirofumi MZ [Tue, 22 Oct 2019 00:55:06 +0000 (09:55 +0900)]
[SHELLEXT][ZIPFLDR] Performance: Initialize m_Filename quickly
Katayama Hirofumi MZ [Tue, 22 Oct 2019 00:43:34 +0000 (09:43 +0900)]
[CPL][DESK] hShell32 is always non-NULL in epilogue
Katayama Hirofumi MZ [Tue, 22 Oct 2019 00:41:09 +0000 (09:41 +0900)]
[CPL][HDWWIZ] Move 'Index' and 'Item' variables to prologue
Katayama Hirofumi MZ [Tue, 22 Oct 2019 00:33:32 +0000 (09:33 +0900)]
[WIN32SS][NTGDI] Unite duplicate of condition 'UsesSource'
Katayama Hirofumi MZ [Tue, 22 Oct 2019 00:29:15 +0000 (09:29 +0900)]
[WIN32SS][NTGDI] 'otm' is always non-NULL in epilogue
Joachim Henze [Mon, 21 Oct 2019 23:10:28 +0000 (01:10 +0200)]
[COMCTL32] Address regression CORE-14622
"Avira Antivir Personal 6.35.00.243" had issues painting its
setup wizard dialog with correct background color.
That part was a regression of SVN r74136 == git
b1b42795a94d8e3cb69e2d9e5bd0af4929610361
and also did not draw its umbrella bmp, which did never work
in ros up to now afaik.
https://reactos.org/testman/compare.php?ids=69394,69478 VBOX
https://reactos.org/testman/compare.php?ids=69395,69479 KVM
Thanks to patches author Doug Lyons and HBelusca.
Wine has been reported to be affected by that bug as well:
https://bugs.winehq.org/show_bug.cgi?id=46636
Not sure whether our patch will be accepted by Wine,
to my naive eye this looks like an interim solution.
Pierre Schweitzer [Mon, 21 Oct 2019 16:28:40 +0000 (18:28 +0200)]
[NTOSKRNL] Rewrite IoAssignDriveLetters to make NT5 compliant
The major change with this rewrite is the support for the mount
manager. Fstub will now assume that most of the devices are PnP
and that they are already registered to the mount manager.
It will thus ask the mount manager to assign the drive letter.
Fstub will keep assigning drive letters non mission critical devices
such as CDs, floppies and other removable devices.
See MountMgr:QueryPoints API test that will now return mount points :-).
Pierre Schweitzer [Mon, 21 Oct 2019 14:50:36 +0000 (16:50 +0200)]
[DISK] Forcibly declare our partitions to the MountMgr
Because our disk.sys doesn't do anything related to PnP
(compared to disk_new.sys), forcibly declare our partitions
to the MountMgr so that it can references them and assign
them a DOS drive letter on demand later on.
Pierre Schweitzer [Mon, 21 Oct 2019 14:45:28 +0000 (16:45 +0200)]
[CLASS2] Hackplement support for IOCTL_MOUNTDEV_QUERY_UNIQUE_ID
This is required so that MountMgr can handle devices that are still
using class2 instead of classpnp.
Given we have no unique ID to return, we'll return device path, which
is far from perfect but which is enough for now to have everything
working.
Pierre Schweitzer [Mon, 21 Oct 2019 12:26:00 +0000 (14:26 +0200)]
[NTOSKRNL] Define TAG_FSTUB in the dedicated internal header
Pierre Schweitzer [Mon, 21 Oct 2019 12:16:58 +0000 (14:16 +0200)]
[NTOSKRNL] Declare IoRemoteBootClient in internal headers
Pierre Schweitzer [Mon, 21 Oct 2019 10:58:30 +0000 (12:58 +0200)]
[MOUNTMGR] Fix setting up reparse index file name
This fixes memory smashing while attempting to volume
reparse index (we were previously trying to copy the
name on itself, in the middle of itself...).
This code won't go farther on FAT, it requires NTFS.
Now, with this, ReactOS can properly boot with MountMgr
handling DOS devices without any crash or code disabled.
Cf: what was written in
7608ac9.
Modifications in class2, disk, and ntoskrnl are still to
be committed to enable all this.
Pierre Schweitzer [Mon, 21 Oct 2019 09:03:43 +0000 (11:03 +0200)]
[MOUNTMGR] That was not meant to be committed
Even though it shows there might be a bug in the
code handling remote databases in the MountMgr ;-)
Addendum to
7608ac9
Pierre Schweitzer [Mon, 21 Oct 2019 08:54:51 +0000 (10:54 +0200)]
[MOUNTMGR] Misc. fixes for WorkerThread()
- Properly quit the active loop when we're out of work items;
- Fix timeout duration (setting it to 1s);
- Fix handling the "Unloading" variable in case of a shutdown
so that waiting loop is properly stopped;
- Documented why we're waiting on VolumesSafeForWriteAccess.
This fixes shutting down ReactOS with work items queued.
This is needed here because no one ever sets that event (properly)
created by SMSS though. A. Ionescu was explaining in 2018 that it's
autochk responsibility, but it doesn't seem to be the case in W2K3.
To be investigated.
This fix with all the previous ones and more uncommitted stuff (yet ;-))
allows reaching the first steps towards a NT5 storage stack:
https://twitter.com/HeisSpiter/status/
1186199631740506112
Eric Kohl [Sun, 20 Oct 2019 21:24:28 +0000 (23:24 +0200)]
[IPCONFIG] Implement the /flushdns option and most of the /displaydns option
Eric Kohl [Sun, 20 Oct 2019 21:13:46 +0000 (23:13 +0200)]
[DNSAPI][REACTOS] Add a header for undocumented dnsapi functions and use it in dnsapi.dll
Amine Khaldi [Sun, 20 Oct 2019 19:04:04 +0000 (20:04 +0100)]
[HNETCFG_WINETEST] Sync with Wine Staging 4.18. CORE-16441
Amine Khaldi [Sun, 20 Oct 2019 19:03:33 +0000 (20:03 +0100)]
[HNETCFG] Sync with Wine Staging 4.18. CORE-16441
Amine Khaldi [Sun, 20 Oct 2019 19:01:58 +0000 (20:01 +0100)]
[PSDK][UUID] Import natupnp.idl from Wine Staging 4.18. CORE-16441
Amine Khaldi [Sun, 20 Oct 2019 17:56:45 +0000 (18:56 +0100)]
[DEVENUM_WINETEST] Sync with Wine Staging 4.18. CORE-16441
Amine Khaldi [Sun, 20 Oct 2019 17:56:05 +0000 (18:56 +0100)]
[DEVENUM] Sync with Wine Staging 4.18. CORE-16441
Amine Khaldi [Sun, 20 Oct 2019 16:58:55 +0000 (17:58 +0100)]
[PSDK] Add missing OVERLAPPED_ENTRY. CORE-16441
Mark Jansen [Sun, 20 Oct 2019 12:21:28 +0000 (14:21 +0200)]
[SHELL32] CDefaultContextMenu: Don't render a medium just to query if it is present
Mark Jansen [Sat, 19 Oct 2019 22:54:11 +0000 (00:54 +0200)]
[SHELL32] CDefaultContextMenu: Always add the wanted operation to the IDataObject
Mark Jansen [Sat, 19 Oct 2019 22:44:03 +0000 (00:44 +0200)]
[SDK][SHELL32] Augment the internally used IDataObject with some extra formats
This is needed because our code seems to use CF_HDROP a lot, instead of HIDA...
Mark Jansen [Sat, 19 Oct 2019 22:42:16 +0000 (00:42 +0200)]
[SHELL32] Mark an unexpected failure as unexpected
Mark Jansen [Sat, 19 Oct 2019 22:37:05 +0000 (00:37 +0200)]
[SHELL32_APITEST] Show that SHCreateDataObject behaves exactly like CIDLData_CreateFromIDArray
Mark Jansen [Sat, 19 Oct 2019 22:27:58 +0000 (00:27 +0200)]
[SHELL32] Properly release an StgMedium
Mark Jansen [Sat, 19 Oct 2019 21:56:19 +0000 (23:56 +0200)]
[SHELL32_APITEST] Show that the default data object does not have a preferred drop effect
Mark Jansen [Sat, 19 Oct 2019 21:55:39 +0000 (23:55 +0200)]
[FONTEXT] Return the correct error in GetDisplayNameOf
Eric Kohl [Sun, 20 Oct 2019 08:04:08 +0000 (10:04 +0200)]
[NETCFGX] Free all component data on INetCfg_fnUninitialize()
Thomas Faber [Sun, 20 Oct 2019 10:44:34 +0000 (12:44 +0200)]
[MBEDTLS] Update to version 2.7.12. CORE-16440
Thomas Faber [Sun, 20 Oct 2019 10:19:51 +0000 (12:19 +0200)]
[MPG123] Update to version 1.25.12. CORE-16440
Thomas Faber [Sun, 20 Oct 2019 10:04:41 +0000 (12:04 +0200)]
[BZIP2] Remove unused library. CORE-16440
This was once used by the "ramdrv" driver, removed in r37739 (
c47ab26e825).
Victor Perevertkin [Sun, 20 Oct 2019 10:44:17 +0000 (13:44 +0300)]
[MSVCRT] Export __acrt_iob_func to fix GCC build with latest RosBE 2.2 (#1835)
This adds an evil hack to persuade libstdc++, which tries to import __acrt_iob_func from a DLL.
This can only be solved cleanly by adding a GCC-compatible C++ standard library to our tree later.
Mark Jansen [Sat, 3 Aug 2019 13:14:20 +0000 (15:14 +0200)]
[FONTEXT] Initial implementation
Create Fonts\desktop.ini when registering the shell ext
Also list the shell extension as needing to be registered at install
CORE-14690
Mark Jansen [Sat, 12 Oct 2019 00:11:25 +0000 (02:11 +0200)]
[SHELL32] Update CDataObject,
allowing it to accept new formats and behave a bit more like windows
Mark Jansen [Thu, 10 Oct 2019 22:15:41 +0000 (00:15 +0200)]
[SHELL32_APITEST] Add test for CIDLData_CreateFromIDArray
Mark Jansen [Sat, 14 Sep 2019 21:06:10 +0000 (23:06 +0200)]
[FONTVIEW] Add /d option
Mark Jansen [Sun, 4 Aug 2019 00:42:09 +0000 (02:42 +0200)]
[SHELL32] Add support for custom View objects defined with UICLSID
CORE-16271
Mark Jansen [Fri, 13 Sep 2019 19:37:07 +0000 (21:37 +0200)]
[ZIPFLDR] Fix number of menu items returned for DFM_MERGECONTEXTMENU
Mark Jansen [Fri, 13 Sep 2019 19:35:51 +0000 (21:35 +0200)]
[PSDK] Add some missing defines to shlobj.h
Mark Jansen [Sat, 3 Aug 2019 13:13:21 +0000 (15:13 +0200)]
[FONTEXT_APITEST] Add simple api test showing interfaces
CORE-14690
Mark Jansen [Sun, 4 Aug 2019 00:42:31 +0000 (02:42 +0200)]
[SHELL32] Demote an ERR to WARN
Pierre Schweitzer [Sat, 19 Oct 2019 16:04:30 +0000 (18:04 +0200)]
[MOUNTMGR] Don't kill Mm when a device has several symlinks
On preflight to compute output size, device name & unique ID were
counted only once per device.
Then, on copy, these two were copied on every MOUNTMGR_MOUNT_POINT
structure. This is counter efficient (data duplication) but also,
it was overruning the output buffer, since the preflight was not
expecting these extra copies.
Pierre Schweitzer [Sat, 19 Oct 2019 16:00:36 +0000 (18:00 +0200)]
[MOUNTMGR_APITEST] Dump offsets
That shows that some offset are shared (everything but the symlinks)
Pierre Schweitzer [Sat, 19 Oct 2019 14:56:21 +0000 (16:56 +0200)]
[MOUNTMGR] Fix enumerating drive letter for creating new mountpoint
This is purely a copypasta error fix, which was causing MountMgrNextDriveLetterWorker
to fail as no drive letters were enumerated previously.
With that set of patches, MountMgr now properly assigns drive letters to
new devices!
Pierre Schweitzer [Sat, 19 Oct 2019 14:53:45 +0000 (16:53 +0200)]
[MOUNTMGR] Fix interpretation of QueryDeviceInformation GptDriveLetter
Being TRUE doesn't mean the device is GPT and has a drive letter. It just
means that it's not a GPT device with GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER
attribute. In short, if TRUE, it means that the device can receive a drive
letter mount point.
This fixes MountMgrNextDriveLetterWorker bailing out for any attempt to
assign a drive letter to a device.
Pierre Schweitzer [Sat, 19 Oct 2019 14:52:29 +0000 (16:52 +0200)]
[MOUNTMGR] Fix IsFtVolume so that it returns TRUE only for FT volumes
Pierre Schweitzer [Sat, 19 Oct 2019 14:34:38 +0000 (16:34 +0200)]
[MOUNTMGR] Query proper device when creating mount point
We must query the target device, and not the symbolic link
we attempt to create. The later will always fail as it doesn't
exist yet.
This fixes MountMgrCreatePointWorker not working.
Pierre Schweitzer [Sat, 19 Oct 2019 14:29:37 +0000 (16:29 +0200)]
[MOUNTMGR] Remove cancel routine before completing pending IRP
Joachim Henze [Sat, 19 Oct 2019 14:36:02 +0000 (16:36 +0200)]
[BROWSEUI][SHELLFIND] Update de-DE.rc CORE-16427
Translate the new checkboxes text to german
Addendum to 0.4.14-dev-60-g
103c87d2b9738b91d6eea37747be2bc343411042
Doug Lyons [Sun, 13 Oct 2019 23:48:08 +0000 (18:48 -0500)]
[SHELLFIND] Add Hidden Files & Folders Selection. CORE-16427
Pierre Schweitzer [Sat, 19 Oct 2019 09:46:24 +0000 (11:46 +0200)]
[WSHTCPIP] Print IOCTL as hexa value
Serge Gautherie [Thu, 17 Oct 2019 10:33:29 +0000 (12:33 +0200)]
[MSAFD] SizeOf*Buffer: Type is ULONG, not INT/DWORD
jimtabor [Sat, 19 Oct 2019 04:49:13 +0000 (23:49 -0500)]
[GDI32] Update Gdi Driver Header.
Patch by : Akihiro Sagawa : Implement GetCharWidthInfo().
https://source.winehq.org/git/wine.git/commit/
1128587fd262f9ad476b49e7837ac74dd656e6ba
Hervé Poussineau [Fri, 18 Oct 2019 22:12:41 +0000 (00:12 +0200)]
Revert "[NTOS:KDBG] Use CONTEXT instead of KTRAP_FRAME"
This reverts commit
e5bffe49da21f5faf2a88a0983ad4876d388e0ea.
CORE-16231
Pierre Schweitzer [Thu, 17 Oct 2019 20:40:23 +0000 (22:40 +0200)]
[MOUNTMGR] QueryPointsFromMemory: take into account the multiple MOUNTMGR_MOUNT_POINT
This fixes returning too small structure on an IOCTL_MOUNTMGR_QUERY_POINTS call.
The multiple MOUNTMGR_MOUNT_POINT structures were ignored and thus the data of the
first one were erased by the multiple structures.
MountMgr now returns consistent output on this IOCTL call.
Serge Gautherie [Sat, 5 Oct 2019 21:53:48 +0000 (23:53 +0200)]
[CODEOWNERS] Add /drivers/filters/*/ entries
Also add Pierre's Jira username.
Serge Gautherie [Thu, 17 Oct 2019 00:39:30 +0000 (02:39 +0200)]
[MSAFD] WSPSetSockOpt(): Fix a copypasta
Addendum to
6bc61f63f1e0ad20ab09f881d6968558eba9a8e6.
CORE-15804
Pierre Schweitzer [Wed, 16 Oct 2019 20:22:30 +0000 (22:22 +0200)]
[MOUNTMGR_APITEST] Dump returned mount points
Serge Gautherie [Mon, 14 Oct 2019 12:01:44 +0000 (14:01 +0200)]
[MOUNTMGR] QueryPointsFromSymbolicLinkName(): Fix a copypasta
Addendum to r55156.
CORE-16371
Eric Kohl [Tue, 15 Oct 2019 20:40:06 +0000 (22:40 +0200)]
[umpnpmgr][ndk] Implement PNP_RequestDeviceEject() and update unknown type in PLUGPLAY_CONTROL_QUERY_REMOVE_DATA
Hermès Bélusca-Maïto [Sun, 13 Oct 2019 23:36:42 +0000 (01:36 +0200)]
[SDK] Fix a typo, caught by Stas'M :)
Mark Harmstone [Wed, 9 Oct 2019 20:28:33 +0000 (21:28 +0100)]
[FREELDR] Set LDRP_IMAGE_INTEGRITY_FORCED if necessary. (Part of PR #1905)
+ Add extra information.
Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Eric Kohl [Sun, 13 Oct 2019 21:49:10 +0000 (23:49 +0200)]
[NDK] Fix coding style and indentation. No code changes!
Hermès Bélusca-Maïto [Sun, 13 Oct 2019 19:07:23 +0000 (21:07 +0200)]
[FREELDR] Fix build with the 'Grossly Crying Compiler' (aka. GCC).
Hermès Bélusca-Maïto [Sun, 13 Oct 2019 17:33:00 +0000 (19:33 +0200)]
[FREELDR] Improvements for GDT descriptors initialization.
Triggered by a fix attempt by M.Harmstone in PR #1905.
- Introduce #defines and helper functions so as to initialize the
descriptors in a human-readable and tractable way, without magic values.
- Rework some comments.
- Document what the changes are in (Longhorn and) Vista+.
Data has been obtained through using the WinDbg command: dg 0x00 0xFF
(for example), that lists all the selectors from 0x00 to 0xFF included.
See https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/dg--display-selector-
for more details.
Hermès Bélusca-Maïto [Sun, 13 Oct 2019 17:21:34 +0000 (19:21 +0200)]
[SDK][NDK] Add two missing documented GDT selector names.
Add KGDT_NULL and KGDT_VDM_TILE to the list of known GDT name defines.
See https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/dg--display-selector-
Eric Kohl [Sun, 13 Oct 2019 13:49:13 +0000 (15:49 +0200)]
[UMPNPMGR] Implement PNP_QueryRemove()
Eric Kohl [Sun, 13 Oct 2019 13:24:29 +0000 (15:24 +0200)]
[NDK] Add PLUGPLAY_CONTROL_QUERY_REMOVE_DATA type
Katayama Hirofumi MZ [Sun, 13 Oct 2019 01:45:17 +0000 (10:45 +0900)]
[SDK][INCLUDE] Update msgdump.h
Mark Jansen [Mon, 30 Sep 2019 21:15:20 +0000 (23:15 +0200)]
[WIN32K:menu] Use signed types for negative values...
CORE-16306
Joachim Henze [Sat, 12 Oct 2019 13:44:58 +0000 (15:44 +0200)]
[BROWSEUI][SHELLFIND] Allow to 'Open Containing Folder'
of a search result again.
The feature regressed by 0.4.13-dev-1133-g
a3ee648d8b641604a87fcc3733d0946ced056074
I chose the shorter solution of Brock Mammen instead
of the patch of Doug Lyons from PR1960.
Still many thanks to Doug Lyons for his encouragement
in creating a fix as well and performing
regression-testing.
I intend to merge that back into 0.4.13RCs as well.
Joachim Henze [Fri, 11 Oct 2019 21:21:39 +0000 (23:21 +0200)]
[WIN32SS] Fix regression CORE-16393
Symptom "cmd did not hide the taskbar anymore when switching to fullscreen"
It regressed by SVN r75407 == git
09ab5ea7ed2ab0e709ed2e8f8f9f6c3711b2ac7f
VBox LGTM https://reactos.org/testman/compare.php?ids=69295,69297
KVM LGTM https://reactos.org/testman/compare.php?ids=69296,69298
Many thanks to the patches author James Tabor.
Stanislav Motylkov [Wed, 9 Oct 2019 21:27:22 +0000 (00:27 +0300)]
[FREELDR][XBOXVMP] Retrieve screen resolution directly from NV2A GPU (#1962)
CORE-16216
Hermès Bélusca-Maïto [Wed, 9 Oct 2019 00:26:29 +0000 (02:26 +0200)]
[FREELDR] Advance the file pointers every time a read operation is performed, in accordance with the ARC specification.
Hermès Bélusca-Maïto [Fri, 13 Sep 2019 17:04:06 +0000 (19:04 +0200)]
[FREELDR] Improvements for the RamDisk support.
- Implement support for the "RDIMAGELENGTH" and "RDIMAGEOFFSET" boot
options. Fixes CORE-15432.
- Separate the initialization of the global gInitRamDiskBase /
gInitRamDiskSize variables from the FreeLdr command-line, and the
actual initialization of the internal variables of the RamDisk.
The latter are initialized via calls to RamDiskInitialize().
- Implement 'SeekRelative' mode in RamDiskSeek().
- Make RamDiskLoadVirtualFile() internal function that gets called by
RamDiskInitialize(), and we use the latter in the NT loader instead.
Stanislav Motylkov [Wed, 9 Oct 2019 00:35:07 +0000 (03:35 +0300)]
[FREELDR] Xbox memory management improvements (#1961)
- Reuse the framebuffer address that was set up by the firmware.
- Get rid of XboxMemReserveMemory() and use ReserveMemory() instead.
CORE-16216
Brock Mammen [Tue, 8 Oct 2019 23:18:36 +0000 (18:18 -0500)]
[EXPLORER] Fix right-click menu for taskbar clock (#1944)
CORE-16397
Stanislav Motylkov [Tue, 8 Oct 2019 15:08:44 +0000 (18:08 +0300)]
[XBOXVMP] Fix broken pixels and general refactoring (#1896)
- Remove old hacky code based on MmHighestPhysicalPage.
- Split I2C SMBus code into a separate source file.
CORE-16216 CORE-16357
Mas4hmad [Tue, 8 Oct 2019 15:03:14 +0000 (22:03 +0700)]
[TRANSLATION] Add/Update Indonesian translations (#1904)
Add/Update Indonesian translations for CHARMAP, CMDUTILS-HELP, SERVMAN, SETUPAPI, SHELL32, SUBST, SYSSETUP, TASKMGR, USERINIT.
Carlo Bramini [Tue, 8 Oct 2019 14:52:30 +0000 (16:52 +0200)]
[CMDUTILS] Add italian translation for 'comp' utility. (#1931)
maharmstone [Tue, 8 Oct 2019 14:50:58 +0000 (15:50 +0100)]
[FREELDR] Handle Btrfs sparse extents (#1959)
Hermès Bélusca-Maïto [Sun, 6 Oct 2019 17:22:18 +0000 (19:22 +0200)]
[FREELDR] Add support for loading Linux in x64 FreeLdr. Part 2/2: C code.
- Re-enable custom and Linux boot menu entries.
- Fix compilation and add address limit checks for x64 build of linux loader.
Hermès Bélusca-Maïto [Wed, 2 Oct 2019 01:20:10 +0000 (03:20 +0200)]
[FREELDR] Fix an inconsistency bug when switching the CPU state back to 16-bit real mode.
Basically it appeared that without this fix, the CPU was somehow residing
in an inconsistent state, that made it crash when a full 16-bit real-mode
to 32-bit protected mode transition occurred. (Encountered when trying
to load Linux, see problem description below.)
In that situation, Bochs reports that the CPU is in "compatibility mode".
The fix is based from information from Fig.1-6 "Operating Modes of the
AMD64 Architecture" (page 12) and Chapter 14 (pages 429-446) of the
"AMD64 Architecture Programmer’s Manual Volume 2: System Programming"
https://www.amd.com/system/files/TechDocs/24593.pdf
*** THE PROBLEM ***
When booting Linux using x86 FreeLdr everything goes well.
When trying to do the same using x64 FreeLdr, the Linux code (both the
boot sector, the setup sector and the main kernel contents) is all
correctly loaded and relocated in memory as in the x86 case. We then pass
control to the decompressing code that appears to succeed. However, once
it has finished and "Parsing ELF file..." step has been run, the next
step "Booting the kernel..." crashes with a CPU Triple-Fault.
This problem **DOES NOT HAPPEN** when booting from GRUB.
Log excerpt from Bochs:
<snip>
00089459736i[BIOS ] Booting from 07c0:0000
00089782775i[SER ] com1: FIFO enabled
00095994535i[BIOS ] int13_harddisk: function 41, unmapped device for ELDL=81
00095998517i[BIOS ] int13_harddisk: function 08, unmapped device for ELDL=81
00397139785i[BIOS ] KBD: unsupported int 16h function 03
00397143625i[BIOS ] *** int 15h function AX=e980, BX=0000 not yet supported!
00523008104e[CPU0 ] interrupt(long mode): vector must be within IDT table limits, IDT.limit = 0x0
00523008104e[CPU0 ] interrupt(long mode): vector must be within IDT table limits, IDT.limit = 0x0
00523008104i[CPU0 ] CPU is in compatibility mode (active)
00523008104i[CPU0 ] CS.mode = 32 bit
00523008104i[CPU0 ] SS.mode = 32 bit
00523008104i[CPU0 ] EFER = 0x00000500
00523008104i[CPU0 ] | RAX=
00000000e0000011 RBX=
0000000000000000
00523008104i[CPU0 ] | RCX=
0000000000000000 RDX=
0000000000000000
00523008104i[CPU0 ] | RSP=
00000000004f8000 RBP=
000000000082e003
00523008104i[CPU0 ] | RSI=
0000000000099800 RDI=
00000000c0611000
00523008104i[CPU0 ] | R8=
0000000000109000 R9=
0000000000009020
00523008104i[CPU0 ] | R10=
00000000000007e3 R11=
000000000000e958
00523008104i[CPU0 ] | R12=
0000000000000000 R13=
0000000000000000
00523008104i[CPU0 ] | R14=
0000000000000000 R15=
0000000000000000
00523008104i[CPU0 ] | IOPL=0 id vip vif ac vm RF nt of df if tf SF zf af PF cf
00523008104i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
00523008104i[CPU0 ] | CS:0010( 0002| 0| 0)
00000000 ffffffff 1 1
00523008104i[CPU0 ] | DS:0018( 0003| 0| 0)
00000000 ffffffff 1 1
00523008104i[CPU0 ] | SS:0018( 0003| 0| 0)
00000000 ffffffff 1 1
00523008104i[CPU0 ] | ES:0018( 0003| 0| 0)
00000000 ffffffff 1 1
00523008104i[CPU0 ] | FS:0018( 0003| 0| 0)
00000000 ffffffff 1 1
00523008104i[CPU0 ] | GS:0018( 0003| 0| 0)
00000000 ffffffff 1 1
00523008104i[CPU0 ] | MSR_FS_BASE:
0000000000000000
00523008104i[CPU0 ] | MSR_GS_BASE:
0000000000000000
00523008104i[CPU0 ] | RIP=
0000000000409327 (
0000000000409327)
00523008104i[CPU0 ] | CR0=0xe0000011 CR2=0x0000000000409327
00523008104i[CPU0 ] | CR3=0x005b5000 CR4=0x000000a0
00523008104i[CPU0 ] 0x0000000000409327: (instruction unavailable) page not present
00523008104p[CPU0 ] >>PANIC<< exception(): 3rd (13) exception with no resolution
<snip>
Hermès Bélusca-Maïto [Tue, 1 Oct 2019 01:50:29 +0000 (03:50 +0200)]
[FREELDR] Add support for loading Linux in x64 FreeLdr. Part 1/2: ASM code.
Add also ASM implementation for intrinsics that may not be always
present on MSVC (e.g. MSVC 2010).
Hermès Bélusca-Maïto [Sun, 29 Sep 2019 17:20:15 +0000 (19:20 +0200)]
[FREELDR] Several changes regarding chainloading and Linux boot.
- Introduce "Relocator16Boot()". So far its aim is just to correctly set
the CPU state (segments, registers, flags) to what is expected by a
given boot image before running it.
This function can be seen as the embryonic state of a future boot relocator
(see e.g. GRUB or SYSLINUX) that would also relocate the boot image at
the correct places. (Such feature is needed when boot images have to
be loaded in memory areas that cover where the boot loader is in memory.)
- Implement ChainLoadBiosBootSectorCode() around it.
- Replace BootOldLinuxKernel() and BootNewLinuxKernel() by a new
BootLinuxKernel() function (in assembly) that relocates the kernel
to a given position and then boot it, using Relocator16Boot().
Ideally the relocation should be done by a future boot relocator...
Implementation notes for Relocator16Boot():
===========================================
For setting the CPU state the function is based on a similar code as the
Int386() helper, namely it takes a pointer to REGS structure and pass
this information through the 32->16 bits call before setting the CPU state
in accordance.
New stack segment/pointer and code segment/pointer are also specified.
For passing these values through the 32->16 bits call the 16-bit BSS
memory offsets "BSS_CallbackReturn" and "BSS_RealModeEntry" (respectively)
are reused.