wow64: Use the right SEH opcode in raise_exception on arm64.
[wine.git] / ANNOUNCE
bloba4c6455eb98bc0fc97ae9e84db3f14cc5d1a50fb
1 The Wine development release 7.18 is now available.
3 What's new in this release:
4   - Character tables updated to Unicode 15.0.0.
5   - Wow64 support in the macOS driver.
6   - Async reader fixes in GStreamer support.
7   - Various bug fixes.
9 The source is available at:
11   https://dl.winehq.org/wine/source/7.x/wine-7.18.tar.xz
13 Binary packages for various distributions will be available from:
15   https://www.winehq.org/download
17 You will find documentation on https://www.winehq.org/documentation
19 You can also get the current source directly from the git
20 repository. Check https://www.winehq.org/git for details.
22 Wine is available thanks to the work of many people. See the file
23 AUTHORS in the distribution for the complete list.
25 ----------------------------------------------------------------
27 Bugs fixed in 7.18 (total 20):
29  - #31157  Multiple applications (FileMaker Pro 12-19, MyDiff) crash when trying to create/open sample solution ('ImmAssociateContext' should only generate 'WM_IME_SETCONTEXT' if window has focus)
30  - #35478  Multiple applications and games need dsdmo.dll (DirectSound Effects)
31  - #36312  valgrind shows a couple possible leaks in oledb32/tests/marshal.c
32  - #36944  Hotel Giant 2 crashes frequently
33  - #42751  Multiple applications crash on unimplemented function msvcr{100,110}.dll.?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z (Gas Guzzlers Combat Carnage, Clip Studio Paint, Cube World, Intel ACAT)
34  - #44314  Adobe FrameMaker 8: Installer aborts with the error "The wizard was interrupted..."
35  - #48487  MSYS based Git 2.25 installer reports 'could not decode hex <hexstring>' (needs support for CryptStringToBinaryW CRYPT_STRING_HEX)
36  - #48600  Bloomberg Terminal needs unimplemented function dbghelp.dll.SymSrvGetFileIndexInfo
37  - #51404  Resident Evil 7 objects rendered with glitches (Vulkan renderer)
38  - #52677  REVELPROG_IS crashes on unimplemented function winusb.dll.WinUsb_Free
39  - #53430  urlmon:url fails due to unexpected redirection
40  - #53458  windows.media.speech:speech - The 64-bit test_Recognition() gets unexpected ref count on Windows after ISpeechContinuousRecognitionSession_Release()
41  - #53570  Visual C++ 2015-2019 crashes on launch
42  - #53577  d3d9:device - test_scissor_size() fails on Windows 8+
43  - #53578  msvfw32:mciwnd - test_MCIWndCreate() fails in Wine
44  - #53609  Segmentation fault when starting Dosbox.exe in virtual desktop mode
45  - #53614  KeePassXC crashes on unimplemented function msvcp140.dll.?ReportUnhandledError@_ExceptionHolder@details@Concurrency@@AEAAXXZ
46  - #53626  Wine crash due to long filename when saving file in Framemaker
47  - #53703  Wine crashes when setting a long window title.
48  - #53706  NtDeviceIoControlFile() is quite slow when called with and invalid handle
50 ----------------------------------------------------------------
52 Changes since 7.17:
54 Akihiro Sagawa (1):
55       user32: Fix a memory allocation strategy.
57 Alexandre Julliard (22):
58       configure: Use --disable-stdcall-fixup for all PE builds.
59       kernel32/tests: Fix affinity test when there are too many CPUs.
60       ntdll/tests: Fix affinity test when there are too many CPUs.
61       ntoskrnl/tests: Fix affinity test when there are too many CPUs.
62       oleaut32: Avoid spurious debug traces when FIXMEs are disabled.
63       oleaut32: Check that the 32/64 syskind matches when getting a typelib from the cache.
64       webservices/tests: Mark tests that fail on 64-bit as todo.
65       d2d1/tests: Adjust geometry to make tests pass on all devices.
66       winetest: Don't require an email if we have a URL.
67       gdi32/tests: Mark some tests that fail without Vulkan as todo.
68       vcomp/tests: Limit the number of nested threads.
69       unicode: Update to Unicode 15.0.0.
70       win32u: Fix Get/SetWindowWord behavior on 32-bit.
71       winex11: Don't send WM_CANCELMODE to iconified windows.
72       user32/tests: Fix a few more assumptions about window positions.
73       ntdll/tests: Re-add workaround for check that is still broken on win7.
74       winetest: Report failure for tests that print too much output.
75       ntdll/tests: Don't run the stack growth tests too many times.
76       d2d1/tests: Skip subsequent todo tests for unsupported properties.
77       user32/tests: Only report the first todo of a failed message sequence.
78       user32/tests: Don't print debug traces by default.
79       advapi32/tests: Mark some failing tests as todo.
81 Alistair Leslie-Hughes (7):
82       ws2_32: Return a valid value for WSAIoctl SIO_IDEAL_SEND_BACKLOG_QUERY.
83       wininet: Clear cached credentials after the first failed attempt.
84       oledb32/tests: Free returned property set memory.
85       wininet: Use standard HTTP_ADD Flags.
86       msdasql: Implement ICommandProperties GetProperties.
87       msdasql: Implement ICommandProperties SetProperties.
88       msdasql: Implement IColumnsRowset GetAvailableColumns.
90 André Zwing (1):
91       ntdll: Fix ARM vs AMD64 typo.
93 Aurimas Fišeras (1):
94       po: Update Lithuanian translation.
96 Brendan Shanks (4):
97       server: Remove 32-bit-specific macOS #ifdefs.
98       server: Report errors on macOS when getting/setting debug registers.
99       server: Write to correct context struct when getting debug registers on macOS.
100       server: Use correct context struct and thread flavor when setting debug registers on macOS.
102 Connor McAdams (6):
103       uiautomationcore: Implement UiaReturnRawElementProvider.
104       uiautomationcore: Increment module reference count when starting provider thread.
105       uiautomationcore: Shutdown provider thread when all returned nodes are released.
106       uiautomationcore: Implement UiaNodeFromHandle.
107       uiautomationcore: Create UI Automation client thread.
108       uiautomationcore: Add tests for UiaNodeFromHandle.
110 David Kahurani (1):
111       win32u: Use allocator mechanism to allocate DC attributes.
113 Davide Beatrici (9):
114       winecoreaudio: Fix RegEnumKeyExW() call passing wrong unit for the buffer size.
115       winecoreaudio: Switch to string as device identifier, to match other drivers.
116       mmdevapi: Integrate winecoreaudio's additions in unixlib.h.
117       winecoreaudio: Drop "unix_" prefix in unixlib enum, apply it to the functions instead.
118       winecoreaudio: Adapt "create_stream_params" struct to mmdevapi's.
119       winecoreaudio: Adapt "release_stream_params" struct to mmdevapi's.
120       winecoreaudio: Adapt "release_render_buffer_params" struct to mmdevapi's.
121       winecoreaudio: Adapt "get_capture_buffer_params" struct to mmdevapi's.
122       winecoreaudio: Switch to mmdevapi's unixlib.h.
124 Eric Pouech (14):
125       winedump: Harden reading PDB string table stream.
126       dbghelp: Harden reading strings from string table.
127       dbghelp: Correctly handle the absence of IPI stream.
128       dbghelp: Support SymGetTypeInfo/TI_GET_LENGTH for variables.
129       dbghelp: Displacements are optional.
130       winedump: Print signed integers with %d.
131       dbghelp: Support depth relating to top function for inline sites.
132       dbghelp: Store all address ranges for inline sites.
133       d3d10core/tests: Fix erroneous color parameter.
134       d3d10core/tests: Introduce a clear_backbuffer_rtv() helper.
135       d3d11/tests: Introduce a clear_rtv() helper.
136       glu32: Fix GCC 12.2 warnings.
137       jscript: Fix GCC 12.2 warning.
138       avifil32: Fix GCC 12.2 warning (-Warray-bounds).
140 Etaash Mathamsetty (2):
141       ntoskrnl: KeSetTargetProcessorDpcEx stub.
142       ntoskrnl: Implement KeGetCurrentProcessorNumberEx.
144 Floris Renaud (1):
145       po: Update Dutch translation.
147 Gabriel Ivăncescu (8):
148       include: Add IDOMStorageEvent and DispDOMStorageEvent interfaces.
149       mshtml: Move the MessageEvent construction to a helper.
150       mshtml: Implement StorageEvent and send it when clearing the storage.
151       mshtml: Send StorageEvents when setting an item.
152       mshtml: Send StorageEvents when removing an existing item.
153       mshtml/tests: Add tests for StorageEvents with parallel documents.
154       mshtml: Don't expose document.onstorage for IE9+ modes.
155       mshtml: Send StorageEvents to iframe windows properly.
157 Georg Lehmann (1):
158       winevulkan: Update to VK spec version 1.3.228.
160 Gijs Vermeulen (2):
161       dbghelp: Add SymSrvGetFileIndexInfo stub.
162       ntdll: Add RtlDosPathNameToRelativeNtPathName_U.
164 Hans Leidekker (15):
165       bcrypt: Support setting BCRYPT_CHAIN_MODE_CFB on keys.
166       bcrypt: Add full support for algorithm pseudo-handles.
167       bcrypt: Rename mode_id to chain_mode.
168       appwiz.cpl: Use BCrypt algorithm pseudo-handles.
169       appwiz.cpl: Use BCryptHash().
170       crypt32: Use BCrypt algorithm pseudo-handles.
171       dssenh: Use BCrypt algorithm pseudo-handles.
172       fusion: Use BCrypt algorithm pseudo-handles.
173       ncrypt: Use BCrypt algorithm pseudo-handles.
174       rsaenh: Use BCrypt algorithm pseudo-handles.
175       adsldp: Implement ADS_SEARCHPREF_SIZE_LIMIT.
176       adsldp/tests: Limit the number of search results.
177       adsldp/tests: Get rid of workarounds for Windows XP.
178       winhttp/tests: Fix test failure caused by expired client certificate.
179       secur32/tests: Fix test failure caused by expired client certificate.
181 Henri Verbeet (6):
182       wined3d: Fix the sub-resource index validation in wined3d_texture_update_overlay().
183       wined3d: Destroy the Vulkan command pool after cleaning up resources.
184       d3d9/tests: The expected scissor rect after a reset is equal to the back-buffer dimensions.
185       d3d11: Implement d3d11_input_layout_to_wined3d_declaration() on top of vkd3d_shader_parse_input_signature().
186       d3d11/tests: Move the is_warp_device() call out of the loop in check_format_support().
187       wined3d: Return bools from all return paths in wined3d_cs_map_upload_bo().
189 Jacek Caban (8):
190       urlmon/tests: Make BINDSTATUS_DOWNLOADINGDATA optional in test_URLDownloadToFile_abort.
191       wininet/tests: Collect persistent connection before running tests in test_async_HttpSendRequestEx.
192       wininet/tests: Don't send two HTTP responses for a single request in server_thread.
193       win32u: Introduce NtUserSendDriverMessage.
194       winemac: Use platform-independent types for user callback params.
195       winemac: Implement wow64 thunks.
196       winevulkan: Introduce VkVariable.
197       winevulkan: Use DECLSPEC_ALIGN instead of pshpack4.h.
199 Jacob Czekalla (3):
200       notepad: Show status bar.
201       notepad: Track and display line number and column.
202       notepad: Show goto dialog box.
204 Jinoh Kang (3):
205       include: Define atomic read/write helpers for 32-bit integers.
206       concrt140: Use atomic write for releasing threadsafe_queue spin lock.
207       msvcp90: Use atomic write for releasing threadsafe_queue spin lock.
209 Julian Klemann (9):
210       widl: Use "cinterface(IInspectable)" for IInspectable signature.
211       include/windows.devices.enumeration: Update file to newer formatting.
212       include/windows.devices.enumeration: Define IDeviceInformationStatics2.
213       windows.devices.enumeration: Replace STDMETHODCALLTYPE with WINAPI.
214       windows.devices.enumeration: Create private header file.
215       windows.devices.enumeration: Add IDeviceInformationStatics2 stub.
216       windows.devices.enumeration: Add DeviceWatcher stub.
217       windows.devices.enumeration: Implement Stopped handler for DeviceWatcher.
218       windows.devices.enumeration/tests: Add test for Stopped DeviceWatcher event.
220 Mohamad Al-Jaf (2):
221       include: Add winusb.h file.
222       winusb: Add WinUsb_Free stub.
224 Nikolay Sivov (26):
225       dwrite/layout: Use same logic for mapping both non-visual and visual runs.
226       dwrite/layout: Keep system font collection for each layout.
227       dwrite/layout: Use already resolved or last resort fonts when setting dummy line metrics.
228       dwrite/layout: Constify some internal helpers arguments.
229       dwrite/layout: Limit text window passed to MapCharacters() to the range of characters to map.
230       xmllite/reader: Improve xml declaration node parsing.
231       xmllite/writer: Implement WriteWhitespace().
232       xmllite/writer: Handle empty prefix and uri correctly in WriteStartElement().
233       xmllite/writer: Close open tag on WriteRaw().
234       xmllite/writer: Close open tag on WriteProcessingInstruction().
235       xmllite/writer: Implement WriteAttributes().
236       xmllite/writer: Add initial implementation of WriteNode().
237       xmllite/tests: Add some more tests for WriteStartElement().
238       xmllite/tests: Add a test for IsEmptyElement() on attributes.
239       xmllite/writer: Handle empty local name in WriteAttributeString().
240       xmllite/writer: Implement WriteNodeShallow().
241       xmllite/writer: Enable some more tests for WriteNode().
242       kernelbase: Add OpenFileMappingFromApp().
243       kernelbase: Add CreateFileMappingFromApp().
244       kernelbase: Add MapViewOfFileFromApp().
245       include: Add windows.system.threading.idl.
246       threadpoolwinrt: Add a stub module.
247       threadpoolwinrt: Add initial implementation of RunAsync.
248       include: Add windows.security.cryptography.idl.
249       cryptowinrt: Add a stub module.
250       cryptowinrt: Implement GenerateRandomNumber().
252 Owen Rudge (2):
253       secur32/tests: Add tests for LsaGetLogonSessionData.
254       secur32: Implement basic functionality for LsaGetLogonSessionData.
256 Paul Gofman (6):
257       advapi32: Add stub for PerfCloseQueryHandle().
258       advapi32: Add stub for PerfOpenQueryHandle().
259       advapi32: Add stub for PerfAddCounters().
260       advapi32: Add stub for PerfQueryCounterData().
261       crypt32: Support CRYPT_STRING_HEXRAW in CryptBinaryToStringA().
262       crypt32: Support CRYPT_STRING_HEX in CryptStringToBinary().
264 Piotr Caban (2):
265       msvcp90: Fix indentation in concurrent_vector_alloc_segment function.
266       msvcr100: Fix crash when setting scheduler in schedule_task_proc.
268 Rémi Bernon (66):
269       wmvcore/tests: Add some tests starting WM reader with NULL context.
270       winegstreamer: Wrap async reader op new_context in a union.
271       winegstreamer: Unconditionally assign new context for ASYNC_OP_START.
272       winegstreamer: Implement async reader asynchronous seeking.
273       winegstreamer: Keep start time in the async_reader struct.
274       winegstreamer: Check whether the reader is still running before user time.
275       winegstreamer: Factor async_reader waits using async_reader_get_wait_timeout.
276       winegstreamer: Introduce a new async_reader_wait_pts helper.
277       winegstreamer: Request the wm_reader stream only when necessary.
278       widl: Allow parameterized types in runtimeclass interfaces.
279       wineandroid.drv: Add missing DM_DISPLAYORIENTATION flag on display mode.
280       win32u: Rename get_full_mode variables and avoid using devmode directly.
281       win32u: Fill the local full_mode variable instead of using the modes array.
282       win32u: Introduce reference counting to struct adapter.
283       win32u: Avoid copying the modes array in NtUserChangeDisplaySettings.
284       win32u: Avoid unnecessary copy of adapter path and device name.
285       win32u: Pass adapter parameter to (read|write)_registry_settings.
286       win32u: Introduce a new internal WINE_DM_UNSUPPORTED display flag.
287       mf/tests: Split IMFTransform tests to transform.c.
288       mf/tests: Add some winetest context to MFT tests.
289       mf/tests: Split create_transform into check_(mft|dmo)_(enum|get_info).
290       mf/tests: Test AAC encoder MFT presence and media types.
291       mf/tests: Test AAC decoder MFT presence and media types.
292       mf/tests: Factor IMFTransform required attributes checks together.
293       maintainers: Assume maintainership of MF transforms.
294       winegstreamer: Support MFT_SET_TYPE_TEST_ONLY flag in the MF transforms.
295       winegstreamer: Avoid leaking attributes on video processor creation failure.
296       winegstreamer: Better implement H264 MFT GetAttributes and GetOutputStreamAttributes.
297       winegstreamer: Set MFT_OUTPUT_DATA_BUFFER_INCOMPLETE in wg_transform_read_mf.
298       winegstreamer: Stop setting flags on unexpected MF_E_TRANSFORM_STREAM_CHANGE.
299       winegstreamer: Check for unexpected format change in wg_transform_read helpers.
300       winegstreamer: Check WMA sample size before wrapping the sample.
301       winegstreamer: Remove unnecessary IMFTransform_GetInputStreamInfo calls.
302       winegstreamer: Create wg_sample from IMFSample within wg_transform_push_mf.
303       winegstreamer: Wake thread when async reader user clock is modified.
304       winegstreamer: Introduce a new async_reader_deliver_sample helper.
305       winegstreamer: Use a dedicated CS to serialize async reader commands.
306       winegstreamer: Check for already opened stream in wm_reader_open*.
307       winegstreamer: Get rid of the wm_reader_ops callbacks.
308       winegstreamer: Aggregate a IWMSyncReader in the async reader.
309       winegstreamer: Merge wm_syncreader.c into wm_reader.c.
310       mf/tests: Use separate variables for input / output samples.
311       mf/tests: Factor IMFTransform_ProcessOutput checks together.
312       mf/tests: Introduce a new load_resource helper.
313       mf/tests: Introduce a new dump_mf_sample helper.
314       mf/tests: Factor IMFSample checks in a check_mf_sample helper.
315       mf/tests: Factor IMFSample attributes checks in check_mf_sample.
316       mf/tests: Check all produced output IMFSample at the same time.
317       mf/tests: Rename transform frame dumps to BMP.
318       mf/tests: Dump image samples with a BMP header and RGB data.
319       winegstreamer: Query the IWMSyncReader2 interface in the async reader.
320       winegstreamer: Implement IWMSyncReader2_GetReadStreamSamples.
321       winegstreamer: Use IWMSyncReader2_GetReadStreamSamples in the async reader.
322       winegstreamer: Use IWMSyncReader2_SetReadStreamSamples in the async reader.
323       winegstreamer: Use IWMSyncReader2_Close in the async reader.
324       winegstreamer: Use IWMSyncReader2_Open in the async reader.
325       winegstreamer: Use IWMSyncReader2_OpenStream in the async reader.
326       winegstreamer: Use IWMSyncReader2_SetRange in the async reader.
327       winegstreamer: Avoid accessing NULL pointer if transform didn't provide a sample.
328       user32/tests: Cleanup sysparams WM_DISPLAYCHANGE tests.
329       win32u: Move enumeration of available modes out of graphics drivers.
330       winemac.drv: Stop using the cached_modes_mutex for get_default_bpp.
331       win32u: Factor out display_device lookup in separate helpers.
332       win32u: Use find_adapter_device_by_(name|id) helpers in find_adapter.
333       win32u: Lock display devices mutex in find_adapter.
334       win32u: Broadcast WM_DISPLAYCHANGE message on display settings change.
336 Santino Mazza (2):
337       include: Define REG_APP_HIVE and REG_PROCESS_PRIVATE.
338       ntdll/tests: Test for NtRegLoadKey roothandle parameter.
340 Shaun Ren (1):
341       msvcrt: Fix strncmp return value.
343 Witold Baryluk (4):
344       ntdll: Speed up NtQueryVirtualMemory(MemoryWorkingSetExInformation) by conditional page check.
345       ntdll: Do not use hardcoded page shift in NtQueryVirtualMemory(MemoryWorkingSetExInformation).
346       ntdll: Use pread in NtQueryVirtualMemory(MemoryWorkingSetExInformation).
347       ntdll: Keep pagemap file open after first use of NtQueryVirtualMemory(MemoryWorkingSetExInformation).
349 Zebediah Figura (16):
350       wined3d: Do not create larger staging buffers than necessary in adapter_vk_copy_bo_address().
351       wined3d: Remove a redundant variable.
352       wined3d: Factor out wined3d_texture_validate_sub_resource_idx().
353       wined3d: Mark managed textures as dirty if applicable in wined3d_device_evict_managed_resources().
354       d3d8: Remove an incorrect comment.
355       wined3d: Add a dirty region to the destination texture in wined3d_device_context_blt() if applicable.
356       wined3d: Pass a draw count of 1 to Vulkan indirect draw commands.
357       ntdll: Avoid comparing the result of pointer arithmetic to zero.
358       libwine: Avoid comparing the result of pointer arithmetic to zero.
359       ntdll: Calculate the necessary length after calling snprintf() in SystemWineVersionInformation.
360       win32u: Copy directly into the union pointer in unpack_message().
361       ntdll: Do not check for malloc() failure in get_initial_environment.
362       ntdll: Add a fast path for NtDeviceIoControlFile(INVALID_HANDLE_VALUE).
363       d3d10core/tests: Use a pixel shader that consumes SV_Position in test_pipeline_statistics_query().
364       d3d11/tests: Use a pixel shader that consumes SV_Position in test_pipeline_statistics_query().
365       d3d10core/tests: Ignore random WARP failures in test_pipeline_statistics_query.
367 Zhiyi Zhang (1):
368       kernelbase: Return system error codes in the ReadDirectoryChangesW() completion callback.