setupapi: SetLastError to ERROR_SUCCESS on success.
diff --git a/dlls/setupapi/misc.c b/dlls/setupapi/misc.c
index 4c7786f..04941a5 100644
--- a/dlls/setupapi/misc.c
+++ b/dlls/setupapi/misc.c
@@ -921,6 +921,7 @@
     MyFree( destW );
     HeapFree( GetProcessHeap(), 0, sourceW );
     HeapFree( GetProcessHeap(), 0, locationW );
+    if (ret) SetLastError(ERROR_SUCCESS);
     return ret;
 }
 
@@ -980,6 +981,7 @@
 
     if (component) *component = p + 1;
     if (required_size) *required_size = size;
+    if (ret) SetLastError(ERROR_SUCCESS);
 
     return ret;
 }
diff --git a/dlls/setupapi/tests/misc.c b/dlls/setupapi/tests/misc.c
index d566816..2efaa64 100644
--- a/dlls/setupapi/tests/misc.c
+++ b/dlls/setupapi/tests/misc.c
@@ -243,11 +243,8 @@
     SetLastError(0xdeadbeef);
     res = SetupCopyOEMInf(path, NULL, SPOST_NONE, SP_COPY_DELETESOURCE, NULL, 0, NULL, NULL);
     ok(res == TRUE, "Expected TRUE, got %d\n", res);
+    ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", GetLastError());
     ok(!file_exists(path), "Expected source inf to not exist\n");
-    todo_wine
-    {
-        ok(GetLastError() == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", GetLastError());
-    }
 }
 
 START_TEST(misc)