[PATCH] gdi32/tests: Avoid a D3DKMTOpenAdapterFromHdc() crash on Windows 10 >= 2004.

Francois Gouget fgouget at codeweavers.com
Mon Nov 9 10:59:45 CST 2020


Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 dlls/gdi32/tests/driver.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/dlls/gdi32/tests/driver.c b/dlls/gdi32/tests/driver.c
index 8276c1c4bee..d07426ce57d 100644
--- a/dlls/gdi32/tests/driver.c
+++ b/dlls/gdi32/tests/driver.c
@@ -105,18 +105,22 @@ static void test_D3DKMTOpenAdapterFromHdc(void)
     HDC hdc;
     DWORD i;
 
-    if (!pD3DKMTOpenAdapterFromHdc || pD3DKMTOpenAdapterFromHdc(NULL) == STATUS_PROCEDURE_NOT_FOUND)
+    if (!pD3DKMTOpenAdapterFromHdc)
     {
-        win_skip("D3DKMTOpenAdapterFromHdc() is unavailable.\n");
+        win_skip("D3DKMTOpenAdapterFromHdc() is missing.\n");
         return;
     }
 
     /* Invalid parameters */
-    status = pD3DKMTOpenAdapterFromHdc(NULL);
-    todo_wine ok(status == STATUS_INVALID_PARAMETER, "Got unexpected return code %#x.\n", status);
+    /* Passing a NULL pointer crashes on Windows 10 >= 2004 */
 
     memset(&open_adapter_hdc_desc, 0, sizeof(open_adapter_hdc_desc));
     status = pD3DKMTOpenAdapterFromHdc(&open_adapter_hdc_desc);
+    if (status == STATUS_PROCEDURE_NOT_FOUND)
+    {
+        win_skip("D3DKMTOpenAdapterFromHdc() is not supported.\n");
+        return;
+    }
     todo_wine ok(status == STATUS_INVALID_PARAMETER, "Got unexpected return code %#x.\n", status);
 
     /* Open adapter */
-- 
2.20.1




More information about the wine-devel mailing list