HANDLE
win32_open_existing_file(const wchar_t *path, DWORD dwDesiredAccess)
{
- return CreateFileW(path,
- dwDesiredAccess,
- FILE_SHARE_READ,
- NULL, /* lpSecurityAttributes */
- OPEN_EXISTING,
- FILE_FLAG_BACKUP_SEMANTICS |
- FILE_FLAG_OPEN_REPARSE_POINT,
- NULL /* hTemplateFile */);
+ return CreateFile(path,
+ dwDesiredAccess,
+ FILE_SHARE_READ,
+ NULL, /* lpSecurityAttributes */
+ OPEN_EXISTING,
+ FILE_FLAG_BACKUP_SEMANTICS |
+ FILE_FLAG_OPEN_REPARSE_POINT,
+ NULL /* hTemplateFile */);
}
/* Pointers to functions that are not available on all targetted versions of
SECURITY_INFORMATION SecurityInformation,
PSECURITY_DESCRIPTOR SecurityDescriptor);
+NTSTATUS (WINAPI *func_RtlCreateSystemVolumeInformationFolder)
+ (PCUNICODE_STRING VolumeRootPath);
+
#endif /* WITH_NTDLL */
static OSVERSIONINFO windows_version_info = {
func_NtSetSecurityObject =
(void*)GetProcAddress(hNtdll, "NtSetSecurityObject");
+ func_RtlCreateSystemVolumeInformationFolder =
+ (void*)GetProcAddress(hNtdll, "RtlCreateSystemVolumeInformationFolder");
}
}
DEBUG("NtQueryDirectoryFile @ %p", func_NtQueryDirectoryFile);
DEBUG("NtQueryInformationFile @ %p", func_NtQueryInformationFile);
DEBUG("NtSetSecurityObject @ %p", func_NtSetSecurityObject);
+ DEBUG("RtlCreateSystemVolumeInformationFolder @ %p",
+ func_RtlCreateSystemVolumeInformationFolder);
#endif
return 0;