Alexandre Julliard has announced the release of Wine development version 9.1, which includes a number of enhancements to the input method, enhanced support for the Diffie-Hellman key, enhanced Dvorak keyboard detection, and a variety of bug fixes.
Wine release 9.1
The Wine development release 9.1 is now available.
What's new in this release:
- A number of Input Method improvements.
- Improved Diffie-Hellman key support.
- Better Dvorak keyboard detection.
- Various bug fixes.
The source is available at https://dl.winehq.org/wine/source/9.x/wine-9.1.tar.xz
Binary packages for various distributions will be available from https://www.winehq.org/download
You will find documentation on https://www.winehq.org/documentation
Wine is available thanks to the work of many people. See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.1/AUTHORS
### Bugs fixed in 9.1 (total 42):
- #17414 user32/dde test crashes if +heap enabled
- #25759 Polda 1: after intro picture and animation it shows black window
- #35300 Lego Racers crashes when click on configuration commands for Player 1
- #36007 oleaut32/vartype tests crash with WINEDEBUG=warn+heap
- #42784 Lost Planet dx10 demo black screen after starting new game
- #46074 Visio 2013 crashes with unimplemented function msvcr100.dll.??0_ReaderWriterLock@details@Concurrency@@QAE@XZ
- #46904 SIMATIC WinCC V15.1 Runtime: Automation License Manager 'almapp64x.exe' crashes on unimplemented function msvcp140.dll.?_XGetLastError@std@@YAXXZ
- #50297 Blindwrite 7 crashes with a stack overflow
- #50475 ENM (Externes Notenmodul / external mark module) crashes on opening
- #50893 Wine cannot see home directory (32-bit time_t overflow)
- #51285 The bmpcoreimage test in user32:cursoricon fails on most Windows versions
- #51471 user32:input receives unexpected WM_SYSTIMER messages in test_SendInput()
- #51473 user32:input Some SendInput() set LastError to ERROR_ACCESS_DENIED on cw-rx460 19.11.3
- #51474 user32:input SendInput() triggers an unexpected message 0x60 on Windows 10 1709
- #51477 user32:input test_Input_blackbox() gets unexpected 00&41(A) keystate changes
- #51931 Dead Rising encounters infinite loading when starting a new game (needs WMAudio Decoder DMO)
- #52399 SIMATIC WinCC V15.1 Runtime installer: SeCon tool fails with error 5 while trying to create 'C:\\windows\Security\\SecurityController' (needs '%windir%\\security')
- #52595 GUIDE 7.0 shows black screen on start
- #53516 user32:input failed due to unexpected WM_TIMECHANGE message
- #54089 user32:input - test_SendInput() sometimes gets an unexpected 0x738 message on w1064v1709
- #54223 Unigine Heaven Benchmark 4.0 Severely Low FPS
- #54323 user32:input - test_SendInput() sometimes gets an unexpected 0xc042 message on Windows 7
- #54362 BurnInTest calls unimplemented function ntoskrnl.exe.ExAllocatePool2
- #55000 wineserver crashes below save_all_subkeys after RegUnLoadKey
- #55268 user32:cursoricon - LoadImageA() fails in test_monochrome_icon() on Windows 8+
- #55467 MAME 0.257: mame.exe -listxml crashes
- #55835 putenv clobbers previous getenv
- #55883 SpeedWave can't draw Window, needs oleaut32.OleLoadPictureFile().
- #55945 KakaoTalk crashes when opening certain profiles after calling GdipDrawImageFX stub
- #56054 Microsoft Safety Scanner crashes on exit on unimplemented function tbs.dll.GetDeviceIDString
- #56055 AVG Antivirus setup crashes on unimplemented function ADVAPI32.dll.TreeSetNamedSecurityInfoW
- #56062 unimplemented function mgmtapi.dll.SnmpMgrOpen
- #56078 LibreOffice 7.6.4 crashes on unimplemented function msvcp140_2.dll.__std_smf_hypot3
- #56093 msys/pacman: fails with "fixup_mmaps_after_fork: VirtualQueryEx failed"
- #56119 Emperor - Rise of the Middle Kingdom: invisible menu buttons
- #56135 Dictionnaire Hachette Multim?dia Encyclop?dique 98 crashes on start
- #56168 dbghelp hits assertion in stabs_pts_read_type_def
- #56174 Forza Horizon 4 crashes with concrt140.dll.?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QEAA_NXZ
- #56195 Device name inconsistent casing between GetRawInputDeviceInfo and PnP
- #56223 winedbg: crashes after loading gecko debug information
- #56235 Windows Sysinternals Process Explorer 17.05 crashes showing Threads property page.
- #56236 notepad freezes when displaying child dialog
### Changes since 9.0:
```
Aida Jonikien? (2):
opengl32: Add a FIXME when doing a mapped buffer copy.
localspl: Fix a maybe-uninitialized warning in fill_builtin_form_info().
Alex Henrie (8):
uiautomationcore/tests: Use CRT allocation functions.
tbs: Add GetDeviceIDString stub.
advapi32: Add TreeSetNamedSecurityInfoW stub.
include: Add mgmtapi.h and LPSNMP_MGR_SESSION.
mgmtapi: AddSnmpMgrOpen stub.
msvcp140_2: Implement __std_smf_hypot3.
include: Add POOL_FLAGS and POOL_FLAG_*.
ntoskrnl: Reimplement ExAllocatePool* on top of ExAllocatePool2.
Alexandre Julliard (33):
ntdll/tests: Add exception test for int 2d on x86-64.
user32: Return result through NtCallbackReturn for the DDE message callback.
user32: Return result through NtCallbackReturn for the thunk lock callback.
user32: Return result through NtCallbackReturn for the copy image callback.
user32: Return result through NtCallbackReturn for the load image callback.
user32: Return result through NtCallbackReturn for the load sys menu callback.
user32: Return result through NtCallbackReturn for the draw text callback.
user32: Return result through NtCallbackReturn for the enum monitors callback.
user32: Return result through NtCallbackReturn for the window hook callback.
winevulkan: Return result through NtCallbackReturn for the debug callbacks.
wineandroid.drv: Return result through NtCallbackReturn for the start device callback.
winex11.drv: Return result through NtCallbackReturn for the drag and drop callbacks.
winemac.drv: Return result through NtCallbackReturn for the drag and drop callbacks.
user32: Return a proper NTSTATUS in the load driver callback.
user32: Return a proper NTSTATUS in the post DDE message callback.
user32: Return a proper NTSTATUS in all user callbacks.
opengl32: Return a proper NTSTATUS in the debug callback.
ntdll: Add NtCompareTokens syscall for ARM64EC.
msvcp: Consistently use __int64 types in number conversion functions.
include: Add a typedef for user callback function pointers.
ntdll: Share KiUserCallbackDispatcher implementation across platforms.
ntdll: Report failure in KiUserCallbackDispatcher when catching an exception.
ntdll: Export KiUserCallbackDispatcherReturn.
ntdll: Use a .seh handler for KiUserCallbackDispatcher exceptions.
ntdll: Move the process breakpoint to the CPU backends.
ntdll: Use a .seh handler for the process breakpoint.
ntdll/tests: Update todos in context tests for new wow64 mode.
configure: Only check for libunwind on x86-64.
ntdll: Share the nested exception handler across platforms.
ntdll: Use a .seh handler for nested exceptions.
ntdll: Clear CONTEXT_UNWOUND_TO_CALL in signal frames.
ntdll/tests: Port the exception unwinding tests to ARM64.
ntdll/tests: Port the exception unwinding tests to ARM.
Alistair Leslie-Hughes (2):
include: Add more D3D_FEATURE_LEVEL_ defines.
include: Correct KMTQAITYPE values.
Aurimas Fi?eras (1):
po: Update Lithuanian translation.
Bartosz Kosiorek (2):
gdiplus/tests: Add GdipDrawImageFX tests except effects or attributes.
gdiplus: Partially implement GdipDrawImageFX.
Bernhard ?belacker (6):
wing32: Add tests.
wing32: Avoid crash in WinGGetDIBPointer when called with NULL bitmap info.
server: Allow VirtualQueryEx on "limited" handle.
dbghelp: Return early if HeapAlloc failed.
ntdll: Fix structure layout in RtlQueryProcessDebugInformation for 64-bit.
server: Avoid unloading of HKU .Default registry branch.
Biswapriyo Nath (5):
include: Add D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS in d3d12video.idl.
include: Add D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS in d3d12video.idl.
include: Add D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS in d3d12video.idl.
include: Add D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT in d3d12video.idl.
include: Add missing macros in devenum.idl.
Brendan McGrath (3):
gdi32: Ignore Datatype when StartDoc is called.
d2d1: Use 24-bit FP precision for triangulate.
d2d1: Fix double free bug when d2d_geometry_sink_Close fails.
Brendan Shanks (5):
opengl32: Make wglSwapLayerBuffers hookable.
combase: Make RoGetActivationFactory hookable.
wined3d: Update reported AMD driver version.
ntdll: Remove unnecessary NtQueryVirtualMemory call.
ntdll: Only build the main module and ntdll once on Wow64.
Daniel Hill (3):
winex11.drv: Dvorak should use QWERTY scancodes.
winex11.drv: Improve DetectLayout heuristics.
winex11.drv: Add Dvorak with phantom keys layout.
Daniel Lehman (2):
msvcp120/tests: Add some tests for _Mtx_t fields.
msvcp140: Pad _Mtx_t struct to match Windows.
David Kahurani (1):
gdiplus: Avoid use of temporary variable.
Dmitry Timoshkov (4):
ntdll: Add NtCompareTokens() stub.
oleaut32: Do not reimplement OleLoadPicture in OleLoadPicturePath.
oleaut32: Factor out stream creation from OleLoadPicturePath.
oleaut32: Implement OleLoadPictureFile.
D?vis Mos?ns (1):
ntdll/tests: Test NtContinue on x86-64.
Eric Pouech (7):
dbghelp: Support redefinition of a range statement.
winedbg: Make some internal data 'static const'.
winedbg: Print all pid and tid with 4 hex characters.
appwiz.cpl: Load dynamically wine_get_version().
user32: Load dynamically wine_get_version().
include: Avoid defining intrinsic functions as inline.
include: Avoid redefining _InterlockedCompareExchange128 as inline.
Etaash Mathamsetty (2):
xinput: Implement XInputGetCapabilitiesEx.
xinput: Reimplement XInputGetCapabilities.
Fabian Maurer (8):
dmsynth: Leave critical section when out of memory (Coverity).
localspl: In fpScheduleJob leave critical section in error case (Coverity).
wmiutils: Always zero path->namespaces in parse_text (Coverity).
winedbg: Add missing break inside fetch_value (Coverity).
wow64win: Add missing break inside packed_result_32to64 (Coverity).
winegstreamer: Don't check event for NULL, gstreamer already does that.
include: Add Windows.UI.ViewManagement.InputPane definitions.
windows.ui: Add stubs for InputPane class.
Fan WenJie (1):
wined3d: Compile sm1 bytecode to spirv.
Gabriel Brand (3):
ws2_32/tests: Test binding UDP socket to invalid address.
server: Return failure in bind if the address is not found.
kernel32: Add string for WSAEADDRNOTAVAIL error.
Gabriel Iv?ncescu (6):
msvcirt: Use proper operator_new and operator_delete types.
jscript: Move thread_id from JScript struct to TLS data.
jscript: Don't use atomic compare exchange when setting the script ctx.
jscript: Make the garbage collector thread-wide rather than per-ctx.
jscript: Allow garbage collection between different jscript contexts.
mshtml: Implement document.lastModified.
Giovanni Mascellani (2):
wined3d: Expose the image view usage for null views.
wined3d: Expose the image view usage for non-default views.
Haidong Yu (1):
loader: Associate folder with explorer.
Hans Leidekker (19):
bcrypt: Add support for setting DH parameters.
bcrypt: Add support for retrieving DH parameters.
bcrypt: Allow or disallow some operations based on whether keys are finalized.
bcrypt: Add helpers to create a public/private key pair.
bcrypt: Make DH blob size validation more strict in key_import_pair().
bcrypt: Reject DH keys smaller than 512 bits.
bcrypt: Add support for generating DH keys from known parameters.
bcrypt: Make sure key_asymmetric_derive_key() returns correct size.
bcrypt: Assume we have a public key in key_export_dh_public().
bcrypt: Set dh_params in key_import_dh/_public().
bcrypt/tests: Add DH tests.
crypt32: Pad R/S values with zeroes if smaller than their counterpart.
sxs: Use wide character string literals.
sxs/tests: Use wide character string literals.
sxs/tests: Get rid of workarounds for old Windows versions.
sxs/tests: Update QueryAssemblyInfo() test for Windows 10.
sxs: Skip file copy when assembly is already installed.
bcrypt: Fix private data size in wow64 thunks.
dssenh: Finalize the hash if necessary in CPVerifySignature().
Jacek Caban (4):
winevdm: Use char type for max length assignment.
kernelbase: Silence -Wsometimes-uninitialized clang warning.
kernelbase: Silence -Warray-bounds clang warning.
devenum: Use switch statements for moniker type handling.
Jinoh Kang (2):
ntdll/tests: Avoid misaligned load in exception handler code in run_exception_test_flags().
ntdll/tests: Restore x86-64 #AC exception test in test_exceptions().
Martin Storsj? (6):
ntdll: Fix KiUserCallbackDispatcher on arm.
ntdll: Reduce fixme logging for large numbers of cores.
ntdll: Remove libunwind support for aarch64.
ntdll: Remove libunwind support for ARM.
ntdll: Remove dwarf unwinding support for aarch64.
wineps.drv: Avoid invalid unaligned accesses.
Nicholas Tay (1):
win32u: Preserve rawinput device instance ID case in add_device().
Nikolay Sivov (13):
mf/tests: Skip tests if video renderer can't be created.
ntdll: Update RTL_HEAP_PARAMETERS definition.
ntdll/tests: Add some tests for creating custom heaps.
scrrun/dictionary: Add support for hashing VT_EMPTY keys.
scrrun/dictionary: Add support for hashing VT_NULL keys.
scrrun/dictionary: Handle VT_EMPTY/VT_NULL keys.
evr/dshow: Handle YUY2 sample copy.
mf/tests: Fully cleanup when skipping tests.
d2d1/tests: Add some tests for minimum/maximum input count in effect description.
d2d1/effect: Handle variable input count attributes in the description.
d2d1/effect: Use XML description for builtin effects.
d2d1/effect: Recreate transform graph when input count changes.
d3d10/effect: Use bitfields for numeric type descriptions.
Paul Gofman (5):
ntdll: Fix exception list offset in call_user_mode_callback / user_mode_callback_return.
ntdll: Return STATUS_DEBUGGER_INACTIVE from NtSystemDebugControl() stub.
winex11.drv: Fix wglSwapBuffers() with NULL current context with child window rendering.
winhttp: Always return result at once if available in WinHttpQueryDataAvailable().
winhttp: Always return result at once if available in WinHttpReadData().
Piotr Caban (8):
msvcp140_2: Fix i386 export names.
msvcp140_2: Implement __std_smf_hypot3f.
msvcp140_t/tests: Add __std_smf_hypot3 tests.
concrt140: Add _Cancellation_beacon::_Confirm_cancel() implementation.
msvcp140: Add _XGetLastError implementation.
msvcp140/tests: Fix _Syserror_map(0) test failure in newest msvcp140.
msvcp140: Recognize no error case in _Syserror_map.
winex11.drv: Fix xim_set_focus no IC condition check.
Russell Greene (1):
powrprof: Add PowerWriteACValueIndex stub.
R?mi Bernon (59):
user32/tests: Remove old Windows versions broken cursoricon results.
user32/tests: Fix cursoricon tests on recent Windows versions.
user32/tests: Add flaky_wine to some SetActiveWindow tests.
user32/tests: Run SendInput tests in a separate desktop.
user32/tests: Cleanup SendInput keyboard message sequence tests.
user32/tests: Test SendInput messages with KEYEVENTF_SCANCODE flag.
user32/tests: Test SendInput messages with other keyboard layouts.
imm32/tests: Add todo_himc to some ImmTranslateMessage expected calls.
dinput/tests: Make some failing keyboard test flaky_wine.
vulkan/tests: Add gitlab Win10 VM results.
winex11: Return STATUS_NOT_FOUND when IME update isn't found.
win32u: Move ImeToAsciiEx implementation from winex11.
win32u: Support posting IME updates while processing keys.
winemac: Use the default ImeToAsciiEx implementation.
win32u: Remove now unnecessary ImeToAsciiEx driver entry.
winebus: Append is_gamepad to the device instance id.
winebus: Allow specific devices to prefer hidraw backend.
winebus: Move device identification helpers to unixlib.h.
winebus: Prefer hidraw backends for DS4 and DS5 gamepads.
winexinput: Demote BusContainerId FIXME message to WARN.
winebus: Demote BusContainerId FIXME message to WARN.
dinput: Add a description to the dinput worker thread.
windows.gaming.input: Add a description to the monitor thread.
include: Add HEAACWAVEINFO and HEAACWAVEFORMAT definitions.
mfplat/tests: Test MFInitMediaTypeFromWaveFormatEx wrt MF_MT_FIXED_SIZE_SAMPLES.
mfplat/tests: Add MFInitMediaTypeFromWaveFormatEx tests with HEAACWAVEFORMAT.
mfplat/tests: Test MFWaveFormatExConvertFlag_ForceExtensible with HEAACWAVEFORMAT.
mfplat: Support AAC format attributes in MFInitMediaTypeFromWaveFormatEx.
mfplat: Support compressed WAVEFORMATEX in MFCreateWaveFormatExFromMFMediaType.
win32u: Avoid truncating ToUnicodeEx result if there's room.
user32/tests: Move KEYEVENTF_UNICODE to test_SendInput_keyboard_messages.
user32/tests: Test that WH_KEYBOARD_LL are blocking SendInput.
setupapi: Don't clobber the original filename if .inf is found.
dinput/tests: Introduce a new helper to create a foreground window.
dinput/tests: Enforce ordering of concurrent read IRPs.
dinput/tests: Add a test with a virtual HID mouse.
dinput/tests: Add a test with a virtual HID keyboard.
include: Add more HID digitizer usage definitions.
dinput/tests: Add a test with a virtual HID touch screen.
winex11: Sync with gdi_display before closing the threads display.
dinput/tests: Differentiate missing from broken HID reports.
dinput/tests: Relax the mouse move count test.
dinput/tests: Add some IRawGameController2 interface tests.
windows.gaming.input: Stub IRawGameController2 interface.
imm32/tests: Adjust todo_wine for the new Wine CJK keyboard layouts.
imm32: Mask the scancode before passing it to ImeToAsciiEx.
imm32/tests: Test that WM_KEYUP are passed to ImeProcessKey.
win32u: Also pass WM_KEYUP messages to ImmProcessKey.
imm32/tests: Test the effect of CPS_CANCEL and CPS_COMPLETE.
imm32: Complete the composition string when the IME is closed.
user32/tests: Add an optional hwnd to input messages tests.
user32/tests: Cleanup the mouse input WM_NCHITTEST / SetCapture tests.
user32/tests: Run the mouse hook tests in the separate desktop.
user32/tests: Filter the ll-hook messages with accept_message.
user32/tests: Test clicking through attribute-layered windows.
user32/tests: Tests clicking through window with SetWindowRgn.
winegstreamer: Fix reading MF_MT_USER_DATA into HEAACWAVEFORMAT.
winegstreamer: Use MFCreateAudioMediaType in the AAC decoder.
winegstreamer: Use an array for the audio decoder input types.
Sven Baars (2):
advapi32/tests: Introduce a new has_wow64 helper.
advapi32/tests: Skip WoW64 tests on 32-bit in test_reg_create_key.
Tim Clem (1):
winemac.drv: Detect active handwriting and panel IMEs.
Tyson Whitehead (2):
dinput/tests: Update tests for DIPROP_AUTOCENTER.
dinput: Implement DIPROP_AUTOCENTER.
Vijay Kiran Kamuju (5):
concrt140: Add stub for _Cancellation_beacon::_Confirm_cancel().
wine.inf: Create security directory.
msvcp140: Add stub for _XGetLastError.
include: Add Windows.Storage.Streams.InMemoryRandomAccessStream runtimeclass definition.
msvcr100: Add _ReaderWriterLock constructor implementation.
Yuxuan Shui (4):
dmime: AudioPathConfig is not AudioPath.
dmime: Parse AudioPathConfig.
dmime: IDirectMusicPerformance::CreateAudioPath should fail when config is NULL.
dmime: Semi-support creating an audio path from config.
Zebediah Figura (14):
ddraw/tests: Add tests for map pointer coherency.
ddraw: Sync to sysmem after performing a color fill.
ddraw: Use the sysmem wined3d texture for sysmem surfaces if possible.
wined3d: Hook up push constants for Vulkan.
wined3d/spirv: Hook up sm1 interface matching.
d3d11: Implement D3D11_FEATURE_D3D11_OPTIONS2.
wined3d: Report VK_EXT_shader_stencil_export availability to vkd3d_shader_compile().
wined3d: Implement shader stencil export for GL.
d3d11: Report support for shader stencil export if available.
d3d11/tests: Add a test for shader stencil export.
wined3d: Check the wined3d resource type and usage in find_ps_compile_args().
wined3d: Set the tex_type field of the FFP fragment settings from the resource's GL type.
wined3d: Check for WINED3DUSAGE_LEGACY_CUBEMAP instead of checking the GL texture target.
wined3d: Collapse some trivially nested ifs into a single condition.
Zhiyi Zhang (16):
wldap32: Fix a possible memory leak (Coverity).
msi: Fix a memory leak (Coverity).
bcrypt: Fix an possible out-of-bounds read (Coverity).
win32u: Fix a possible out-of-bounds write (Coverity).
compstui: Fix a possible out-of-bounds write (Coverity).
user32/tests: Add recursive keyboard and mouse hook tests.
win32u: Avoid calling WH_KEYBOARD and WH_CBT HCBT_KEYSKIPPED hooks recursively.
win32u: Avoid calling WH_CBT HCBT_CLICKSKIPPED hooks recursively.
user32/tests: Add recursive WM_SETCURSOR message tests.
include: Add some ncrypt definitions.
include: Add some bcrypt definitions.
ncrypt/tests: Test default RSA key properties.
ncrypt: Add some missing RSA key properties.
ncrypt/tests: Add NCryptExportKey() tests.
user32/tests: Test keyboard layout in CJK locales.
win32u: Don't set the high word of keyboard layout to 0xe001 in CJK locales.