From: Torge Matthies tmatthies@codeweavers.com
Signed-off-by: Torge Matthies tmatthies@codeweavers.com --- dlls/winevulkan/loader.c | 13 ++++++++----- dlls/winevulkan/vulkan.c | 8 ++++---- dlls/wow64win/user.c | 15 --------------- include/ntuser.h | 3 --- 4 files changed, 12 insertions(+), 27 deletions(-)
diff --git a/dlls/winevulkan/loader.c b/dlls/winevulkan/loader.c index d6fe9fe078f..505a72ea81c 100644 --- a/dlls/winevulkan/loader.c +++ b/dlls/winevulkan/loader.c @@ -597,10 +597,14 @@ static BOOL WINAPI call_vulkan_debug_utils_callback( struct wine_vk_debug_utils_ return params->user_callback(params->severity, params->message_types, ¶ms->data, params->user_data); }
-BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, void *reserved) +static const user32_callback_func user32_callback_table[] = { - void **kernel_callback_table; + (user32_callback_func)call_vulkan_debug_report_callback, + (user32_callback_func)call_vulkan_debug_utils_callback +};
+BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, void *reserved) +{ TRACE("%p, %lu, %p\n", hinst, reason, reserved);
switch (reason) @@ -609,9 +613,8 @@ BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, void *reserved) hinstance = hinst; DisableThreadLibraryCalls(hinst);
- kernel_callback_table = NtCurrentTeb()->Peb->KernelCallbackTable; - kernel_callback_table[NtUserCallVulkanDebugReportCallback] = call_vulkan_debug_report_callback; - kernel_callback_table[NtUserCallVulkanDebugUtilsCallback] = call_vulkan_debug_utils_callback; + __wine_set_user32_callback_table( user32_callback_destination_vulkan, user32_callback_table, + ARRAY_SIZE(user32_callback_table) ); break; } return TRUE; diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c index 0edc1ae492d..0cd2334d398 100644 --- a/dlls/winevulkan/vulkan.c +++ b/dlls/winevulkan/vulkan.c @@ -114,6 +114,7 @@ static VkBool32 debug_utils_callback_conversion(VkDebugUtilsMessageSeverityFlagB void *user_data) { struct wine_vk_debug_utils_params params; + struct user32_callback_params cbparams = { user32_callback_destination_vulkan, 0, ¶ms, sizeof(params) }; VkDebugUtilsObjectNameInfoEXT *object_name_infos; struct wine_debug_utils_messenger *object; void *ret_ptr; @@ -166,8 +167,7 @@ static VkBool32 debug_utils_callback_conversion(VkDebugUtilsMessageSeverityFlagB params.data.pObjects = object_name_infos;
/* applications should always return VK_FALSE */ - result = KeUserModeCallback( NtUserCallVulkanDebugUtilsCallback, ¶ms, sizeof(params), - &ret_ptr, &ret_len ); + result = KeUserModeCallback( NtUserDispatchCallback, &cbparams, sizeof(cbparams), &ret_ptr, &ret_len );
free(object_name_infos);
@@ -178,6 +178,7 @@ static VkBool32 debug_report_callback_conversion(VkDebugReportFlagsEXT flags, Vk uint64_t object_handle, size_t location, int32_t code, const char *layer_prefix, const char *message, void *user_data) { struct wine_vk_debug_report_params params; + struct user32_callback_params cbparams = { user32_callback_destination_vulkan, 0, ¶ms, sizeof(params) }; struct wine_debug_report_callback *object; void *ret_ptr; ULONG ret_len; @@ -207,8 +208,7 @@ static VkBool32 debug_report_callback_conversion(VkDebugReportFlagsEXT flags, Vk if (!params.object_handle) params.object_type = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT;
- return KeUserModeCallback( NtUserCallVulkanDebugReportCallback, ¶ms, sizeof(params), - &ret_ptr, &ret_len ); + return KeUserModeCallback( NtUserDispatchCallback, &cbparams, sizeof(cbparams), &ret_ptr, &ret_len ); }
static void wine_vk_physical_device_free(struct wine_phys_dev *phys_dev) diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index b3d0444c5e3..bd9b77f50f8 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -1009,18 +1009,6 @@ static NTSTATUS WINAPI wow64_NtUserDispatchCallback( void *arg, ULONG size ) return dispatch_callback( NtUserDispatchCallback, ¶ms32, sizeof(params32) ); }
-static NTSTATUS WINAPI wow64_NtUserCallVulkanDebugReportCallback( void *arg, ULONG size ) -{ - FIXME( "\n" ); - return 0; -} - -static NTSTATUS WINAPI wow64_NtUserCallVulkanDebugUtilsCallback( void *arg, ULONG size ) -{ - FIXME( "\n" ); - return 0; -} - static NTSTATUS WINAPI wow64_NtUserDriverCallbackFirst0( void *arg, ULONG size ) { return dispatch_callback( NtUserDriverCallbackFirst + 0, arg, size ); @@ -1093,9 +1081,6 @@ user_callback user_callbacks[] = wow64_NtUserRenderSynthesizedFormat, wow64_NtUserUnpackDDEMessage, wow64_NtUserDispatchCallback, - /* Vulkan support */ - wow64_NtUserCallVulkanDebugReportCallback, - wow64_NtUserCallVulkanDebugUtilsCallback, /* Driver-specific callbacks */ wow64_NtUserDriverCallbackFirst0, wow64_NtUserDriverCallbackFirst1, diff --git a/include/ntuser.h b/include/ntuser.h index a7171d17202..7497d46b36c 100644 --- a/include/ntuser.h +++ b/include/ntuser.h @@ -47,9 +47,6 @@ enum NtUserRenderSynthesizedFormat, NtUserUnpackDDEMessage, NtUserDispatchCallback, - /* Vulkan support */ - NtUserCallVulkanDebugReportCallback, - NtUserCallVulkanDebugUtilsCallback, /* Driver-specific callbacks */ NtUserDriverCallbackFirst, NtUserDriverCallbackLast = NtUserDriverCallbackFirst + 9,