6 hours ago[HAL] Add APIC hals to setup and livecd master
Timo Kreuzer [Thu, 3 Jun 2021 09:53:07 +0000 (11:53 +0200)]
[HAL] Add APIC hals to setup and livecd

6 hours ago[HAL:APIC] Fix interrupt assignment
Timo Kreuzer [Sat, 5 Jun 2021 13:41:49 +0000 (15:41 +0200)]
[HAL:APIC] Fix interrupt assignment

This is probably not how it is supposed to work, but the results are somewhat similar to what Windows has.

6 hours ago[HAL:APIC] Remove obsolete hacks
Timo Kreuzer [Thu, 3 Jun 2021 17:29:25 +0000 (19:29 +0200)]
[HAL:APIC] Remove obsolete hacks

These hacks were used to work around broken VBox. VBox works fine without the hacks these days.

6 hours ago[HAL:APIC] Code fixes
Timo Kreuzer [Sat, 5 Jun 2021 13:39:22 +0000 (15:39 +0200)]
[HAL:APIC] Code fixes

* Fix some broken code
* Add some ASSERTs
* Use ApicWriteIORedirectionEntry where appropriate
* Use KeQueryInterruptHandler/KeRegisterInterruptHandler to save/restore the old handler instead of saving the KIDTENTRY
* Move HalpProfileInterruptHandler to apictimer.c and implement it
* Add some symbolic names

6 hours ago[MINIHAL] Compile less stuff
Timo Kreuzer [Thu, 3 Jun 2021 09:19:30 +0000 (11:19 +0200)]
[MINIHAL] Compile less stuff

6 hours ago[HAL] Rename apic.h to apicp.h and move it back to the apic folder
Timo Kreuzer [Mon, 24 May 2021 09:27:12 +0000 (11:27 +0200)]
[HAL] Rename apic.h to apicp.h and move it back to the apic folder

Hermès Bélusca-Maïto [Fri, 11 Jun 2021 00:00:23 +0000 (02:00 +0200)]

Fixes CID 1441387: Uninitialized scalar variable (UNINIT),

29 hours ago[NTOS:IO] Comment out (and explain why it is there) an unused LdrEntry assignment...
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 23:46:50 +0000 (01:46 +0200)]
[NTOS:IO] Comment out (and explain why it is there) an unused LdrEntry assignment in IopInitializeBootDrivers(). CID 1237114

29 hours ago[NTOS:IO] Revert part of commit a82ff90b2: don't do direct ULONG data access: it...
Hermès Bélusca-Maïto [Wed, 16 Jun 2021 22:29:58 +0000 (00:29 +0200)]
[NTOS:IO] Revert part of commit a82ff90b2: don't do direct ULONG data access: it might be unaligned.

Requested by Victor.

31 hours ago[NTOS:IO] Fix driverName.Buffer leak in some failure paths in IopGetDriverNames().
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 21:11:27 +0000 (23:11 +0200)]
[NTOS:IO] Fix driverName.Buffer leak in some failure paths in IopGetDriverNames().

driverName.Buffer leaked when the "(!NT_SUCCESS(status) || ServiceName != NULL)"
case is taken because ServiceName != NULL, and some of the functions fail.

31 hours ago[NTOS:IO] Fix basicInfo handling in IopGetDriverNames().
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 20:31:45 +0000 (22:31 +0200)]
[NTOS:IO] Fix basicInfo handling in IopGetDriverNames().

- Fix CID 1477246: Uninitialized pointer read (UNINIT) (happens in
  the last ExFreePoolWithTag(basicInfo, TAG_IO) call when the
  "(!NT_SUCCESS(status) || ServiceName != NULL)" case is not taken).

- Centralize all the ExFreePoolWithTag(basicInfo, TAG_IO) cleanups
  at the end of the function.

- Both cases "(driverName.Buffer == NULL)" and "(ServiceName != NULL)"
  can only be taken when basicInfo != NULL, so assert on this fact.

31 hours ago[NTOS:IO] Fix similar bugs in IopGetDriverNames(), IopInitializeBuiltinDriver() and...
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 19:20:17 +0000 (21:20 +0200)]
[NTOS:IO] Fix similar bugs in IopGetDriverNames(), IopInitializeBuiltinDriver() and IopLoadDriver().

- As they are initialized, some registry string values must be NULL-terminated.
- When retrieving REG_DWORD registry values, validate their length.

31 hours ago[NTOS:IO] Minor code style changes...
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 19:16:27 +0000 (21:16 +0200)]
[NTOS:IO] Minor code style changes...

- Fix/add comments;
- Reduce indentation level;
- Direct copy for registry integer values;
- Use for-loops for linked lists;
- Use ULONG when the API uses it (sizes for Ob, or REG_DWORD data in registry).

