2010-06-07 218 views

回答

2

@Alex K .:小備註:NtFsControlFile記錄在http://msdn.microsoft.com/en-us/library/ff566462(v=VS.85).aspx。內核模式應用程序應該使用ZwFsControlFile函數和用戶模式應用程序可以使用NtFsControlFile

@vedang:從你的問題我會假設你不是內核模式驅動程序的開發人員。所以我會嚴格地建議你使用只有DeviceIoControl發送FSCTL_XXX代碼http://msdn.microsoft.com/en-us/library/aa364230(v=VS.85).aspx

僅當您打算編寫不使用Win32子系統並僅使用NT本機子系統的應用程序時,就像在Windows啓動時運行的小型校驗盤應用程序或磁盤碎片整理應用程序一樣(請參閱會話管理器註冊表項)比在使用NtFsControlFile時有優勢。在所有平時的工作中,您只能使用DeviceIoControl

1

我對執行沒有任何意見,但NtFsControlFile是一個未公開的內核,它的使用帶來了在未來的某個時刻會消失/更改實現的風險,而DeviceIoControl是公共Win32 API的一部分。