gpt4 book ai didi

Windows 资源管理器和重新分析点文件 : keep Explorer from opening my files

转载 作者:可可西里 更新时间:2023-11-01 10:44:50 26 4
gpt4 key购买 nike

我已经实现了一个用户模式程序和一个 Windows 文件系统微过滤器,它为远程文件存储系统创建用户文件的框架 View 。它将远程文件映射到本地驱动器。用户模式程序为远程系统上的每个文件创建一个重新解析标记。当检测到创建请求(例如,读取的 CreateFile)时,微过滤器要求用户模式程序下载文件。只有当程序想要打开文件进行查看或编辑时,才会发生这种情况。

但是,我发现 Windows 资源管理器正在触发我的文件下载。我想阻止资源管理器文件窗口和文件打开/保存对话框触发下载。而且,我还想显示文件缩略图和文件尺寸。

[Update: I've found I can use Windows sparse files to show my remote file size in Explorer. ]

因此,我还实现了一个 Shell 扩展 IThumbnailProvider,它可以下载文件的再现。这提供了文件缩略图。

为了我的测试,我已经为所有文件 (*) 和 .jpg 文件注册了 IThumbnailProvider。

我看到结合使用 Process Monitor 和 DebugView(均来自 SysInternals)的两个有趣行为:1. 如果我让我的微过滤器拒绝从资源管理器打开文件的请求,那么我的 IThumbnailProvider 就会被调用。2. 如果我允许来自 Explorer 的打开请求,我会在调用堆栈中看到 thumbcache.dll 试图打开该文件并且我的 IThumbnailProvider 没有被调用。默认缩略图提供程序似乎读取下载的文件并创建缩略图。

我一定是遗漏了什么。

更新:如果我使用 InitializeWithStream 而不是 InitializeWithFile,似乎我的处理程序被调用了。但是,这也会触发文件的下载。

最佳答案

有许多 shell 扩展类型可以访问您的文件。图标处理程序可以读取文件以创建图标,信息提示处理程序可以读取文件以创建文本提示,数据对象处理程序可以读取文件以创建剪贴板数据等。

同样问题的开发者提问:firstsecond .解决方案是创建 namespace 外壳扩展。 NSE 可以控制对您文件的所有访问。

关于Windows 资源管理器和重新分析点文件 : keep Explorer from opening my files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30517268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com