Commit graph

80063 commits

Author SHA1 Message Date
Jérôme Gardou
ed1038ff9c [NTOS:MM] Properly initialize initial process address space on amd64
By applying the same kludge on the relevant MMPFNs than on x86
2021-06-09 11:27:18 +02:00
Jérôme Gardou
f9ea58dc97 [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.

CORE-8552
2021-06-09 11:27:18 +02:00
Jérôme Gardou
82dd1afe33 [NTOS:MM] Remove some dead code from legacy Mm 2021-06-09 11:27:18 +02:00
Jérôme Gardou
521d330d04 [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
2021-06-09 11:23:39 +02:00
Katayama Hirofumi MZ
94d9e9c2a8
[USER32_APITEST] Add SetFocus testcase (#3732)
Investigate about setting keyboard focus. CORE-17550
2021-06-09 16:14:31 +09:00
Victor Perevertkin
d220ea3e3c
[HIVESYS] Use "Primary Disk" writing for this driver load order group 2021-06-08 17:29:47 +03:00
George Bișoc
7ca6bfb994
[NTOS:SE] Use IQS_NONE for the first class which is not existent and barely used 2021-06-08 09:26:11 +02:00
George Bișoc
672c9068bb
[NTOS:PS] Use IQS_NONE for classes that do not exist 2021-06-08 09:26:11 +02:00
George Bișoc
bbdb4d6340
[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!
2021-06-08 09:25:30 +02:00
Katayama Hirofumi MZ
c35a84985a
[SHELL32_APITEST] Strengthen ShellExecuteEx testcase (#3731)
Investigate shell32!ShellExecuteEx function more. CORE-17351, CORE-16898, CORE-17612
2021-06-08 08:07:37 +09:00
Jérôme Gardou
a5ea259b28 [NTOS:MM] Fix remnants of CORE-17587 2021-06-07 17:04:18 +02:00
Jérôme Gardou
4ddc66f224 [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
CORE-17587
2021-06-07 17:04:18 +02:00
Katayama Hirofumi MZ
46c84779b6 [CPL][APPWIZ] Follow-up of #3726
Sorry, #3726 doesn't fix CORE-5737. CORE-17550
2021-06-07 18:03:49 +09:00
Piotr Hetnarowicz
ab1f844189
[USETUP] Polish translation update (#3715) 2021-06-07 10:31:32 +02:00
Eric Kohl
4db8b82aeb [VIDEOPRT] Fix monitor ID decoding issues 2021-06-06 21:27:00 +02:00
George Bișoc
a330b56787
[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.
2021-06-06 17:14:22 +02:00
Joachim Henze
d30a1673d4 [SHELL32_APITEST] ShellHook testcase Fix compiler error (addendum to #3289)
addendum to 0.4.15-dev-1123-g 0089291751

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
'LRESULT WindowProc(HWND, UINT, WPARAM, LPARAM)':
C:/0414rls/reactos/modules/rostests/apitests/shell32/ShellHook.cpp:339:26: error
: comparison between signed and unsigned integer expressions [-Werror=sign-compa
re]
cc1plus.exe: all warnings being treated as errors
ninja: build stopped: subcommand failed.
2021-06-06 16:40:28 +02:00
Eric Kohl
6ae7fc2b04 [LSASRV] Notify all authentication packages of a session to be deleted 2021-06-06 11:38:26 +02:00
Katayama Hirofumi MZ
9eb566e707 [SHELL32_APITEST] Follow-up of #3723
Strengthen FindExecutable testcase. CORE-17351, CORE-16898, CORE-17612
2021-06-06 08:25:27 +09:00
Mark Jansen
64d3a54de9
[HOST-TOOLS] Block sending telemetry when spawning a new shell 2021-06-06 00:43:05 +02:00
Katayama Hirofumi MZ
fccea84dd4
[SHELL32_APITEST] Add FindExecutable testcase (#3723)
Investigate the implementation of shell32!FindExecutable function.
CORE-17351, CORE-16898, CORE-17612
2021-06-06 06:51:42 +09:00
Hervé Poussineau
08e9000496 [VBE] Check if DDC is supported before trying to read EDID
Also set Edx to 0 when reading Edid, as per specification.

CORE-16695
2021-06-05 23:38:05 +02:00
Hervé Poussineau
fa54704158 [VIDEOPRT] Report monitor name instead of the generic 'Monitor' string 2021-06-05 23:38:05 +02:00
Hervé Poussineau
2ae6bd7453 [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.
2021-06-05 23:38:05 +02:00
Mark Jansen
e8902450bc [ATL_APITEST] Add some testcases for CString 'operator !=' 2021-06-05 23:28:38 +02:00
Mark Jansen
5ea3814a22 [ATL] Implement CString 'operator !=' 2021-06-05 23:28:38 +02:00
Mark Jansen
1d68fe209f
[SYSSETUP] Use the calculated full path 2021-06-05 22:14:34 +02:00
Joachim Henze
864e20b881 [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 https://reactos.org/testman/compare.php?ids=77537,77546 (no change)
KVM https://reactos.org/testman/compare.php?ids=77531,77541 (no change)
2021-06-05 21:27:40 +02:00
Serge Gautherie
83fcd65700
[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 https://github.com/Microsoft/winfile/
* Change WNetGetDirectoryType[A|W] to no-op stubs

CORE-14376
2021-06-05 20:49:41 +02:00
Timo Kreuzer
1f5f614c7a [RAPPS] Implement support for architecture specific sections
See CORE-17616
2021-06-05 19:17:05 +02:00
Timo Kreuzer
20c1da7963 [RTL][KMTEST] RtlPcToFileHeader doesn't handle user mode images in kernel mode 2021-06-05 14:39:29 +02:00
Timo Kreuzer
3cf2bea0de [RTL] Fix RtlWalkFrameChain and wrap it in SEH 2021-06-05 13:52:42 +02:00
Timo Kreuzer
e6af7d9dfe [RTL] Simplify RtlRaiseException 2021-06-05 13:52:42 +02:00
Timo Kreuzer
3ec1ca9b46 [RTL] Implement RtplUnwindInternal and wrap RtlUnwindEx and RtlDispatchException around it
Based on the description in this blog article: http://www.nynaeve.net/?p=106
2021-06-05 13:52:42 +02:00
Timo Kreuzer
1d58e84736 [RTL] Improve RtlVirtualUnwind
* Add support for version 2 unwind info
* Implement UnwindOpSlots() and use it (based on https://github.com/dotnet/coreclr/blob/master/src/unwinder/amd64/unwinder_amd64.cpp)
* Fix handling of UWOP_PUSH_MACHFRAME
2021-06-05 13:52:42 +02:00
Timo Kreuzer
5075f7d746 [RTL] Move exception handling code to except.c 2021-06-05 13:52:42 +02:00
Timo Kreuzer
65c3911ffc [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.
2021-06-05 13:52:42 +02:00
Timo Kreuzer
0520c75aaf [CRT] Implement __C_specific_handler 2021-06-05 13:52:42 +02:00
Katayama Hirofumi MZ
2106bc4a81
[CPL][APPWIZ] Make gecko download cancellable by keyboard (#3726)
We shouldn't disable nor hide the control with focus. CORE-17550, CORE-5737
2021-06-05 18:21:25 +09:00
Joachim Henze
ae574e16f8 [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 76cf09cfea

WHS 2k3sp2 Before the revert implies the tests were actually ok:
https://reactos.org/testman/compare.php?ids=77492

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.

VBox https://reactos.org/testman/compare.php?ids=77504,77506
KVM https://reactos.org/testman/compare.php?ids=77502,77505
2021-06-04 20:04:20 +02:00
Timo Kreuzer
7f2e0ece5a [NTOS:KE/x64] Handle shared interrupts 2021-06-04 09:19:13 +02:00
Timo Kreuzer
ce537f1ae9 [EXPLORER] Check m_Position for -1 before using it as an index
This fixes a crash on x64.
2021-06-04 09:15:55 +02:00
Timo Kreuzer
11ffa31155 [BROWSEUI] Fix broken code 2021-06-04 09:15:55 +02:00
Katayama Hirofumi MZ
55345930ad [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
2021-06-04 06:16:07 +09:00
Katayama Hirofumi MZ
f37b94ba39 [SHELL32_APITEST] ShellExecCmdLine: Close Notepad windows
By using newly added CloseNotepads function, close the Notepad window.
CORE-17351
2021-06-03 14:49:49 +09:00
Timo Kreuzer
e8496b4fbf [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.
2021-06-02 18:25:36 +02:00
Timo Kreuzer
f1ed97d6cc [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.
2021-06-02 18:25:36 +02:00
Timo Kreuzer
e801b7dda2 [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.
2021-06-02 18:25:36 +02:00
Serge Gautherie
80b54b8026 [BOOT] CMakeLists.txt: Compare ARCH to arm64, not aarch64
This aarch64 was introduced first,
but arm64 was preferred everywhere else since then.

CORE-17518
2021-06-02 13:26:08 +03:00
Serge Gautherie
7e43c2610d [CMAKE] CMakeLists.txt: Fix 'omap-zoom2' typo
Addendum to fae2044 (r51783).
CORE-17604
2021-06-02 13:24:39 +03:00