40 hours ago[LDR] Restore Logging when images overlap CORE-17635
Joachim Henze [Wed, 16 Jun 2021 11:38:51 +0000 (13:38 +0200)]
[LDR] Restore Logging when images overlap CORE-17635

This reverts
0.4.13-dev-284-g 74be88ac473425fc99e9a363ba8cd604702262bf

The logging is helpful to alert us when we should really
recalculate the base addresses for performance reasons.
Spams a bit sometimes, sure, but it's worth it!

41 hours ago[NTOS:MM] Fix placing entries into MmNonPagedPoolFreeListHead
Victor Perevertkin [Mon, 14 Jun 2021 01:50:01 +0000 (04:50 +0300)]
[NTOS:MM] Fix placing entries into MmNonPagedPoolFreeListHead

When freeing pages, free page entries with pages num == 3 were
incorrectly treated as entries with pages num >= 4 and thus
their re-insertion was not triggered. That lead to non paged pool
fragmentation (can be triggered by kmtest:ExPools, for example)

Also, altered the index acquisition code for MmNonPagedPoolFreeList
entries so it looks more clear

42 hours ago[COMCTL32] Strip EOL whitespace within ifdef __REACTOS__ section
Joachim Henze [Wed, 16 Jun 2021 09:41:56 +0000 (11:41 +0200)]
[COMCTL32] Strip EOL whitespace within ifdef __REACTOS__ section

no functional change.
Make that look beautiful before porting it back further.

Addendum to 0.4.15-dev-534-g 887764e6075fdde7fb81d2a54d5255164c046511

4 days ago[MSI] Enumerate only type DRIVE_FIXED CORE-17623 (& CORE-14432)
Joachim Henze [Sun, 13 Jun 2021 13:30:49 +0000 (15:30 +0200)]
[MSI] Enumerate only type DRIVE_FIXED CORE-17623 (& CORE-14432)

MSI on 2k3sp2 hides empty CD-ROM, and hides CD-ROM with iso mounted.
MSI on 2k3sp2 hides VBox shares, both: writable and read-only-ones.
MSI on 2k3sp2 hides floppy drives with a floppy img mounted.
MSI on XPSP3 hides a mounted writable USB stick.

Thanks to the patches author Doug Lyons.

This patch supersedes
0.4.15-dev-2651-g 864e20b881130cbc9668b8e253a31b8c325e9b99 (CORE-14432)
and we are also better than Wines

5 days ago[GITIGNORE] Add compile_commands.json and .cache folder for clangd cache
Victor Perevertkin [Sat, 12 Jun 2021 22:55:52 +0000 (01:55 +0300)]
[GITIGNORE] Add compile_commands.json and .cache folder for clangd cache

5 days ago[WIN32K] Add x64/arm exports
Adam Słaboń [Sat, 5 Jun 2021 18:42:41 +0000 (20:42 +0200)]
[WIN32K] Add x64/arm exports

Checked against Windows XP x64 and Windows 8 ARM.

6 days ago[FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces 3742/head
Victor Perevertkin [Fri, 11 Jun 2021 12:29:21 +0000 (15:29 +0300)]
[FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces

7 days ago[NTOS:IO] Modify when 'PartitionBuffer' and how 'DriveLayout' are freed in IopCreateA...
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 17:44:59 +0000 (19:44 +0200)]
[NTOS:IO] Modify when 'PartitionBuffer' and how 'DriveLayout' are freed in IopCreateArcNamesDisk().

- Manage the lifetime of the temporary 'PartitionBuffer' buffer where
  it is locally used only, and free it as soon as possible, just after
  calculating the sector checksum. No need to then free it outside of
  the main for-loop.

- When the 'DriveLayout' buffer is freed, ensure the pointer is NULL-ed
  (and assert this at the top of the main for-loop), since it can also
  be freed at cleanup outside this for-loop, and in this case a NULL
  check is performed.
  This will avoid the scenario of possibly double-freeing a pointer,
  in the case the 'DriveLayout' was previously freed (when e.g. reading
  the sector for checksum calculation failed), then the for-loop goes to
  the next disk and stops early.

7 days ago[NTOS:IO/FSTUB] Fix the determination of 'SingleDisk' in IoGetBootDiskInformation().
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 17:31:43 +0000 (19:31 +0200)]
[NTOS:IO/FSTUB] Fix the determination of 'SingleDisk' in IoGetBootDiskInformation().

The purpose of 'SingleDisk' is the same as in the IopCreateArcNames()
function. It is an optimization for that when looking up the
firmware-recognized ARC disks list, in order to match one of these with
the current NT disk being analysed (see e.g. also in IopCreateArcNamesDisk()),
we avoid a possible IopVerifyDiskSignature() call and directly build a
corresponding ARC name NT symbolic link for it.

