The Windows Bluetooth stack uses private IOCTLs in order to set the [discoverability](https://learn.microsoft.com/en-us/windows/win32/api/blueto… and [connectability](https://learn.microsoft.com/en-us/windows/win32/api/bluetoo… status of a local radio, and to start/stop the device inquiry procedure. This MR introduces 3 wine-specific IOCTL codes for the same purposes, as most applications seem to the Win32 API itself for these operations:
* IOCTL_WINBTH_RADIO_SET_FLAG
* IOCTL_WINEBTH_RADIO_START_DISCOVERY
* IOCTL_WINEBTH_RADIO_STOP_DISCOVERY
--
v5: winebth.sys: Call bluez_watcher_close as part of bluetooth_shutdown.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_STOP_DISCOVERY.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_START_DISCOVERY.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_SET_FLAG.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7216
@piotr The build-linux stage is still complaining about email, and I can't figure out why. I checked, and all my commits where done with the config set correctly.
I merged changes from wine/master, so, now, everything is up to date.
I'm wondering if I should close this MR and create a new one. Can you make an advice?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7109#note_93189
This MR intends to add the complex numbers related functions:
* cimag
* _FCbuild
* crealf
* cimagf
These functions are defined in dlls/msvcr120/math.c and mapped in dlls/msvcr120/msvcr120.spec and dlls/ucrbase/ucrbase.spec.
The related tests were added in dlls/mscr120/tests/msvcr120.c and result were checked.
--
v6: fixed msvcr120_app spec
Revert "fixed msvcr120_app spec" because of missing user info
winex11: Attach currently active Vulkan onscreen surface in vulkan_surface_update_offscreen().
win32u: Don't invalidate existing Vulkan surface when a new one is created for window.
win32u: Check for NULL hwnd before calling vulkan_surface_presented() driver callback.
win32u: Nullify surface hwnd when detaching Vulkan surface.
winex11: Allow Withdrawn requests to override Iconic <-> Normal transitions.
include: Add signbit declarations for c++.
dinput: Clamp FFB effect report value to the field range.
dinput/tests: Add more tests for force feedback.
win32u: Implement NtUserPostQuitMessage().
win32u: Implement NtUserMessageBeep().
win32u: Implement NtUserEnumClipboardFormats().
win32u: Implement NtUserCreateMenu() and NtUserCreatePopupMenu().
win32u: Implement NtUserGetThreadState().
win32u: Implement NtUserReleaseCapture().
win32u: Implement NtUserDestroyCaret().
hhctrl: Use wide character string literals.
cryptui: Use wide character string literals.
ntdll: Fix the return value of NtDelayExecution.
ntdll/tests: Add tests for NtDelayExecution and Sleep(Ex).
sapi: Remove some unnecessary traces.
sapi: Implement IStream methods for SpStream.
sapi: Implement ISpStream::GetFormat.
sapi: Implement ISpStream::Close.
sapi: Implement ISpStream::Set/GetBaseStream.
sapi: Adding missing interfaces for SpStream.
include: Use flexible array-member in some structure declarations.
include: Add a couple of definitions to mscvpdb.h.
include: Add some new definitions for dbghelp.h.
win32u: Use the first vertical alternates table regardless of script.
gdi32/tests: Add tests for script-independent vertical glyph lookup.
wineps: Use simple strings for glyph names.
wineps: Remove some unused AFM values.
wineps: Don't parse the glyph name or encoding when loading AFM files.
wineps: Don't store the glyph name or encoding for individual glyphs.
user32/tests: Add tests for WM_COPYDATA.
win32u: Allocate a separate user buffer when packing a large WM_COPYDATA message for user32.
wintypes: Stub of IRandomAccessStreamReferenceStatics interface.
wintypes: Stub of Windows.Storage.Streams.RandomAccessStreamReference runtimeclass.
wintypes: Return S_OK from data_writer_activation_factory_ActivateInstance().
wintypes: Stub of Windows.Storage.Streams.DataWriter runtimeclass.
wintypes: Reimplement Windows.Foundation.Metadata.{ApiInformation,PropertyValue} separately.
wintypes/tests: Add interface tests.
include: Don't import .idl when DO_NO_IMPORTS is defined.
shlwapi: Use wide character string literals.
winhlp32: Use wide character string literals.
tapi32: Use wide character string literals.
hhctrl: Fix spelling of "local" in OnTopicChange.
ntdll/tests: Add RtlRealSuccessor() tests.
ntdll: Implement RtlRealSuccessor().
ntdll/tests: Add RtlRealPredecessor() tests.
ntdll: Implement RtlRealPredecessor().
wine.inf: Pass command line arguments to msiexec.
wined3d: Add Nvidia RTX40xx series desktop models data.
wined3d: Add Nvidia RTX30xx series desktop models data.
prntvpt: Implement writing PageImageableSize capabilities.
prntvpt: Implement writing PageMediaSize capabilities.
wined3d/spirv: Implement alpha test.
wined3d: Feed alpha ref through a push constant buffer.
wined3d/glsl: Move legacy alpha test to shader_glsl_apply_draw_state().
wined3d/spirv: Implement flat shading.
wined3d: Use ps_compile_args in shader_spirv_compile_arguments.
wined3d: Bind the right push constant buffers when FFP is toggled.
ole32: Set property storage clsid on creation.
ole32: Fix IPropertyStorage::ReadMultiple return value when some properties are missing.
ole32: Add support for reading VT_R4 property.
secur32: Update max token size for Negotiate.
kerberos: Update sizes to match modern implementations.
propsys: Remove FIXME() from PropVariantChangeType().
kernel32/tests: Match the value in the debug message the test condition.
crypt32: Don't assert in Context_Release() on invalid refcount.
crypt32/tests: Add a test for deleting and adding certs during enumeration.
crypt32: Only remove cert from mem store list when deleting it.
crypt32: Release existing cert context in add_cert_to_store().
crypt32: Don't try to release zero-refcount context in MemStore_addContext().
crypt32: Factor out memstore_free_context() function.
crypt32: Release cert context in CertDeleteCertificateFromStore().
msvcp140: Fix field order in _Mtx_t.
msvcp140/tests: Add more tests for _Mtx_t.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7109
On Wed Jan 29 09:48:53 2025 +0000, Joe Souza wrote:
> After spending some time looking at the existing code, I find that it's
> not that far off from working properly. It correctly allows for
> multiple options to be specified on the command line, and correctly
> handles the exclusive options (i.e. of /N, /E, /S, /D, it correctly
> allows only one of these to take effect). What it gets wrong is that in
> Windows, the first of the exclusive options encountered takes
> precedence, where in current Wine code, it's the last exclusive option
> encountered that takes precedence. Current wine code also does not sort
> directory names for /G.
> All that in mind, the code does not need to be changed to allow multiple
> sort options to be passed to the qsort algorithm. We could clean up the
> use of global variables a bit, sort the directory names for /G, and fix
> the code such that /O by itself is implied /O:NE (which my prior
> proposed change did).
agreed
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7131#note_93185
Which is use after free since commit 278437b266ed97cebb8e1c14be6cfa2c4f440f07.
Thanks Bernhard Übelacker for spotting this (based on ASan validation).
For a general case I'd say we can have some tests intentionally doing use after free but it is not needed here.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7218