Commit graph

269 commits

Author SHA1 Message Date
Joachim Henze
e7cfa907e9 [0.4.14][KERNEL32][TCPIP] A big squashed fix for CORE-16757 CORE-17596 CORE-17647 CORE-6473 (#3170)
The interesting kernel32 part is a port of
0.4.15-dev-2069-g fd8080b094
CORE-16757 'Task Manager failed to show process's priority'
which I actually wanted to improve for 0.4.14.

But if we took that on its own, then it would unhide
CORE-17596 'Google Earth 7.1.8 regressed AGAIN by the same work'
That's why we take with us:
0.4.15-dev-2766-g 27fcfe66a2 (is also part of CORE-6473, I left the 2nd commit out that added an assert in NTOSKRNL)

Small hack: this backport required me to define _Unreferenced_parameter_ myself in tcp.c
stolen from newer sdk/include/psdk/specstrings.h. I didn't want to port back that entire file as well.

In combination those two fixes allow both 'Google Earth and to change process priority' to be fixed within the same build.

But I felt a bit more safe then by taking
0.4.15-dev-2793-g 979b7d4d8e
with me as well, because I was too afraid, that I might otherwise introduce
CORE-17647 'BSOD 0xc2 BAD_POOL_CALLER induced by networking, triggered by using KeePass 2.23'
although I could not trigger that in practice when leaving that third commit out as an experiment.

And since it was a safe no-brainer-fix, I couldn't resist to also pick
0.4.15-dev-764-g 4aeb45ce0c (#3170)
2021-11-20 05:09:54 +01:00
Joachim Henze
fef1907bb3 [0.4.14][CRT] Do Not lock ioinfo when spawning functions (#4099) CORE-15176
This fixes CORE-15176 'Gimp 2.6.11 hangs when opening a file'.
It regressed by 0.4.9-dev-446-g bffd8201d0

Fix picked from 0.4.15-dev-3363-g 252a7530d0
2021-11-11 18:35:14 +01:00
Joachim Henze
6ef3e43fc0 [0.4.14][SDK][FREETYPE] Fix GCC8.4 -O2 build CORE-17820
RosBE2.2.1 Win GCC8.4.0 RELEASE bootcd build was failing.
This was the last build error for the configuration:
-DENABLE_ROSTESTS=1 -DCMAKE_BUILD_TYPE=Release

fix picked from 0.4.15-dev-285-g 5349f49cfe

Sidenote of current compiler support on releases/0.4.14 (tested on 0.4.14-RC-110-g8600a00):
RosBE2.1.2 Lin GCC4.7.2      Debug build worked before and after this commit (bootcd+livecd) <- primary toolchain for releases/0.4.14
RosBE2.1.6 Win GCC4.7.2      Debug build worked before and after this commit (bootcd+livecd)
RosBE2.1.6 Win GCC4.7.2    Release build worked before and after this commit (bootcd+livecd)
RosBE2.2.1 Win GCC8.4.0      Debug build worked before and after this commit (bootcd+livecd)
RosBE2.1.6 Win MSVC2010SP1   Debug build worked before and after this commit (bootcd+livecd)
RosBE2.1.6 Win MSVC2010SP1 Release build worked before and after this commit (bootcd+livecd)
VSSolution msbuild 2010SP1   Debug build should also work, last time tested 0.4.14-RC-68-g366c46b
Newer MSVC (<= MSVC19.28.29115) might/should work as well, but I did not explicitly test those myself.
2021-10-18 01:50:17 +02:00
Joachim Henze
2b9e32878c [0.4.14][CRT] Fix 2 MSVC compiler warnings CORE-17812
observed with MSVC2010SP1 16.0.40219.1 in rls-config several times:
sdk\lib\crt\string\wtoi64.c(28) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
sdk\lib\crt\string\wtoi64.c(194) : warning C4146: unary minus operator applied to unsigned type, result still unsigned

the fix is a PARTIAL port of 0.4.15-dev-2951-g 5d8e834897

and while touching the file
fix another white-space-glitch.
in sum that brings us 100% in sync in this file to
current master head 0.4.15-dev-3264-g570cedf.
2021-10-11 21:59:46 +02:00
Joachim Henze
c437ff6128 [0.4.14][WDMAUD.DRV][MMIXER] Improve AC97 driver from rapps by defining USE_MMIXER_LIB
By taking alternative code-paths in WdmAud and bypassing Sysaudio.
This is my 2nd attempt to commit that.

This is a squashed backport of:
0.4.15-dev-791-g 6d7ebc2048 the USE_MMIXER_LIB which gives the best results when paired with those 2 previous patches:
0.4.15-dev-765-g b8e936a57b CORE-17214 (#3148) wdmaud-racecondition-fix and
0.4.15-dev-796-g a27f0debca CORE-17276 winmm:mixer-testbot-crash-fix

Defining USE_MMIXER_LIB will fix/improve:
- the test execution times of "GCCLin_x86 on Test VBox" will be dramatically improve (iirc by ~10-15min)
- CORE-8726/CORE-9986/CORE-16564 AC97 driver from rapps will work in the same session that the driver is installed, not a single reboot is needed anymore
- CORE-13202 Unhandled exception from wdmaud.drv when recording sound in Scratch 1.4 leads to app-crash (gets fixed even for older builds that did not receive 0.4.15-dev-2794-g 81f8bce yet)
- CORE-13488 A deadlock in "DiabloII" character selection screen and "The Lion King II"
- CORE-9981 "DosBox + Commander Keen6" almost 100% fixed, DosBox + Commander Keen6 properly plays music instead of garbled output,
            same improvement for "ScummVM 2.0 with Monkey Island 2"

The playback is not yet *entirely* perfect, still a few hiccups now and then, but by orders of magnitude better than before.

Defining USE_MMIXER_LIB will also have some negative aspects:
- CORE-17277 crash of dsound:duplex on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- CORE-17278 crash of dsound:capture on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- It may also have a negative impact for CORE-17285 "Realtek HD Audio" but Oleg Dubinsky accepted to tolerate that and aims to approach it differently. I will resolve that as WontFix now.
2021-08-30 17:46:11 +02:00
Joachim Henze
33f4311f6c [0.4.14][PROGMAN][CRT][USER32] Do not use LoadLibraryEx() NT6+ flags (#3152) CORE-12004
This fixes some blurry icons in systray when 2k3sp2 kernel32.dll is used in ros CORE-12004
That part in user32 was a regression of SVN r71609 == git a44dfe6c76
While we are at it we do fix some other modules as well, that used those NT6+flags.

The fix was picked from 0.4.15-dev-788-g a04831677e
2021-07-02 19:15:10 +02:00
Joachim Henze
d28122e154 [0.4.14][DSOUND][WAVE] Workaround crash when recording sound in Scratch 1.4 CORE-13202
It regressed by SVN r44721 == git 356d4bab16092de335705e02b0e87698ec35c393
when #define USE_MMIXER_LIB was removed.

Thanks to the patches author Doug Lyons.

VBox https://reactos.org/testman/compare.php?ids=77914,77919 LGTM
 KVM https://reactos.org/testman/compare.php?ids=77913,77918 LGTM

fix picked from 0.4.15-dev-2794-g 81f8bcea8c
2021-06-27 23:07:07 +02:00
Joachim Henze
6a6672d029 [0.4.14][APISETS][RDBSSLIB][RTL][DISK_NEW] Fix all build issues for MSVC Rls-config CORE-17402
Allows to complete the whole 'ninja bootcd' after 'configure -DCMAKE_BUILD_TYPE=Release'
for compiler MSVC 2010SP1 16.0.40219.1 with RosBE 2.1.6

Similar to the fix committed in 0.4.15-dev-1453-g 4ad7b6d
2020-12-17 13:36:20 +01:00
Thomas Faber
4111dfa8bf [0.4.14][RTL] Optimize RtlpFindAndCommitPages CORE-14588
A squashed backmerge of 3 commits authored by Thomas Faber.
They do help to speed up RosBE2.1.6 within ReactOS.
'configure' runs faster by ~ factor 5.
'ninja bootcd -j1' runs faster by ~ factor 2.
I considered back-porting that a necessity because we
considerably lost speed over the last years in those scenarios.
I tested, and it works well also in the 0.4.14RC.

0.4.15-dev-309-g
10d23614d3
Use LastEntryInSegment to speed up RtlpFindAndCommitPages. CORE-14588
--------------------------
0.4.15-dev-307-g
1b7a4b3ebf
Add and populate LastEntryInSegment. CORE-14588
--------------------------
0.4.15-dev-306-g
78dddd125c
Create a define for the common members of HEAP and HEAP_SEGMENT. CORE-14588

The code relies on these members matching up, so it's confusing for them
to be duplicated.
2020-09-25 22:04:30 +02:00
Thomas Faber
eac5f78b44 [0.4.14][CPPRT][CRT] Avoid extern assembly declarations with no type. CORE-17088
Fixes build with ML 14.26.
Backport was recommended by Thomas Faber. I can not retest that compilation myself.

cherry picked from commit 0.4.15-dev-319-g
e4066536c2
2020-06-07 22:32:04 +02:00
Thomas Faber
f22fa382fe
[LIBXML2] Update to version 2.9.10. CORE-16952 2020-04-24 14:44:52 +02:00
Katayama Hirofumi MZ
774ef4e80e
[SDK][RTL][NTDLL_APITEST] Add RtlMultipleAllocateHeap and RtlMultipleFreeHeap (#2641)
- Add RtlMultipleAllocateHeap and RtlMultipleFreeHeap functions (2k3+).
- Add a testcase for two functions.
CORE-12026
2020-04-24 17:45:43 +09:00
Victor Perevertkin
194ea909fd
[BTRFS][UBTRFS][SHELLBTRFS] Upgrade to 1.7.2
CORE-16679
2020-04-23 07:07:36 +03:00
Hermès Bélusca-Maïto
bbdb0ab6a8
[TZLIB] QueryTimeZoneData(): Don't fail if the optional values "Display", "Std", "Dlt" are missing (or too long to be captured). However fail if the timezone information is missing. 2020-04-22 00:58:32 +02:00
Hermès Bélusca-Maïto
7c3e96a26a
[TIMEDATE.CPL][SYSSETUP][TZLIB] Introduce a small static library "tzlib": "TimeZone Utilities Library", and use it in timedate.cpl and syssetup.dll.
This small win32 library provides time-zone utility wrappers around
Win32 functions, that are used by different ReactOS modules such as
timedate.cpl, syssetup.dll, and a possible future 'tzutil' tool.

The code has been extracted from the common code found in both
timedate.cpl and syssetup.dll.
2020-04-22 00:58:32 +02:00
Victor Perevertkin
7e069ccdb2
[CMAKE] Replace custom functions to built-in ones
add_target_compile_definitions -> target_compile_definitions
add_target_compile_flags -> target_compile_options
add_target_include_directories -> target_include_directories
2020-04-16 15:59:38 +03:00
Hervé Poussineau
033102fdb1 [NTOS] Add a #define __ROS_ROSSYM__ when using rossym
Use it where needed.
2020-04-09 23:00:57 +02:00
Hermès Bélusca-Maïto
6f67132686
[LIB:ARBITER] Addendum to 374f2b4d: Fix build.
- No need to use a PCH when compiling a 1-file library.
- Add the _NTSYSTEM_ definition.

- Since the arbiter.h file is to be included by the users of this
  library, namely only kernel-mode NT components (incl. NTOS), there
  is no need to include the standard kernel-mode headers in it.
  Include these headers instead in the private implementation of the
  library, arbiter.c.
2020-04-09 20:41:17 +02:00
Vadim Galyant
374f2b4d98
[NTOS][SDK:LIB] Add a Resources Arbiter library, to be used by bus drivers (acpi, pci), kernel and legacy hal (PIC HAL). (#2471) 2020-04-09 19:41:11 +02:00
Victor Perevertkin
167fa2c26a [TCPIP] Remove duplicate declarations from ticonsts.h 2020-04-07 05:32:40 +03:00
Victor Perevertkin
d5ad2057d7 [SDK][IP] Pass IP options to ReceiveDatagramHandler 2020-04-07 05:32:40 +03:00
Victor Perevertkin
740a859e92 [TCPIP] Implement IOCTL_ICMP_ECHO_REQUEST in tcpip.sys
Also clean up ICMP handling code in sdk/lib/drivers/ip
CORE-10760
2020-04-07 05:32:40 +03:00
Victor Perevertkin
cf3ab9d15a [SDK][IP] Fix formatting 2020-04-07 05:32:40 +03:00
Mark Jansen
1437433039
[ATL] Add some hacks for gcc,
since parsing templates is not something it can do
2020-04-04 19:55:31 +02:00
Mark Jansen
a37b5b2f39
[ATL] Fix an ATLASSERT expression 2020-04-04 19:55:31 +02:00
Mark Jansen
62c1bb6448
[CRT] Implement _CrtDbgReport and _CrtDbgReportW
Most functionality is working, except output to file
CORE-11835
2020-04-04 19:55:24 +02:00
Joachim Henze
45b5ec8e7b [RDBSS] Avoid CORE-13938
Pierre recommended this workaround for 0.4.8rls before.
Avoids "GetVolumeInformation now fails on NFS volume"

This workaround was recurrently applied for all releases
0.4.8, 0.4.9, 0.4.10, 0.4.11, 0.4.12, 0.4.13.

I never got any reply in the regression-ticket and recurrently
applying this over and over again is a waste of time.
So I decided to commit to master today, but will leave
the ticket unresolved, so when a proper fix will arrive in the future,
the existing ticket will remind us to undo this workaround.

Please note that I replaced #if 0 with #if 1
as discussed with Pierre. That's different to the patch in ticket.
2020-04-02 15:09:46 +02:00
Mark Jansen
177ae91bf6
[RTL] Introduce RtlpImageNtHeader,
which implements the required functionality.
ntdll and ntoskrnl now have a wrapper for this, with SEH.
This protects the function against malformed / bad images,
whilst still being able to use the code in freeldr et al.
Idea from Thomas.
CORE-14857
2020-03-29 21:27:38 +02:00
Hervé Poussineau
796c1ac993 [TCPIP] Add some static specifiers, to prevent exporting FORCEINLINE function outside compilation unit 2020-03-26 16:39:16 +01:00
Mark Jansen
315765ed8b
[MSVCRT] Add _snwscanf 2020-03-15 13:12:20 +01:00
Dmitry Borisov
222e79232c
[CPORTLIB][NTOS:INBV][KDCOM][FREELDR] Add ComPort library for NEC PC-98 series (#2407)
There are 2 known serial ports:
    COM1 - based on Intel 8251A
    COM2 - National Semiconductor 16550
2020-03-06 19:50:31 +01:00
Thomas Faber
80296be1eb
[CMAKE] When disabling C4101, explicitly remove the error flag.
Fixes VC2010 build.
Addendum to 11ecf5c969.
2020-02-24 22:29:33 +01:00
Timo Kreuzer
9efafd640f [CRT] Import wine exception handling code
The code is mostly unchanged. This includes the following changes:
* Move all wine code to crt/wine to keep it separated from our own code
* Add a minimal winternl.h
* Remove the asm macros from wine/config.h
* Include wine/asm.h where required
* Fix the names of the exported functions (GCC uses thiscall now and no wrappers are used anymore)
2020-02-09 15:56:30 +01:00
Thomas Faber
d528e63477
[CRT] Only write to the output buffer when necessary in _strlwr. CORE-16667
Like e884290d29, this is also a hack and is missing locale awareness.
2020-02-09 10:23:01 +01:00
Oleg Dubinskiy
6f232770d3
[NDK][RTL] Implement RtlGetUnloadEventTrace. CORE-16671 2020-02-09 08:37:58 +01:00
Mark Jansen
008745d951
[ATL][ATL_APITEST] Test + implement CHeapPtrList 2020-02-08 22:09:14 +01:00
Mark Jansen
45d33582e7
[ATL] Rename CHeapPtr data member, since it is public 2020-02-08 22:09:14 +01:00
Thomas Faber
2bbc94c6ac
[MMIXER] Fix overzealous asserts. CORE-16611
MAXPNAMELEN is the size of the array, so if wcslen returns MAXPNAMELEN-1,
the null terminator fits and everything is okay.
2020-02-08 13:08:27 +01:00
Thomas Faber
355700f45a
[MMIXER] Safely handle MMixerGetDeviceNameWithComponentId failure in MMixerInitializeFilter. CORE-16611 2020-02-08 13:08:27 +01:00
Thomas Faber
756aa270b1
[MMIXER] Fix memory leak in MMixerGetDeviceNameWithComponentId. CORE-16611 2020-02-08 13:08:27 +01:00
Thomas Faber
e884290d29
[CRT] Only write to the output buffer when necessary in _strupr. CORE-16667
Fixes crash in msvcrt_winetest:string.

This is a hack and is supposed to be specific to the C locale.
2020-02-08 13:04:12 +01:00
Mark Jansen
db55933b0c
[CMLIB] Use UNIMPLEMENTED_ONCE in HvHiveWillShrink 2020-01-29 22:58:43 +01:00
Katayama Hirofumi MZ
4c0426ec44 [SDK][ATL] Make ThrowMemoryException protected 2020-01-29 22:29:11 +09:00
Katayama Hirofumi MZ
eaa3692f7d
[SDK][ATL] Implement CStringT::FormatMessage (#2286)
CStringT::FormatMessage in ATL is a method to build a formatted string.
CORE-16666
2020-01-29 22:16:58 +09:00
Timo Kreuzer
42d2d5ec9c [ROSTESTS] fix x64 build and fix/disable warnings 2020-01-26 11:50:37 +01:00
Hervé Poussineau
698e1a3782 [SDK] Use HEX macro, like elsewhere in the file 2020-01-22 20:57:04 +01:00
Hermès Bélusca-Maïto
1a231e1e70
[SDK:ATL] Fix the size of the ATL_WNDCLASSINFOW::m_szAutoName member according to the actual MS-compatible auto-generated window class name.
The autogenerated name has the format:
    "ATL:<hexadecimal_digits_of_pointer><NULL-terminator>"

and the number of hex digits in 0xABCD1234 (for 32-bit == 4-byte)
pointers (without the '0x') is 8 == 4*2, and for 64-bit == 8-byte
pointers (e.g. 0xABCDEF0123456789) is 16 == 8*2.
2020-01-15 01:14:03 +01:00
Oleg Dubinskiy
83c07f4e4c [SDK][USB] Delete old USB drivers and libusb 2020-01-06 21:16:08 +02:00
Timo Kreuzer
5fa4fd7bef [RTL][NTDLL] Add some function stubs
- LdrSetAppCompatDllRedirectionCallback
- RtlCancelTimer
- RtlCreateServiceSid
- RtlQueryProcessHeapInformation
- RtlQueueApcWow64Thread
- RtlSetTimer
- RtlUnhandledExceptionFilter2
- RtlpNotOwnerCriticalSection
2020-01-03 13:00:45 +01:00
Timo Kreuzer
fb0ebac349 [NDK][XDK][RTL] Fix definition of RtlFillMemoryUlong on x64 2020-01-03 13:00:45 +01:00