list() functions expects numerical indices for modification operations
and silently converts everything else to a number (old behaviour).
CMake 3.21 now checks this and throws a warning
Addendum to 608032bd and 835c3023.
The IRQL is actually raised by KeFreezeExecution() and lowered by
KeThawExecution(), always to HIGH_IRQL on MP systems, or if necessary
on UP. These functions are called respectively by KdEnterDebugger()
and KdExitDebugger().
GCC8.4.0 dbg warned about:
[675/1849] Building RC object base/shell/cmd/CMakeFiles/cmd.dir/cmd.rc.obj
In file included from C:/ros/reactos/base/shell/cmd/cmd.rc:87:
C:/ros/reactos/base/shell/cmd/lang/tr-TR.rc:349:61: warning: backslash and newline separated by space
I guess somebody made the checks more strict recently,
because that bug was existing for longer already without
generating any warning for me.
When performing access security check, use the security descriptor that we've captured it to determine based on that descriptor if the client can be granted access or not.
Since VS 16.11 the compiler sometimes emits calls to _RTC_UninitUse, when parts of a bitfield are initialized (See https://developercommunity.visualstudio.com/t/Broken-runtime-checks-with-CL-19293013/1503629). Fix this by using an ULONG instead of a bitfield.
Note: The structure uses a 24 bit bitfield plus an UCHAR, which is supposed to form a 32 bit field, but that doesn't work anyway.
Don't force HRESULT status to DSERR_BUFFERLOST by default in primarybuffer_SetFormat function.
Assign to it S_OK instead, as done in current Wine:
a8583acae9:/dlls/dsound/primary.c#l440
That variable is already set to failure in other appropriate place, when this is indeed needed:
https://git.reactos.org/?p=reactos.git;a=blob;h=b04a526929e4e817ff63aa652530e5901a3253a6;f=dll/directx/wine/dsound/primary.c#l511
The assigned failure status caused executing failure handling code even when the fail actually didn't happen.
In particular, DSOUND_ReopenDevice failed on waveOutOpen call when calling this was not needed.
After my changes, it's called only when needed, i. e., only when the actual failure happens
Otherwise, if all goes good, that code is not called, so the data is transfered successfully and the function is working correctly.
It fixes non-working playback in QMMP 0.11.1 (via DirectSound ouput plugin) and AIMP 3.10 and newer versions.
Also it improves the DirectSound test results from MS DxDiag: now all 4 available tests are passing successfully, instead of only 2.
Other dsound issues also might be fixed as well.
CORE-10907 CORE-14783
The British language wasn't included here, so I have corrected some texts that were in American English.
Also fixed one string that uses British English language.
As we now have the SEF_* flags declared within the SDK we can simply check for such flags directly wihout having to check for the hard-coded flag values.
CORE-17741
This function (which should belong to the user32 helpers) depends on the
internal format of the USER handles table, that is ReactOS-specific. Its
pointer value is stored in the win32k/user32 shared info section, and
thus cannot be converted to user-space and stored back into that section.
Therefore it needs to be retrieved and manually converted when the function
is called.
- Do the kernel/server --> user/client-space pointers conversion within
NtUserProcessConnect(), instead of having the callers of this function
doing this job.
This makes the behaviour Windows-compatible.
NOTE: the gHandleEntries pointer is ReactOS-specific!
- Drop the g_ulSharedDelta global, just use instead gSharedInfo.ulSharedDelta.
- Add extra documentation aspects for NtUserProcessConnect() that are
not yet implemented in ReactOS.