Francois Gouget : gdi32/tests: Avoid a D3DKMTOpenAdapterFromHdc() crash on Windows 10 >= 2004.

Alexandre Julliard julliard at winehq.org
Tue Nov 10 15:30:24 CST 2020


Module: wine
Branch: master
Commit: dd51cd8d00b3b2cebca1353a85a3c7d3f332ade9
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=dd51cd8d00b3b2cebca1353a85a3c7d3f332ade9

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Mon Nov  9 17:59:45 2020 +0100

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

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdi32/tests/driver.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/dlls/gdi32/tests/driver.c b/dlls/gdi32/tests/driver.c
index 8276c1c4bee..2110765835f 100644
--- a/dlls/gdi32/tests/driver.c
+++ b/dlls/gdi32/tests/driver.c
@@ -105,18 +105,23 @@ 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 */
+    if (0) status = pD3DKMTOpenAdapterFromHdc(NULL);
 
     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 */




More information about the wine-cvs mailing list