2016-11-17 36 views
0

即使我需要找到在網絡存儲的文件夾(NAS),其中只有一個特定的用戶具有完全訪問權限的自由空間。GetDiskFreeSpaceEx的Windows API是給錯誤的價值觀模擬完成

在C使用GetDiskFreeSpaceEx API ++它給了我錯誤的價值觀(垃圾)當我嘗試從一個正常的域用戶訪問無權到該文件夾​​。在API i模擬給具有完全訪問權並且在模擬期間沒有失敗的用戶之前。我提到垃圾值的原因是,當我嘗試訪問不同的驅動器中的不同文件夾相同的存儲我得到相同的值。

如果我將該文件夾的訪問權限更改爲「Everyone」,並且在沒有模擬的情況下使用API​​,則會返回適當的值。

對於模擬,登錄我有兩個LOGON32_LOGON_INTERACTIVELOGON32_LOGON_NETWORK嘗試。

我在這裏錯過了什麼嗎?某種額外的權限可以給予?

任何幫助,將不勝感激。

回答

0

根據MSDN文檔GetDiskFreeSpaceEx的相關權限爲「調用應用程序必須具有FILE_LIST_DIRECTORY此目錄的訪問權限。」。

稍微讓我擔心的是第一部分,「調用應用程序...」。模擬在線程上工作,但MSDN不會說「調用線程必須...」。

另一個問題是你如何命名NAS驅動器。如果您使用驅動器號映射,則該模擬其他用戶時該驅動器號映射可能不可用。