【发布时间】:2017-11-07 05:55:28
【问题描述】:
我正在开发一个实现 IPropertyStore 和 IInitializeWithFile 的属性处理程序,在 Win 8.1 x64 上进行测试。属性名称之前是使用使用 prop.exe 正确注册的 .propdesc 文件添加到系统的。
当我重新索引磁盘上的文件时,我使用 PROCMON.EXE 来监视事件。 SearchPrototocolHost.exe 加载协议处理程序,使用 IInitializeWithFile 正确初始化它(文件中的属性似乎可以从文件中加载)然后继续使用 PSCreatePropertyStoreFromObject 可能是为了检索 IPropertyStore 接口并开始从文件中检索属性。
然后什么都没有发生,来自 IPropertyStore 的方法永远不会被调用。相反,SearchPrototocolHost.exe 对要使用“打开重解析点”再次索引的文件发出 CreateFile,无法获取 QueryRemoteProtocolInformation,关闭文件然后继续下一个要索引的文件。
为什么我的属性处理程序失败(是安全问题等?)?
【问题讨论】:
-
你能检查一下你的组件在哪些接口上被查询吗?是 ATL 项目吗?
-
感谢西蒙的建议。 InitializeWithFile 被查询并采取行动,我将检查其他接口。它不是 ATL 项目,它是用 Delphi (XE6) 编写的。安东尼曾经是我的家乡,很高兴见到那里的人(27 年前离开美国)!
标签: windows search properties com handler