]> wimlib.net Git - wimlib/blobdiff - include/wimlib/win32_common.h
Windows: Load ntdll functions dynamically
[wimlib] / include / wimlib / win32_common.h
index 499dad4faae0062543b5a3fa2614b770ec9b853f..019dd7df742b7d95bbb20c2794094f257c1f7050 100644 (file)
@@ -9,6 +9,11 @@
 #include "wimlib/types.h"
 #include "wimlib/win32.h"
 
+#ifdef WITH_NTDLL
+#  include <ntstatus.h>
+#  include <winternl.h>
+#endif
+
 extern void
 set_errno_from_GetLastError(void);
 
@@ -17,7 +22,7 @@ set_errno_from_win32_error(DWORD err);
 
 #ifdef WITH_NTDLL
 extern void
-set_errno_from_nt_status(DWORD status);
+set_errno_from_nt_status(NTSTATUS status);
 #endif
 
 extern bool
@@ -45,6 +50,44 @@ extern BOOL (WINAPI *win32func_CreateSymbolicLinkW)(const wchar_t *lpSymlinkFile
                                                    const wchar_t *lpTargetFileName,
                                                    DWORD dwFlags);
 
+/* ntdll functions  */
+
+#ifdef WITH_NTDLL
+
+extern NTSTATUS (WINAPI *func_NtQueryInformationFile)(HANDLE FileHandle,
+                                                     PIO_STATUS_BLOCK IoStatusBlock,
+                                                     PVOID FileInformation,
+                                                     ULONG Length,
+                                                     FILE_INFORMATION_CLASS FileInformationClass);
+
+extern NTSTATUS (WINAPI *func_NtQuerySecurityObject)(HANDLE handle,
+                                                    SECURITY_INFORMATION SecurityInformation,
+                                                    PSECURITY_DESCRIPTOR SecurityDescriptor,
+                                                    ULONG Length,
+                                                    PULONG LengthNeeded);
+
+extern NTSTATUS (WINAPI *func_NtQueryDirectoryFile) (HANDLE FileHandle,
+                                                    HANDLE Event,
+                                                    PIO_APC_ROUTINE ApcRoutine,
+                                                    PVOID ApcContext,
+                                                    PIO_STATUS_BLOCK IoStatusBlock,
+                                                    PVOID FileInformation,
+                                                    ULONG Length,
+                                                    FILE_INFORMATION_CLASS FileInformationClass,
+                                                    BOOLEAN ReturnSingleEntry,
+                                                    PUNICODE_STRING FileName,
+                                                    BOOLEAN RestartScan);
+
+
+extern NTSTATUS (WINAPI *func_NtSetSecurityObject)(HANDLE Handle,
+                                                  SECURITY_INFORMATION SecurityInformation,
+                                                  PSECURITY_DESCRIPTOR SecurityDescriptor);
+
+extern DWORD (WINAPI *func_RtlNtStatusToDosError)(NTSTATUS status);
+#endif
+
+
+
 extern bool
 windows_version_is_at_least(unsigned major, unsigned minor);