Commit graph

76038 commits

Author SHA1 Message Date
Pierre Schweitzer a53992180d
[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!
2019-10-19 16:59:58 +02:00
Pierre Schweitzer e359a3c888
[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.
2019-10-19 16:59:58 +02:00
Pierre Schweitzer 961693f060
[MOUNTMGR] Fix IsFtVolume so that it returns TRUE only for FT volumes 2019-10-19 16:59:58 +02:00
Pierre Schweitzer 225a1e92bd
[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.
2019-10-19 16:59:57 +02:00
Pierre Schweitzer 7b650d2c3e
[MOUNTMGR] Remove cancel routine before completing pending IRP 2019-10-19 16:59:57 +02:00
Joachim Henze a01b272578 [BROWSEUI][SHELLFIND] Update de-DE.rc CORE-16427
Translate the new checkboxes text to german

Addendum to 0.4.14-dev-60-g
103c87d2b9
2019-10-19 16:36:02 +02:00
Doug Lyons 103c87d2b9
[SHELLFIND] Add Hidden Files & Folders Selection. CORE-16427 2019-10-19 15:57:34 +02:00
Pierre Schweitzer c290ae21c7
[WSHTCPIP] Print IOCTL as hexa value 2019-10-19 12:04:40 +02:00
Serge Gautherie a8236e3fa9 [MSAFD] SizeOf*Buffer: Type is ULONG, not INT/DWORD 2019-10-19 10:50:03 +02:00
jimtabor 333b8f19a4 [GDI32] Update Gdi Driver Header.
Patch by : Akihiro Sagawa : Implement GetCharWidthInfo().

1128587fd2
2019-10-18 23:49:13 -05:00
Hervé Poussineau 7390376753 Revert "[NTOS:KDBG] Use CONTEXT instead of KTRAP_FRAME"
This reverts commit e5bffe49da.

CORE-16231
2019-10-19 00:14:12 +02:00
Pierre Schweitzer 2da92ac67b
[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.
2019-10-17 22:42:47 +02:00
Serge Gautherie 41eb4b6d0a [CODEOWNERS] Add /drivers/filters/*/ entries
Also add Pierre's Jira username.
2019-10-17 20:04:48 +02:00
Serge Gautherie 3f0ba492ad [MSAFD] WSPSetSockOpt(): Fix a copypasta
Addendum to 6bc61f63f1.

CORE-15804
2019-10-17 08:18:43 +02:00
Pierre Schweitzer 6116262c74
[MOUNTMGR_APITEST] Dump returned mount points 2019-10-16 22:22:30 +02:00
Serge Gautherie f5f52417cb [MOUNTMGR] QueryPointsFromSymbolicLinkName(): Fix a copypasta
Addendum to r55156.

CORE-16371
2019-10-16 21:07:47 +02:00
Eric Kohl 13bb5e2317 [umpnpmgr][ndk] Implement PNP_RequestDeviceEject() and update unknown type in PLUGPLAY_CONTROL_QUERY_REMOVE_DATA 2019-10-15 22:40:06 +02:00
Hermès Bélusca-Maïto fb4591c48c
[SDK] Fix a typo, caught by Stas'M :) 2019-10-14 01:36:42 +02:00
Mark Harmstone 43a8d871bf
[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>
2019-10-14 00:49:00 +02:00
Eric Kohl e83b256f65 [NDK] Fix coding style and indentation. No code changes! 2019-10-13 23:50:22 +02:00
Hermès Bélusca-Maïto 3c9e562bd3
[FREELDR] Fix build with the 'Grossly Crying Compiler' (aka. GCC). 2019-10-13 21:07:23 +02:00
Hermès Bélusca-Maïto c85ef31f6a
[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.
2019-10-13 19:57:54 +02:00
Hermès Bélusca-Maïto 7d5577c21e
[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-
2019-10-13 19:57:54 +02:00
Eric Kohl 3d9a702d2b [UMPNPMGR] Implement PNP_QueryRemove() 2019-10-13 15:49:13 +02:00
Eric Kohl 7633ebcfde [NDK] Add PLUGPLAY_CONTROL_QUERY_REMOVE_DATA type 2019-10-13 15:25:47 +02:00
Katayama Hirofumi MZ 31d7680a53 [SDK][INCLUDE] Update msgdump.h 2019-10-13 10:45:17 +09:00
Mark Jansen e1984d03b4
[WIN32K:menu] Use signed types for negative values...
CORE-16306
2019-10-12 16:19:58 +02:00
Joachim Henze cd2a274ef7 [BROWSEUI][SHELLFIND] Allow to 'Open Containing Folder'
of a search result again.

The feature regressed by 0.4.13-dev-1133-g
a3ee648d8b

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.
2019-10-12 15:44:58 +02:00
Joachim Henze 96ef605f4b [WIN32SS] Fix regression CORE-16393
Symptom "cmd did not hide the taskbar anymore when switching to fullscreen"

It regressed by SVN r75407 == git
09ab5ea7ed

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.
2019-10-11 23:21:39 +02:00
Stanislav Motylkov 297abde716 [FREELDR][XBOXVMP] Retrieve screen resolution directly from NV2A GPU (#1962)
CORE-16216
2019-10-09 23:27:22 +02:00
Hermès Bélusca-Maïto 7909284220
[FREELDR] Advance the file pointers every time a read operation is performed, in accordance with the ARC specification. 2019-10-09 03:26:48 +02:00
Hermès Bélusca-Maïto db15c921e8
[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.
2019-10-09 03:26:41 +02:00
Stanislav Motylkov 034820ca55 [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
2019-10-09 02:35:07 +02:00
Brock Mammen 3fee5d0e1c [EXPLORER] Fix right-click menu for taskbar clock (#1944)
CORE-16397
2019-10-09 01:18:36 +02:00
Stanislav Motylkov b3301df570 [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
2019-10-08 17:08:44 +02:00
Mas4hmad f84bd4f393 [TRANSLATION] Add/Update Indonesian translations (#1904)
Add/Update Indonesian translations for CHARMAP, CMDUTILS-HELP, SERVMAN, SETUPAPI, SHELL32, SUBST, SYSSETUP, TASKMGR, USERINIT.
2019-10-08 17:03:14 +02:00
Carlo Bramini 3377b901b2 [CMDUTILS] Add italian translation for 'comp' utility. (#1931) 2019-10-08 16:52:30 +02:00
maharmstone 90ac794bf2 [FREELDR] Handle Btrfs sparse extents (#1959) 2019-10-08 16:50:57 +02:00
Hermès Bélusca-Maïto 63e22b8287
[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.
2019-10-08 01:30:25 +02:00
Hermès Bélusca-Maïto 0d6631c2da
[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>
2019-10-08 01:30:15 +02:00
Hermès Bélusca-Maïto 25badcfbbd
[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).
2019-10-07 02:57:48 +02:00
Hermès Bélusca-Maïto 21c51eed05
[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.
2019-10-07 02:54:07 +02:00
Hermès Bélusca-Maïto 912268762e
[SDK:CRT] For intrinsics that don't exist on MSVC 2010 we cannot use an implementation in inlined ASM for x64 builds. 2019-10-07 02:54:05 +02:00
Eric Kohl 80db055135 [SYSSETUP][NETCFGX][INF] Install the TCPIP protocol driver properly
Get rid of the special RandomProtocolGUID_TCPIP :-)
Works with the Setup CD and Live CD.
2019-10-06 22:36:19 +02:00
Hermès Bélusca-Maïto 2d1a6b2db9
[FREELDR] NT loader: Allocate the Loader Block Extension much earlier in the process. 2019-10-06 18:24:48 +02:00
Hermès Bélusca-Maïto eeeca29c6c
[FREELDR] INFFILE Parser: Fix while-loop conditions, this bug existed for 16+ years (commit 939d5316, revision 4758). 2019-10-06 18:18:34 +02:00
Katayama Hirofumi MZ 2f4fb903b4
[MEDIA][FONTS] Delete many fonts CORE-16407 (#1955)
Delete many fonts (about a hundred) to reduce memory consumption. CORE-16407
2019-10-06 22:09:19 +09:00
Serge Gautherie 09beb7502e [MOUNTMGR] Properly look for device and break when found
Also use same pattern in MountMgrCreatePointWorker().

Addendum to a7f97cc70f.
2019-10-06 10:58:30 +02:00
Serge Gautherie 9f8e5d1ce0 [MOUNTMGR] QueryPointsFromMemory(): Do not leak DeviceName.Buffer
Follow-up to 7601011f4e.
2019-10-06 10:52:05 +02:00
Mark Harmstone 9ad0dd1856
[FREELDR] Retrieve the correct ACPI RSDP table address. (#1951)
Use either the RSDT (ACPI 1.0) or the XSDT (ACPI >1.0).
This fixes ACPI issues with Vista on VirtualBox.
2019-10-05 23:20:53 +02:00