如何通过fileID打开文件然后使用BackupRead API?

时间:2012-10-13 14:48:59

标签: windows winapi filesystems backup ntfs

我想按ID打开一个文件,然后在Win32 API中使用生成的句柄BackupRead()

这可能吗?我不确定在其他Win32 API中使用来自NtCreateFile()的句柄是否“没问题”?

例如,我可以这样做吗

NtCreateFile(&handle, ..., FILE_OPEN_BY_FILE_ID, ....)
BackupFile(handle, ....)

我对使用NtCreateFile感到有些困扰,它在MSDN上有详细记录,但他们也提到了可能发生的兼容性问题

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我不确定我100%了解你的问题是什么,我不知道任何名为BackupFile()的函数。

如果你想要的是重新使用NTCreateFile() BackupRead() 的句柄,那么这样做应该完全没问题,前提是文件句柄是用正确的标志打开的;权限。

请务必使用NTCreateFile标记致电FILE_OPEN_FOR_BACKUP_INTENT

NtCreateFile(&handle, ..., FILE_OPEN_BY_FILE_ID|FILE_OPEN_FOR_BACKUP_INTENT, ....)

如果您打算将生成的句柄传递给BackupRead()