Software 42200 Published by

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 

Binary packages for various distributions will be available from 

You will find documentation on 

Wine is available thanks to the work of many people. See the file [AUTHORS][1] for the complete list.



### 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_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.