Implement DelayedMove and FileExists.
diff --git a/dlls/setupapi/misc.c b/dlls/setupapi/misc.c
index bb7eda1..ad6b123 100644
--- a/dlls/setupapi/misc.c
+++ b/dlls/setupapi/misc.c
@@ -30,6 +30,9 @@
#include "wine/unicode.h"
#include "wine/debug.h"
+#include "setupapi_private.h"
+
+
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
@@ -458,3 +461,37 @@
return bResult;
}
+
+
+BOOL WINAPI DelayedMove(LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName)
+{
+ return MoveFileExW(lpExistingFileName, lpNewFileName,
+ MOVEFILE_REPLACE_EXISTING | MOVEFILE_DELAY_UNTIL_REBOOT);
+}
+
+
+BOOL WINAPI FileExists(LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFileFindData)
+{
+ WIN32_FIND_DATAW FindData;
+ HANDLE hFind;
+ UINT uErrorMode;
+ DWORD dwError;
+
+ uErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS);
+
+ hFind = FindFirstFileW(lpFileName, &FindData);
+ if (hFind == INVALID_HANDLE_VALUE)
+ {
+ dwError = GetLastError();
+ SetErrorMode(uErrorMode);
+ SetLastError(dwError);
+ return FALSE;
+ }
+
+ FindClose(hFind);
+
+ if (lpFileFindData)
+ memcpy(lpFileFindData, &FindData, sizeof(WIN32_FIND_DATAW));
+
+ return TRUE;
+}