我将为自己的硬件(可能是虚拟的)实现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
最佳答案
从应用程序执行WFSOpen时,设置要打开的逻辑服务名称。 XFS管理器将尝试在Windows注册表中的以下位置找到该名称:
HKEY_USERS / .DEFAULT(或用户启动 session )/ XFS / LOGICAL_SERVICES /。
对于每个逻辑服务名称,都有一个带有“provider”变量的注册表项。
使用此“provider”变量的值,XFS MANAGER转到:
HKEY_LOCAL_MACHINE / SOFTWARE / XFS / value_for_this_provider /。
在此文件夹中,变量“dllname”包含要为此SPI加载的dll。
祝好运!
关于xfs - XFS如何找到WFPOpen?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43961280/