diff --git a/dlls/winevulkan/vulkan.c b/dlls/winevulkan/vulkan.c
index 41a45efc7962c83044df6cb2e84d1c4e64e8ce52..49ec1479887e168bd8d827e5bfeff14c98961139 100644
--- a/dlls/winevulkan/vulkan.c
+++ b/dlls/winevulkan/vulkan.c
@@ -823,19 +823,14 @@ static VkResult WINAPI wine_vkEnumerateInstanceExtensionProperties(const char *l
         if (wine_vk_instance_extension_supported(host_properties[i].extensionName))
         {
             TRACE("Enabling extension '%s'\n", host_properties[i].extensionName);
-            memcpy(&properties[j], &host_properties[i], sizeof(*properties));
+            properties[j] = host_properties[i];
             j++;
         }
     }
-
-    /* Return incomplete if the buffer is smaller than the number of supported extensions. */
-    if (*count < num_properties)
-        res = VK_INCOMPLETE;
-    else
-        res = VK_SUCCESS;
+    *count = min(*count, num_properties);
 
     heap_free(host_properties);
-    return res;
+    return *count < num_properties ? VK_INCOMPLETE : VK_SUCCESS;
 }
 
 VkResult WINAPI wine_vkEnumeratePhysicalDevices(VkInstance instance, uint32_t *count,