0

是否可以在启用 UAC 的情况下将 RegisterDeviceNotification() 用于系统驱动器?它在没有 UAC 的情况下完美运行,但使用 UAC CreateFile() 失败并拒绝访问。

下面是 CreateFile 的调用方式:

aHandle:=CreateFile(PChar(sDevice), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

有没有办法调整 CreateFile() 参数以获得驱动器的最低读取权限,或者根本不可能没有管理员权限?

提前致谢。

4

2 回答 2

0

您是否尝试使用 GENERIC_READ 以外的其他内容?即使是 0 也可能有效。FILE_SHARE_READ 也有点限制,您可能必须循环运行它并尝试所有共享模式...

于 2011-02-14T17:31:34.863 回答
0

对于文件系统更改,FindFirstChangeNotification(MSDN)是您的朋友。只需为您感兴趣的目录设置通知,然后离开。在 StackOverflow 上搜索这个,你会得到很多关于这个主题的文章。

要监控磁盘空间,GetDiskFreeSpaceEx(MSDN)是您的朋友。当你想要卷的当前状态时调用它。

于 2011-02-14T18:42:01.597 回答