3

我将为我自己的硬件(可能是虚拟的)实现一个 SPI。正如我发现(也许我弄错了)当应用程序调用 WFSOpen 时,XFS 在 SPI 中调用 WFPOpen。但是这个“in 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

4

1 回答 1

0

从应用程序执行 WFSOpen 时,您设置要打开的逻辑服务名称。XFS 管理器将尝试在 Windows 注册表中找到此名称,位于:

HKEY_USERS/.DEFAULT(或启动会话的用户)/XFS/LOGICAL_SERVICES/。

对于每个逻辑服务名称,都有一个带有“provider”变量的注册表项。

使用这个“provider”变量的值,XFS MANAGER 转到:

HKEY_LOCAL_MACHINE/SOFTWARE/XFS/value_for_this_provider/。

在此文件夹中,变量“dllname”包含要为此 SPI 加载的 dll。

祝你好运!

于 2018-06-08T09:50:11.763 回答