我想按ID打开一个文件,然后在Win32 API中使用生成的句柄BackupRead()
这可能吗?我不确定在其他Win32 API中使用来自NtCreateFile()
的句柄是否“没问题”?
例如,我可以这样做吗
NtCreateFile(&handle, ..., FILE_OPEN_BY_FILE_ID, ....)
BackupFile(handle, ....)
我对使用NtCreateFile
感到有些困扰,它在MSDN上有详细记录,但他们也提到了可能发生的兼容性问题
有什么想法吗?
答案 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()
。