3

自分のハードウェア (おそらく仮想) に SPI を実装します。アプリケーションが WFSOpen を呼び出すときに見つけたように (おそらく間違いです)、XFS は SPI で WFPOpen を呼び出します。しかし、この「in 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

4

1 に答える 1

0

アプリケーションから WFSOpen を実行する場合、開きたい論理サービス名を設定します。XFS マネージャは、次の場所にある Windows レジストリでこの名前を見つけようとします。

HKEY_USERS/.DEFAULT (またはセッションを開始したユーザー)/XFS/LOGICAL_SERVICES/.

論理サービス名ごとに、"provider" 変数を含むレジストリ エントリがあります。

この「プロバイダ」変数の値を使用して、XFS MANAGER は次の場所に移動します。

HKEY_LOCAL_MACHINE/SOFTWARE/XFS/value_for_this_provider/.

このフォルダの変数「dllname」には、この SPI 用にロードする dll が含まれています。

幸運を!

于 2018-06-08T09:50:11.763 に答える