# Julia crashes when trying to call Windows API EnumWindows

**URL:** <https://discourse.julialang.org/t/julia-crashes-when-trying-to-call-windows-api-enumwindows/103065>\
**Category:** General Usage\
**Tags:** ccall\
**Created:** [August 22, 2023, 1:47pm UTC](https://discourse.julialang.org/t/julia-crashes-when-trying-to-call-windows-api-enumwindows/103065 "2023-08-22T13:47:49Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![taotree](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/taotree/32/31982_2.png) [@taotree](https://discourse.julialang.org/u/taotree)\
**Post date:** [August 22, 2023, 1:47pm UTC](https://discourse.julialang.org/t/julia-crashes-when-trying-to-call-windows-api-enumwindows/103065/1 "2023-08-22T13:47:50Z")

</div>

I’m guessing I just have the signature wrong or something here? This is Julia 1.9.0 on Windows 11.

Trying to call the [Win32 API EnumWindows](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-enumwindows).

By the error message, it appears to be something wrong with the callback.

```julia
using WinTypes: HWND, LPARAM, BOOL

cb(hwnd, code)::BOOL = ( @show hwnd code ; return true )

function test()
    cbc = @cfunction(cb, BOOL, (Ref{HWND}, Ref{LPARAM}))
    @ccall "User32".EnumWindows(cbc::Ptr{Cvoid}, 1::LPARAM)::BOOL
end

```

Running the test() function results in the Julia process crashing with this output:

```julia
Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x2087ac90891 -- unknown function (ip: 000002087ac90891)
in expression starting at REPL[2]:1
unknown function (ip: 000002087ac90891)
EnumChildWindows at C:\WINDOWS\System32\USER32.dll (unknown line)
EnumWindows at C:\WINDOWS\System32\USER32.dll (unknown line)
test at c:\data\julia\Automate\src\Automate.jl:8
unknown function (ip: 000002087ac907e3)
jl_apply at C:/workdir/src\julia.h:1879 [inlined]
do_call at C:/workdir/src\interpreter.c:126
eval_value at C:/workdir/src\interpreter.c:226
eval_stmt_value at C:/workdir/src\interpreter.c:177 [inlined]
eval_body at C:/workdir/src\interpreter.c:624
jl_interpret_toplevel_thunk at C:/workdir/src\interpreter.c:762
jl_toplevel_eval_flex at C:/workdir/src\toplevel.c:912
jl_toplevel_eval_flex at C:/workdir/src\toplevel.c:856
ijl_toplevel_eval at C:/workdir/src\toplevel.c:921 [inlined]
ijl_toplevel_eval_in at C:/workdir/src\toplevel.c:971
eval at .\boot.jl:370 [inlined]
eval_user_input at C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:153
repl_backend_loop at C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:249
#start_repl_backend#46 at C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:234
start_repl_backend at C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:231
#run_repl#59 at C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:379
run_repl at C:\workdir\usr\share\julia\stdlib\v1.9\REPL\src\REPL.jl:365
jfptr_run_repl_62761.clone_1 at C:\app\dev\Julia\lib\julia\sys.dll (unknown line)
#1017 at .\client.jl:421
jfptr_YY.1017_37145.clone_1 at C:\app\dev\Julia\lib\julia\sys.dll (unknown line)
jl_apply at C:/workdir/src\julia.h:1879 [inlined]
jl_f__call_latest at C:/workdir/src\builtins.c:774
#invokelatest#2 at .\essentials.jl:816 [inlined]
invokelatest at .\essentials.jl:813 [inlined]
run_main_repl at .\client.jl:405
exec_options at .\client.jl:322
_start at .\client.jl:522
jfptr__start_34279.clone_1 at C:\app\dev\Julia\lib\julia\sys.dll (unknown line)
jl_apply at C:/workdir/src\julia.h:1879 [inlined]
true_main at C:/workdir/src\jlapi.c:573
jl_repl_entrypoint at C:/workdir/src\jlapi.c:717
mainCRTStartup at C:/workdir/cli\loader_exe.c:59
BaseThreadInitThunk at C:\WINDOWS\System32\KERNEL32.DLL (unknown line)
RtlUserThreadStart at C:\WINDOWS\SYSTEM32\ntdll.dll (unknown line)
Allocations: 1025327 (Pool: 1025284; Big: 43); GC: 1

```
