while zeroing out other regs is maybe not necessary in practice
i would guess this to probably done to avoid leaking value of kernel registers. it might not be necessary but why don't we follow what native does? that's what the test finds anyway.
executing SEH handler through user mode callback doesn't work on Windows
yeah i was thinking about this. unwinding through user callback doesn't work and raises `STATUS_FATAL_USER_CALLBACK_EXCEPTION`, we should probably do the same.
so i think we:
```diff - ".seh_handler " __ASM_NAME("user_callback_handler") ", @except\n\t" + ".seh_handler " __ASM_NAME("user_callback_handler") ", @except, @unwind\n\t" ```
in `KiUserCallbackDispatcher`. stop the unwind, call `NtCallbackReturn`, then on the kernel side raise `STATUS_FATAL_USER_CALLBACK_EXCEPTION`.
does that sound right?