'SingleDisk' will actually be TRUE, whether the DiskSignatureListHead
list is empty or contains only one element: Indeed in only both these
cases, 'DiskSignatureListHead.Flink->Flink' will refer to the list head.
(If the list is empty but 'SingleDisk' is TRUE, this does not matter,
because the DiskSignatureListHead looking-up loop never starts.)

7 days ago[NTOS:IO] Avoid hardcoding variable types in sizeofs when possible.
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 17:30:45 +0000 (19:30 +0200)]
[NTOS:IO] Avoid hardcoding variable types in sizeofs when possible.

7 days ago[NTOS:IO] Minor code style fixes (typos; improve comments/DPRINT; IN vs. OUT parameter).
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 17:24:04 +0000 (19:24 +0200)]
[NTOS:IO] Minor code style fixes (typos; improve comments/DPRINT; IN vs. OUT parameter).

7 days ago[SHELL32_APITEST] Improve ShellExecCmdLine testcase more (#3736)
Katayama Hirofumi MZ [Thu, 10 Jun 2021 23:09:18 +0000 (08:09 +0900)]
[SHELL32_APITEST] Improve ShellExecCmdLine testcase more (#3736)

- Simplify code.
- Loose the condition of success.
- Add some missing tests.
- Close newly opened windows gracefully.
CORE-17351, CORE-16898, CORE-17612

7 days ago[CMAKE] host-tools: Define ROS_SAVED_* for MSVC_IDE only
Serge Gautherie [Mon, 24 May 2021 06:56:17 +0000 (08:56 +0200)]
[CMAKE] host-tools: Define ROS_SAVED_* for MSVC_IDE only

Addendum to 18e95f5.

7 days ago[SOUNDS] Add new Recycle Bin system sound
Oleg Dubinskiy [Fri, 4 Jun 2021 14:32:07 +0000 (17:32 +0300)]
[SOUNDS] Add new Recycle Bin system sound
Add new sound for Recycle Bin sound event.
Since this sound event is now working properly after some fixes in shell32 code, it's now possible for user to set the sound for this sound event manually.
But don't enable it by default, since it is also disabled on Windows Server 2003.

7 days ago[RAPPS] Fix double free when closing rapps
Mark Jansen [Wed, 9 Jun 2021 20:56:53 +0000 (22:56 +0200)]
[RAPPS] Fix double free when closing rapps

7 days ago[HIDPARSER] Don't include pshpack1.h before including other headers
Timo Kreuzer [Wed, 9 Jun 2021 08:54:05 +0000 (10:54 +0200)]
[HIDPARSER] Don't include pshpack1.h before including other headers

NEVER DO THIS! It is guaranteed to be wrong. Instead always individually pack single structures that need packing.
This fixes USB mouse on 64 bit builds.

8 days ago[MORE] Use positional elements to build the MORE prompt, whose state is controlled...
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 02:10:55 +0000 (04:10 +0200)]
[MORE] Use positional elements to build the MORE prompt, whose state is controlled by flags.

8 days ago[MORE] Update and complete MORE's help usage.
Hermès Bélusca-Maïto [Thu, 10 Jun 2021 00:34:23 +0000 (02:34 +0200)]
[MORE] Update and complete MORE's help usage.

And add french translation.

8 days ago[WIN32K:ENG] In EngLockDriverObj, properly return NULL when locking failed
Jérôme Gardou [Wed, 9 Jun 2021 16:27:12 +0000 (18:27 +0200)]
[WIN32K:ENG] In EngLockDriverObj, properly return NULL when locking failed


8 days ago[MORE][CONUTILS] Implement missing features of the MORE command (#3658)
Katayama Hirofumi MZ [Wed, 9 Jun 2021 14:30:30 +0000 (23:30 +0900)]
[MORE][CONUTILS] Implement missing features of the MORE command (#3658)

Implement missing features of the MORE command. Special thanks to @HBelusca. CORE-4019

8 days ago[NTOS:MM] Handle PT references for page table faults in MmAccessFault
Jérôme Gardou [Mon, 7 Jun 2021 12:29:37 +0000 (14:29 +0200)]
[NTOS:MM] Handle PT references for page table faults in MmAccessFault

Idea from Timo Kreuzer

8 days ago[NTOS:MM] Get rid of MiQueryPageTableReferences
Jérôme Gardou [Mon, 7 Jun 2021 12:12:21 +0000 (14:12 +0200)]
[NTOS:MM] Get rid of MiQueryPageTableReferences

8 days ago[NTOS] Implement MiIsPageTablePresent as a replacement for the abused MiQueryPageTabl...
Timo Kreuzer [Thu, 26 Dec 2019 19:30:54 +0000 (20:30 +0100)]
[NTOS] Implement MiIsPageTablePresent as a replacement for the abused MiQueryPageTableReferences

8 days ago[NTOS:MM] In MiMakePdeExistAndValid, do not overly check PDE validity
Jérôme Gardou [Fri, 28 May 2021 14:56:28 +0000 (16:56 +0200)]
[NTOS:MM] In MiMakePdeExistAndValid, do not overly check PDE validity

It's "okay" to not #ifdef, but it's useless and confusing.

8 days ago[NTOS:MM] Implement proper refcounting of page tables on amd64
Jérôme Gardou [Fri, 28 May 2021 14:58:59 +0000 (16:58 +0200)]
[NTOS:MM] Implement proper refcounting of page tables on amd64


8 days ago[NTOS:MM] Make MiIsEntireRangeCommitted 64-bits aware
Jérôme Gardou [Wed, 26 May 2021 08:25:51 +0000 (10:25 +0200)]
[NTOS:MM] Make MiIsEntireRangeCommitted 64-bits aware

8 days ago[NTOS:MM] Add some DPRINTs when incrementing or decrementing PFN share count
Jérôme Gardou [Wed, 26 May 2021 08:20:57 +0000 (10:20 +0200)]
[NTOS:MM] Add some DPRINTs when incrementing or decrementing PFN share count

8 days ago[NTOS:MM] Make MiCalculatePageCommitment 64-bits aware
Jérôme Gardou [Tue, 25 May 2021 14:08:25 +0000 (16:08 +0200)]
[NTOS:MM] Make MiCalculatePageCommitment 64-bits aware

8 days ago[NTOS:MM] Add a few MiP*eToP*e helpers
Jérôme Gardou [Tue, 25 May 2021 14:05:57 +0000 (16:05 +0200)]
[NTOS:MM] Add a few MiP*eToP*e helpers

And turn some of the existing ones into inline functions for the sake of type checking

8 days ago[NTOS:MM] Properly initialize initial process address space on amd64
Jérôme Gardou [Tue, 25 May 2021 08:44:11 +0000 (10:44 +0200)]
[NTOS:MM] Properly initialize initial process address space on amd64

By applying the same kludge on the relevant MMPFNs than on x86

8 days ago[NTOS:MM] Unconditionally delete the PFN in MiDeletePte when PTE is in transition
Jérôme Gardou [Mon, 22 Mar 2021 08:46:06 +0000 (09:46 +0100)]
[NTOS:MM] Unconditionally delete the PFN in MiDeletePte when PTE is in transition

When we will have a modified page writer, it will have to know if the written
page is stale when being done, and act accordingly.


8 days ago[NTOS:MM] Remove some dead code from legacy Mm
Jérôme Gardou [Mon, 26 Apr 2021 16:18:23 +0000 (18:18 +0200)]
[NTOS:MM] Remove some dead code from legacy Mm

8 days ago[CMD] Use GetFullPathName instead of copying buffers when resolving executable names
Jérôme Gardou [Tue, 8 Jun 2021 16:04:35 +0000 (18:04 +0200)]
[CMD] Use GetFullPathName instead of copying buffers when resolving executable names

This properly strips spaces & dots at the end of the file.

Fixes the infinite loop with CreateProcess calling cmd over and over with e.g. 'cmd /c "some_script.bat   "'
Uncovered by recent ShellExecuteEx tests
Dedicated to Katayama for the trigger & Hermès for the tests

8 days ago[USER32_APITEST] Add SetFocus testcase (#3732)
Katayama Hirofumi MZ [Wed, 9 Jun 2021 07:14:31 +0000 (16:14 +0900)]
[USER32_APITEST] Add SetFocus testcase (#3732)

Investigate about setting keyboard focus. CORE-17550

9 days ago[HIVESYS] Use "Primary Disk" writing for this driver load order group
Victor Perevertkin [Tue, 8 Jun 2021 14:29:47 +0000 (17:29 +0300)]
[HIVESYS] Use "Primary Disk" writing for this driver load order group

9 days ago[NTOS:SE] Use IQS_NONE for the first class which is not existent and barely used 3734/head
George Bișoc [Sun, 6 Jun 2021 17:48:34 +0000 (19:48 +0200)]
[NTOS:SE] Use IQS_NONE for the first class which is not existent and barely used

9 days ago[NTOS:PS] Use IQS_NONE for classes that do not exist
George Bișoc [Sun, 6 Jun 2021 17:47:51 +0000 (19:47 +0200)]
[NTOS:PS] Use IQS_NONE for classes that do not exist

9 days ago[NTOSKRNL] Use CHAR for non existent classes
George Bișoc [Sun, 6 Jun 2021 17:39:32 +0000 (19:39 +0200)]
[NTOSKRNL] Use CHAR for non existent classes

An alignment of 1 means no alignment required and the class doesn't exist. 0 shouldn't be used for alignment requirement in IQS_NONE!

10 days ago[SHELL32_APITEST] Strengthen ShellExecuteEx testcase (#3731)
Katayama Hirofumi MZ [Mon, 7 Jun 2021 23:07:37 +0000 (08:07 +0900)]
[SHELL32_APITEST] Strengthen ShellExecuteEx testcase (#3731)

Investigate shell32!ShellExecuteEx function more. CORE-17351, CORE-16898, CORE-17612

10 days ago[NTOS:MM] Fix remnants of CORE-17587
Jérôme Gardou [Tue, 1 Jun 2021 08:32:12 +0000 (10:32 +0200)]
[NTOS:MM] Fix remnants of CORE-17587

10 days ago[NTOS:MM] Make MI_MAKE_HARDWARE_PTE_KERNEL actually respect the protection it is...
Jérôme Gardou [Thu, 27 May 2021 17:17:13 +0000 (19:17 +0200)]
[NTOS:MM] Make MI_MAKE_HARDWARE_PTE_KERNEL actually respect the protection it is given

This one would set a page as writable & dirty even if MM_READONLY was passed

10 days ago[CPL][APPWIZ] Follow-up of #3726
Katayama Hirofumi MZ [Mon, 7 Jun 2021 09:03:49 +0000 (18:03 +0900)]
[CPL][APPWIZ] Follow-up of #3726

Sorry, #3726 doesn't fix CORE-5737. CORE-17550

10 days ago[USETUP] Polish translation update (#3715)
Piotr Hetnarowicz [Mon, 7 Jun 2021 08:31:32 +0000 (10:31 +0200)]
[USETUP] Polish translation update (#3715)

11 days ago[VIDEOPRT] Fix monitor ID decoding issues
Eric Kohl [Sun, 6 Jun 2021 19:26:34 +0000 (21:26 +0200)]
[VIDEOPRT] Fix monitor ID decoding issues

11 days ago[NTOS:PS] Enable alignment probing for thread/process information classes 2874/head
George Bișoc [Mon, 3 May 2021 13:46:35 +0000 (15:46 +0200)]
[NTOS:PS] Enable alignment probing for thread/process information classes

In addition to that, here are some stuff done in this commit whilst testing:

- ICIF_QUERY_SIZE_VARIABLE and friends were badly misused, they should be used only when an information class whose information length size is dyanmic and not fixed. By removing such flags from erroneous classes, this fixes the STATUS_INFO_LENGTH_MISMATCH testcases.

- Use CHAR instead of UCHAR for classes that do not need alignment probing, as every other class in the table do, for the sake of consistency.

- ProcessEnableAlignmentFaultFixup uses BOOLEAN as type size, not CHAR. This fixes a testcase failure on ROS.

- Check for information length size before proceeding further on querying the process' cookie information.

- ProcessHandleTracing wants an alignment of a ULONG, not CHAR.

- Move PROCESS_LDT_INFORMATION and PROCESS_LDT_SIZE outside of NTOS_MODE_USER macro case. This fixes a compilation issue when enabling the alignment probing. My mistake of having them inside NTOS_MODE_USER case, sorry.

- On functions like NtQueryInformationThread and the Process equivalent, complete probing is not done at the beginning of the function, complete probing including if the buffer is writable alongside with datatype misalignment check that is. Instead such check is done on each information class case basis. With that said, we have to explicitly tell DefaultQueryInfoBufferCheck if we want a complete probing or not initially.

11 days ago[SHELL32_APITEST] ShellHook testcase Fix compiler error (addendum to #3289)
Joachim Henze [Sun, 6 Jun 2021 14:40:28 +0000 (16:40 +0200)]
[SHELL32_APITEST] ShellHook testcase Fix compiler error (addendum to #3289)

addendum to 0.4.15-dev-1123-g 0089291751837d977431c85b6d8d6b1232fbb67b

Fix a compiler error on RosBE2.1.6 GCC4.7.2
that I got when I merged this test back to 0.4.14RC:

C:/0414rls/reactos/modules/rostests/apitests/shell32/ShellHook.cpp: In function
C:/0414rls/reactos/modules/rostests/apitests/shell32/ShellHook.cpp:339:26: error
: comparison between signed and unsigned integer expressions [-Werror=sign-compa
cc1plus.exe: all warnings being treated as errors
ninja: build stopped: subcommand failed.

11 days ago[LSASRV] Notify all authentication packages of a session to be deleted
Eric Kohl [Sun, 6 Jun 2021 09:38:26 +0000 (11:38 +0200)]
[LSASRV] Notify all authentication packages of a session to be deleted

12 days ago[SHELL32_APITEST] Follow-up of #3723
Katayama Hirofumi MZ [Sat, 5 Jun 2021 23:25:27 +0000 (08:25 +0900)]
[SHELL32_APITEST] Follow-up of #3723

Strengthen FindExecutable testcase. CORE-17351, CORE-16898, CORE-17612

12 days ago[HOST-TOOLS] Block sending telemetry when spawning a new shell
Mark Jansen [Sat, 5 Jun 2021 22:43:05 +0000 (00:43 +0200)]
[HOST-TOOLS] Block sending telemetry when spawning a new shell

12 days ago[SHELL32_APITEST] Add FindExecutable testcase (#3723)
Katayama Hirofumi MZ [Sat, 5 Jun 2021 21:51:42 +0000 (06:51 +0900)]
[SHELL32_APITEST] Add FindExecutable testcase (#3723)

Investigate the implementation of shell32!FindExecutable function.
CORE-17351, CORE-16898, CORE-17612

12 days ago[VBE] Check if DDC is supported before trying to read EDID
Hervé Poussineau [Sat, 29 May 2021 19:37:03 +0000 (21:37 +0200)]
[VBE] Check if DDC is supported before trying to read EDID

Also set Edx to 0 when reading Edid, as per specification.


12 days ago[VIDEOPRT] Report monitor name instead of the generic 'Monitor' string
Hervé Poussineau [Sat, 29 May 2021 20:55:15 +0000 (22:55 +0200)]
[VIDEOPRT] Report monitor name instead of the generic 'Monitor' string

12 days ago[VIDEOPRT] Give to each device its own entry in HKLM\SYSTEM\CurrentControlSet\Services
Hervé Poussineau [Sat, 29 May 2021 06:29:30 +0000 (08:29 +0200)]
[VIDEOPRT] Give to each device its own entry in HKLM\SYSTEM\CurrentControlSet\Services

This is required if you have two graphic cards using the same driver.

12 days ago[ATL_APITEST] Add some testcases for CString 'operator !='
Mark Jansen [Sat, 5 Jun 2021 20:16:41 +0000 (22:16 +0200)]
[ATL_APITEST] Add some testcases for CString 'operator !='

12 days ago[ATL] Implement CString 'operator !='
Mark Jansen [Sat, 5 Jun 2021 20:16:08 +0000 (22:16 +0200)]
[ATL] Implement CString 'operator !='

12 days ago[SYSSETUP] Use the calculated full path
Mark Jansen [Sat, 5 Jun 2021 20:14:34 +0000 (22:14 +0200)]
[SYSSETUP] Use the calculated full path

12 days ago[MSI] setup should not enumerate read-only CDRoms as install-targets CORE-14432
Joachim Henze [Sat, 5 Jun 2021 19:27:01 +0000 (21:27 +0200)]
[MSI] setup should not enumerate read-only CDRoms as install-targets CORE-14432

We decided to check a bit different than Wine currently does.
Wine checks for
if (GetVolumeInformationW(ptr, NULL, 0, NULL, 0, &flags, NULL, 0) && flags & FILE_READ_ONLY_VOLUME)
to exclude read-only-media while we (for now) check for
if (GetDriveTypeW(ptr) == DRIVE_CDROM)

For now this gives us the benefit of covering also CDROM drives, that do not have
a CD put into it.
That does not work properly for us with the Wine patch yet, but it does for Wine!
So this maybe points to some other bug in ros, maybe in our CDROM(FS)-drivers?

In the future we should also test this on other read-only-media in Windows e.g.
a read-only USB stick to decide whether we want to stick with our current solution
or whether we want to switch to Wines solution or whether we want to logically OR
both conditions!

Thanks to Doug Lyons for providing what *currently* does work best for us!

VBox,77546 (no change)
KVM,77541 (no change)

12 days ago[MPR] spec: Add stubs, document parameter types, stub-enable 2 functions (#3696)
Serge Gautherie [Sat, 5 Jun 2021 18:49:41 +0000 (20:49 +0200)]
[MPR] spec: Add stubs, document parameter types, stub-enable 2 functions (#3696)

* Add 20 stubs from mpr.dll v5.2.3790.3959.
* Document some parameter types from
* Change WNetGetDirectoryType[A|W] to no-op stubs


12 days ago[RAPPS] Implement support for architecture specific sections
Timo Kreuzer [Fri, 4 Jun 2021 13:20:21 +0000 (15:20 +0200)]
[RAPPS] Implement support for architecture specific sections

See CORE-17616

12 days ago[RTL][KMTEST] RtlPcToFileHeader doesn't handle user mode images in kernel mode
Timo Kreuzer [Thu, 10 May 2018 19:37:30 +0000 (21:37 +0200)]
[RTL][KMTEST] RtlPcToFileHeader doesn't handle user mode images in kernel mode

12 days ago[RTL] Fix RtlWalkFrameChain and wrap it in SEH
Timo Kreuzer [Wed, 7 Mar 2018 14:38:24 +0000 (15:38 +0100)]
[RTL] Fix RtlWalkFrameChain and wrap it in SEH

12 days ago[RTL] Simplify RtlRaiseException
Timo Kreuzer [Fri, 2 Mar 2018 06:48:34 +0000 (07:48 +0100)]
[RTL] Simplify RtlRaiseException

12 days ago[RTL] Implement RtplUnwindInternal and wrap RtlUnwindEx and RtlDispatchException...
Timo Kreuzer [Thu, 1 Mar 2018 13:43:05 +0000 (14:43 +0100)]
[RTL] Implement RtplUnwindInternal and wrap RtlUnwindEx and RtlDispatchException around it

Based on the description in this blog article:

12 days ago[RTL] Improve RtlVirtualUnwind
Timo Kreuzer [Thu, 1 Mar 2018 13:14:13 +0000 (14:14 +0100)]
[RTL] Improve RtlVirtualUnwind

* Add support for version 2 unwind info
* Implement UnwindOpSlots() and use it (based on
* Fix handling of UWOP_PUSH_MACHFRAME

12 days ago[RTL] Move exception handling code to except.c
Timo Kreuzer [Thu, 1 Mar 2018 13:13:01 +0000 (14:13 +0100)]
[RTL] Move exception handling code to except.c

12 days ago[RTL] Improve / fix the SList code
Timo Kreuzer [Wed, 7 Mar 2018 11:03:51 +0000 (12:03 +0100)]
[RTL] Improve / fix the SList code

Don't push a register in the middle of a an asm function. Instead add a proper prolog and store rbx in a home param slot.

12 days ago[CRT] Implement __C_specific_handler
Timo Kreuzer [Thu, 1 Mar 2018 13:22:18 +0000 (14:22 +0100)]
[CRT] Implement __C_specific_handler

12 days ago[CPL][APPWIZ] Make gecko download cancellable by keyboard (#3726)
Katayama Hirofumi MZ [Sat, 5 Jun 2021 09:21:25 +0000 (18:21 +0900)]
[CPL][APPWIZ] Make gecko download cancellable by keyboard (#3726)

We shouldn't disable nor hide the control with focus. CORE-17550, CORE-5737

13 days ago[WINETESTS] Workaround crashes in riched20:richole on VBox/KVM bots CORE-16799
Joachim Henze [Fri, 4 Jun 2021 18:04:20 +0000 (20:04 +0200)]
[WINETESTS] Workaround crashes in riched20:richole on VBox/KVM bots CORE-16799

The crashes began when those tests were synced to Wine Staging 4.18 in
0.4.14-dev-419-g 76cf09cfea15911082245a65547fb67512b710ce

WHS 2k3sp2 Before the revert implies the tests were actually ok:

Disabling some of the tests is very unsatisfying of course,
but at least allows us to observe again
the results of the other tests from that suite.


13 days ago[NTOS:KE/x64] Handle shared interrupts
Timo Kreuzer [Fri, 9 Mar 2018 22:55:54 +0000 (23:55 +0100)]
[NTOS:KE/x64] Handle shared interrupts

13 days ago[EXPLORER] Check m_Position for -1 before using it as an index
Timo Kreuzer [Thu, 30 May 2019 17:21:45 +0000 (19:21 +0200)]
[EXPLORER] Check m_Position for -1 before using it as an index

This fixes a crash on x64.

13 days ago[BROWSEUI] Fix broken code
Timo Kreuzer [Fri, 3 Jan 2020 16:13:17 +0000 (17:13 +0100)]
[BROWSEUI] Fix broken code

2 weeks ago[SHELL32_APITEST] ShellExecCmdLine: Don't copy Notepad.exe
Katayama Hirofumi MZ [Thu, 3 Jun 2021 21:16:07 +0000 (06:16 +0900)]
[SHELL32_APITEST] ShellExecCmdLine: Don't copy Notepad.exe

On Windows 10, when I copyed Notepad.exe to the desktop and double-clicked it, it won't start Notepad. This is probably because there is a security protection mechanism (or some mechanism) at work. Tests that assume this mechanism will not work properly on ReactOS. Thus, I had to delete some tests. CORE-17351

2 weeks ago[SHELL32_APITEST] ShellExecCmdLine: Close Notepad windows
Katayama Hirofumi MZ [Thu, 3 Jun 2021 05:49:49 +0000 (14:49 +0900)]
[SHELL32_APITEST] ShellExecCmdLine: Close Notepad windows

By using newly added CloseNotepads function, close the Notepad window.

2 weeks ago[NTOS:PS/x64] Fix PspGetOrSetContextKernelRoutine
Timo Kreuzer [Tue, 15 May 2018 12:08:48 +0000 (14:08 +0200)]
[NTOS:PS/x64] Fix PspGetOrSetContextKernelRoutine

It now uses KiSetTrapContext to set the non-volatile context on the stack and the volatile context in the trap frame.

2 weeks ago[NTOS:KE/x64] Implement KiSetTrapContext
Timo Kreuzer [Tue, 15 May 2018 12:06:27 +0000 (14:06 +0200)]
[NTOS:KE/x64] Implement KiSetTrapContext

KiSetTrapContext is an asm wrapper around RtlSetUnwindContext, which first stores an exception frame to assure that all non-volatile registers were put on the stack, then calls RtlSetUnwindContext to update their first saving positions on the stack and finally restore the exception frame to potentially load any updated registers, that haven't been saved elsewhere on the stack.

2 weeks ago[RTL/x64] Implement RtlpCaptureNonVolatileContextPointers and RtlSetUnwindContext
Timo Kreuzer [Tue, 15 May 2018 12:05:19 +0000 (14:05 +0200)]
[RTL/x64] Implement RtlpCaptureNonVolatileContextPointers and RtlSetUnwindContext

RtlpCaptureNonVolatileContextPointers walks the stack and captures the addresses of all non-volatile registers on the stack, when they have been saved first. This is needed to be able to fix up the non-volatile on a system call, which doesn't capture non-volatiles, but relies on them to be restored by the callees.

Instead of only checking for the TargetFrame, also check for a mode change, i.e. RIP went from kernel to user, in which case the target frame was not reached yet, because it was too large, but processing can't continue here.

RtlSetUnwindContext uses RtlpCaptureNonVolatileContextPointers to set the non-volatile registers in the the stack. They will be picked up, when returning back or unwinding, e.g. to the system call handler.

2 weeks ago[BOOT] CMakeLists.txt: Compare ARCH to arm64, not aarch64
Serge Gautherie [Mon, 24 May 2021 06:56:17 +0000 (08:56 +0200)]
[BOOT] CMakeLists.txt: Compare ARCH to arm64, not aarch64

This aarch64 was introduced first,
but arm64 was preferred everywhere else since then.


2 weeks ago[CMAKE] CMakeLists.txt: Fix 'omap-zoom2' typo
Serge Gautherie [Thu, 23 May 2019 02:11:41 +0000 (04:11 +0200)]
[CMAKE] CMakeLists.txt: Fix 'omap-zoom2' typo

Addendum to fae2044 (r51783).

2 weeks ago[CRT][ARM] Fix uninitialized variables caught by RTC
Stanislav Motylkov [Wed, 2 Jun 2021 10:18:40 +0000 (13:18 +0300)]
[CRT][ARM] Fix uninitialized variables caught by RTC


2 weeks ago[EXPLORER] Polish translation update (#3704)
Piotr Hetnarowicz [Wed, 2 Jun 2021 09:54:12 +0000 (11:54 +0200)]
[EXPLORER] Polish translation update (#3704)

2 weeks ago[BROWSEUI] Polish translation update (#3703)
Piotr Hetnarowicz [Wed, 2 Jun 2021 09:53:07 +0000 (11:53 +0200)]
[BROWSEUI] Polish translation update (#3703)

2 weeks ago[WINLOGON] Polish translation update (#3702)
Piotr Hetnarowicz [Wed, 2 Jun 2021 09:52:10 +0000 (11:52 +0200)]
[WINLOGON] Polish translation update (#3702)

2 weeks ago[SHELL32] Polish translation update (#3701)
Piotr Hetnarowicz [Wed, 2 Jun 2021 09:50:54 +0000 (11:50 +0200)]
[SHELL32] Polish translation update (#3701)

2 weeks ago[NTOS:SE] Implement logon session deletion 3677/head
George Bișoc [Sun, 23 May 2021 10:21:47 +0000 (12:21 +0200)]
[NTOS:SE] Implement logon session deletion

And declare a prototype for SepCleanupLUIDDeviceMapDirectory and annotate it with SAL.

2 weeks ago[CMAKE] CMakeLists.txt: Remove NO_UNDERSCORE_PREFIX leftovers
Serge Gautherie [Mon, 24 May 2021 06:56:17 +0000 (08:56 +0200)]
[CMAKE] CMakeLists.txt: Remove NO_UNDERSCORE_PREFIX leftovers

And switch to add_compile_definitions().

Addendum to 9efafd6.

2 weeks ago[WIN32SS][NTUSER] ShowWindow.SW_MINIMIZE should show window (#3700)
Katayama Hirofumi MZ [Tue, 1 Jun 2021 02:11:23 +0000 (11:11 +0900)]
[WIN32SS][NTUSER] ShowWindow.SW_MINIMIZE should show window (#3700)

- user32!ShowWindow.SW_MINIMIZE should show the window.
- Fix the return value of ShowWindow function on invalid parameter.