kernel32: Add partial CreateFile2 implementation

André Hentschel nerv at dawncrow.de
Thu Sep 5 16:25:03 CDT 2013


Needed for minizip (test application for zlib) on ARM
see Vincents https://github.com/madewokherd/zlib

---
 dlls/kernel32/file.c        | 23 +++++++++++++++++++++++
 dlls/kernel32/kernel32.spec |  1 +
 2 files changed, 24 insertions(+)

diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c
index 89e0fad..6051a79 100644
--- a/dlls/kernel32/file.c
+++ b/dlls/kernel32/file.c
@@ -1527,6 +1527,29 @@ HANDLE WINAPI CreateFileA( LPCSTR filename, DWORD access, DWORD sharing,
     return CreateFileW( nameW, access, sharing, sa, creation, attributes, template );
 }
 
+typedef struct _CREATEFILE2_EXTENDED_PARAMETERS_PRIVATE {
+    DWORD dwSize;
+    DWORD dwFileAttributes;
+    DWORD dwFileFlags;
+    DWORD dwSecurityQosFlags;
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes;
+    HANDLE hTemplateFile;
+} CREATEFILE2_EXTENDED_PARAMETERS_PRIVATE;
+
+/*************************************************************************
+ *              CreateFile2              (KERNEL32.@)
+ */
+HANDLE WINAPI CreateFile2( LPCWSTR filename, DWORD access, DWORD sharing, DWORD creation,
+                           CREATEFILE2_EXTENDED_PARAMETERS_PRIVATE *exparams)
+{
+    LPSECURITY_ATTRIBUTES sa = exparams ? exparams->lpSecurityAttributes : NULL;
+    DWORD attributes = exparams ? exparams->dwFileAttributes : 0;
+    HANDLE template = exparams ? exparams->hTemplateFile : NULL;
+
+    FIXME("(%s %x %x %x %p), partial stub\n", debugstr_w(filename), access, sharing, creation, exparams);
+
+    return CreateFileW( filename, access, sharing, sa, creation, attributes, template );
+}
 
 /***********************************************************************
  *           DeleteFileW   (KERNEL32.@)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 57cc38b..08b225f 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -229,6 +229,7 @@
 @ stdcall CreateEventW(ptr long long wstr)
 @ stdcall CreateFiber(long ptr ptr)
 @ stdcall CreateFiberEx(long long long ptr ptr)
+@ stdcall CreateFile2(wstr long long long ptr)
 @ stdcall CreateFileA(str long long ptr long long long)
 @ stdcall CreateFileMappingA(long ptr long long long str)
 @ stdcall CreateFileMappingW(long ptr long long long wstr)
-- 
1.8.1.2



More information about the wine-patches mailing list