Repository navigation
WASAPI Driver for ASIO 0.9.9
Pre-release
Pre-release
0.9.9 (changes from 0.9.8) - "Arm64X"; no engine change
One driver DLL for every 64-bit host on Windows on Arm, built with MSVC in CI.
Summary of all changes:
- Arm64X DLL (WasapiDriverARM64X.dll): native ARM64 code and ARM64EC code in
one file, as Microsoft recommends for in-process audio components on
Windows on Arm. A native ARM64 DAW runs the ARM64 half; an x64 DAW running
under emulation runs the ARM64EC half (native speed, no emulation of the
driver itself). Built by the "arm64x" job of build.yml (every push) and
release.yml on a GitHub windows-11-arm runner with MSVC
(scripts/build-arm64x.ps1: cl native + cl /arm64EC, link /machine:arm64x,
static runtime /MT). The script checks the image with dumpbin (machine
ARM64X, exactly the four COM exports, no Visual C++ runtime DLL imported)
and always ends with a ::notice annotation (result, machine line, exports,
imported DLLs, SHA-256) that is readable on the public run page without
signing in. Compiler / linker messages are classified: errors (Cxxxx,
LNK1xxx / LNK2xxx) as ::error, warnings (Cxxxx, LNK4xxx) as ::warning
(0.9.9 prep reported linker warnings as errors). LNK4070 fixed (temporary
.def with "LIBRARY WasapiDriverARM64X"); LNK4279 documented as benign
(CODE-REVIEW.txt "0.9.9 MSVC / Arm64X"). - Setup on Windows on Arm: when the package contains the Arm64X DLL (CI and
release builds whose arm64x job passed; makensis -DARM64X=1), Setup
installs it and registers it ONCE in the 64-bit registry view, without
the "ARM64 or x64 DAW" question: native ARM64 and emulated x64 processes
read the same 64-bit view, so one registration serves both. An upgrade
from 0.9.8 or earlier replaces the ARM64 or x64 registration (exactly one
registration remains). 32-bit DAWs keep WasapiDriver32.dll (WOW6432Node).
The uninstaller removes the file. A package without the Arm64X DLL (local
mingw / zig builds, or a release whose arm64x job failed: the release
notes say so) behaves exactly as 0.9.8. ARCHITECTURE.txt section 59. - Portable install.bat: on ARM64 it registers WasapiDriverARM64X.dll when
that file is in its folder (no question); otherwise the 0.9.8 question. - Release: the Arm64X DLL is part of the Setup and of the bin zip (signed
like the other DLLs when signing is configured); the separate
"WasapiDriverARM64X--experimental-unsigned.dll" download is gone.
"build" runs after "arm64x" and uses its DLL only when the job reported
success and the SHA-256 matches. - MSVC portability fixes (found by the first MSVC build; GCC and clang
accepted the code): dll.cpp had preprocessor directives inside the
arguments of the WB_TRACE macro (undefined behaviour in C++, MSVC error
C2121), now the architecture string is chosen before the call and the
ARM64EC half reports "ARM64EC"; panel.cpp had a font field named "small",
which rpcndr.h defines as a macro ("char") under MSVC; renamed fontSmall.
No behaviour change in the mingw / zig builds. - "Stop trace.bat": when it is started already elevated from an
administrator window of another account, the trace is saved on the
Desktop of the user signed in to the Windows session (owner of
explorer.exe in the same session, redirected / OneDrive Desktops
honoured), not in the administrator's profile. "Start trace.bat" /
"Stop trace.bat" titles carry no version number any more. - README restructured: what the driver is, where to get it and the code
signing policy come first. New CODE-SIGNING-POLICY.txt (what is signed,
by whom, roles, privacy; SignPath Foundation applied for). - Documents: KNOWN-ISSUES.txt KI-9 (Arm64X not yet tested on real Windows
on Arm hardware), TEST-GUIDE.txt block Z (Windows on Arm), FAQ entry,
ARCHITECTURE.txt section 59, CODE-REVIEW.txt "0.9.9 MSVC / Arm64X".
Not changed: the audio engine, the x64 / x86 / ARM64 DLLs (apart from the
version number), the tools, the 32-bit registration.
This package contains WasapiDriverARM64X.dll (Setup and bin.zip): on Windows on Arm the Setup registers it once for native ARM64 and emulated x64 hosts. Not yet tested on real Windows on Arm hardware (KNOWN-ISSUES.txt KI-9).