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