New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DLL issue with WaitOnAddress/WakeByAddressSingle/WakeByAddressAll #2027
Comments
At least on my Windows 11 machine, the function does indeed get exported from
Wine's not that surprising as the API is new to Windows 8, but I'd expect Windows Server 2022 to have it. Adding @riverar in case he happens to know offhand. The latest version of the win32metadata also reports that this function is exported from I can try to confirm the same for GitHub's CI machines. |
I will add that the docs indicate otherwise: https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitonaddress And our internal API definition seems to confirm the docs are correct: <Export Name="WaitOnAddress">
<Header Name="synchapi.h"/>
<Lib Name="synchronization.lib"/>
<Module Name="api-ms-win-core-synch-l1-2-0.dll"/>
</Export> Now usually these |
FWIW, using the |
Added a test to validate the CI build machine: #2028 I'll double check internally on the history of the function and figure out what's going on. |
Looking through the 10.0.22621 sdk (Windows 11), it seems it is exported from vertdll.lib which has the vertdll.dll import. But there are also import libraries (such as WindowsApp.lib) that use the In any case, should this not be an issues for the win32metadata project? I'd guess it's picking up the name from the first import library it finds. |
Here's a branch with my minimal reproduction: https://github.com/m-ou-se/atomic-wait/tree/testcase, and here how it fails in GitHub Actions (just running |
|
|
@ChrisDenton contributed a fix to the metadata (microsoft/win32metadata#1257) and I've requested another release of the metadata at which point I can regenerate the Thanks for reporting this issue! |
The fix is now in the |
Thank you! A new release of windows-sys would be great. :) |
|
Which crate is this about?
windows-sys
Crate version
0.36.1
Summary
Using the WaitOnAddress/WakeByAddressSingle/WakeByAddressAll APIs works fine on Windows 10 pro, but results in 0xc0000142 (STATUS_DLL_INIT_FAILED) on GitHub's CI, which runs Windows Server 2022 (10.0.20348). The binary also fails to run in Wine, complaining that it can't find
vertdll.dll
.dumpbin /imports
shows that these three functions get imported fromvertdll.dll
, but I don't know whether that's correct, or whether that's also the problem I see on Windows Server.Toolchain version/configuration
Default config of GitHub's
windows-latest
:Reproducible example
Crate manifest
Expected behavior
Runs fine.
Actual behavior
error: process didn't exit successfully:
target\debug\repro.exe
(exit code: 0xc0000142, STATUS_DLL_INIT_FAILED)Additional comments
No response
The text was updated successfully, but these errors were encountered: