我将为我自己的硬件(可能是虚拟的)实现一个SPI。正如我发现的(也许我错了),当应用程序调用WFSOpen时,XFS在SPI中调用WFPOpen。但是这个“在SPI中”意味着在哪里?也许我应该给出在注册表的某个地方找到WFPOpen的dll文件的地址。我还认为dll路径应该在HKLM\XFS\Service_Provider\DllName中给出。它是这样的吗?它足够吗?XFS是否对此注册表路径和注册表项敏感,并使用它来查找SPI的位置?我已经完成了上面的工作,但是我得到了WFS_ERR_SERVICE_NOT_FOUND。XFS似乎没有在dll中查找该函数。会出什么问题呢?
我认为发送xfs日志会更好,以便您能够更好地处理问题。https://www.dropbox.com/s/6wwbjfpxxibjnl1/9603071652%20-%20XFSTrace.7z?dl=0
发布于 2018-06-08 17:50:12
从应用程序执行WFSOpen时,需要设置要打开的逻辑服务名称。XFS管理器将尝试在windows注册表中查找此名称,路径为:
HKEY_USERS/.DEFAULT(或启动会话的用户)/XFS/LOGICAL_SERVICES/。
对于每个逻辑服务名称,都有一个带有"provider“变量的注册表项。
使用这个"provider“变量的值,XFS管理器转到:
HKEY_LOCAL_MACHINE/SOFTWARE/XFS/value_for_this_provider/.
在此文件夹中,变量"dllname“包含要为此SPI加载的dll。
祝好运!
https://stackoverflow.com/questions/43961280
复制相似问题