This MR adds a basic implementation for the BluetoothAdapter interface in Windows.Devices.Bluetooth, including winebth.sys support for getting properties associated with the radio's Low Energy capabilities.
--
v3: windows.devices.bluetooth/tests: Add tests for IBluetoothAdapter.
windows.devices.bluetooth: Implement BluetoothAdapter::IsAdvertisementOffloadSupported.
windows.devices.bluetooth: Implement BluetoothAdapter::IsCentralRoleSupported.
windows.devices.bluetooth: Implement BluetoothAdapter::IsPeripheralRoleSupported.
windows.devices.bluetooth: Implement BluetoothAdapter::IsLowEnergySupported.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_GET_LE_INFO.
winebth.sys: Fetch BLE-related properties for BlueZ adapter objects as well.
windows.devices.bluetooth: Implement IBluetoothAdapter::get_DeviceId().
windows.devices.bluetooth: Implement IBluetoothAdapterStatics::GetDefaultAsync().
https://gitlab.winehq.org/wine/wine/-/merge_requests/7659
This MR adds a basic implementation for the BluetoothAdapter interface in Windows.Devices.Bluetooth, including winebth.sys support for getting properties associated with the radio's Low Energy capabilities.
--
v2: windows.devices.bluetooth: Implement BluetoothAdapter::IsAdvertisementOffloadSupported.
windows.devices.bluetooth: Implement BluetoothAdapter::IsCentralRoleSupported.
windows.devices.bluetooth: Implement BluetoothAdapter::IsPeripheralRoleSupported.
windows.devices.bluetooth: Implement BluetoothAdapter::IsLowEnergySupported.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_GET_LE_INFO.
winebth.sys: Fetch BLE-related properties for BlueZ adapter objects as well.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7659
This MR adds a basic implementation for the BluetoothAdapter interface in Windows.Devices.Bluetooth, including winebth.sys support for getting properties associated with the radio's Low Energy capabilities.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7659
`WS_POPUP` for instance is `0x80000000`, which overflows a `LONG`. Coverity complained about this. The return type of `get_window_long()` already was `DWORD`.
--
v3: win32u: Store window styles in a UINT (Coverity).
https://gitlab.winehq.org/wine/wine/-/merge_requests/7657
`WS_POPUP` for instance is `0x80000000`, which overflows a `LONG`. Coverity complained about this. The return type of `get_window_long()` already was `DWORD`.
--
v2: win32u: Store window styles in a DWORD (Coverity).
https://gitlab.winehq.org/wine/wine/-/merge_requests/7657
This is the continuation of https://gitlab.winehq.org/wine/wine/-/merge_requests/7317.
There are a lot of smaller commits (some even no-op renames), because there are some inconsistencies in the codebase currently of what an NT thread priority vs a base thread priority should be (or even constant names being wrong), and I hope that this clears that up a bit.
I tried making the commits as atomic as possible. I hope this is fine... There are still a few tiny details missing, like boosting and `KeSetPriorityThread` and friends, which are either stubs or not correctly working as well and have been moved to the next part.
I wrote a pretty extensive test for all this too, since pretty much none of how this works is documented (or even misrepresented quite often). For testing, thread priority boosting has been disabled in order to make the behavior on Windows not flaky and dynamic. In fact, on Windows, there is some thread priority boost decay going on after the message has been processed and other mechanisms.
The `last` field of `get_thread_info` reply was moved to a flag in order to make space for the thread base priority, since it is already at the limit of 64 bytes.
--
v9: ntdll/tests: Add tests for process and thread priority.
server, ntdll: Fetch both process priority and base_priority.
server: Add process base priority helper.
kernelbase: Use ProcessPriorityClass info class in GetPriorityClass.
kernelbase: Use correct priority in GetThreadPriority.
server, ntdll: Fetch both thread priority and base_priority.
server, ntdll: Move last thread information to get_thread_info flags.
ntdll: Implement ThreadPriority class in NtSetInformationThread.
server: Implement setting thread priority directly.
server: Add set_thread_priority helper.
server: Rename thread priority to base_priority.
server: Rename base_priority to effective_priority in apply_thread_priority.
server: Infer process priority class in set_thread_priority.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7516