From: Paul Gofman pgofman@codeweavers.com
--- dlls/user32/user_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/user_main.c b/dlls/user32/user_main.c index 3b55cc75deb..0ef360b07f8 100644 --- a/dlls/user32/user_main.c +++ b/dlls/user32/user_main.c @@ -190,7 +190,9 @@ static NTSTATUS WINAPI User32DragDropPost( void *args, ULONG size ) return STATUS_SUCCESS; }
-static KERNEL_CALLBACK_PROC kernel_callback_table[NtUserCallCount] = +C_ASSERT( NtUserCallCount <= 256 ); + +static KERNEL_CALLBACK_PROC kernel_callback_table[256] = { User32CallDispatchCallback, User32CallEnumDisplayMonitor,
The Finals depends on some callbacks with specific indices being valid callbacks or NULLs. Those indices are beyond our callback table size, while on Windows there are much more callbacks (maybe some of those have relatively stable indices, not sure).