首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HowTo连接FS微型驱动程序和我在Vista & Win7上的应用?

HowTo连接FS微型驱动程序和我在Vista & Win7上的应用?
EN

Stack Overflow用户
提问于 2011-05-19 14:05:53
回答 2查看 519关注 0票数 0

我所拥有的是:

  • 用户应用程序--它是MSVC项目、服务,在C++上编写,带有小Boost & STL (应用程序使用钩子获取用户操作)、
  • 驱动程序--它是一个FS Minifilter驱动程序,用于监视USB安装/umount操作和文件移动(

)。

Problem:在XP上,这两个人合作得很好,但当我开始将它们移植到Vista和Win7系统上时,麻烦就迅速增加了。

  • 驱动程序没有安装,因为它没有签名,
  • 钩子不起作用,因为在和更高级别上,服务被放置到不同的会话,并且无法与用户会话
    • 交互--这没有让我的应用程序在启动时对驱动程序进行访问,所以……

但是:我只想知道,在Vista & Win7上是否真的有可能将驱动程序和用户应用程序连接到UAC- is - on,如果可能的话,执行这种交互的条件是什么(例如,驱动程序必须进行签名或其他.)?

太好了谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-19 14:14:49

您的驱动程序应该公开一个虚拟设备,供用户模式应用程序打开和交互(通常是通过IOCTL)。

这完全独立于您已经在使用的文件系统设备层。

当您的驱动程序创建这个新的虚拟设备时,它可以设置允许任何用户打开它的权限,只允许提升的管理员等等。

最后,您提到的内容(监视挂载、卸载和MoveFile)已经内置到Windows中。当您可以使用WM_DEVICECHANGE (用于挂载/卸载)以及FindFirstChangeNotification/ReadDirectoryChangesW和/或NTFS日志来检测MoveFile时,我不知道为什么要编写驱动程序。

票数 2
EN

Stack Overflow用户

发布于 2011-05-19 14:15:28

如果您在启动时设置了该选项,您可以安装未签名的驱动程序(google用于它,不记得它是如何完成的)。使用钩子来获取用户操作从来都不是一个好主意。使用IPC。您可以在调用告诉服务可以与桌面交互的SERVICE_INTERACTIVE_PROCESS时设置桌面标志( CreateService )。如果您想获得有关USB挂载/umount的通知,为什么不使用系统事件,并用于文件修改FindFirstChangeNotification (http://msdn.microsoft.com/en-us/library/aa364417%28v=VS.85%29.aspx)?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6059941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档