简体   繁体   中英

How XFS finds WFPOpen?

I'm going to implement an SPI for my own hardware (maybe virtual). As I found (maybe I mistake) when an application calls WFSOpen, XFS calls WFPOpen in SPI. But this "in SPI" means where? Maybe I should give the address of the dll file in which WFPOpen is found somewhere in registry. I also think that the dll path should be given in HKLM\\XFS\\Service_Provider\\\\DllName. Is it so and is it enough? Is XFS sensitive to this registry path and key and uses it to find where is the SPI? I've done above, but I get WFS_ERR_SERVICE_NOT_FOUND. It seems that XFS doesn't look for the function in the dll. What can be wrong?

I thought it would be better to send xfs log for you to be able to process better the problem. https://www.dropbox.com/s/6wwbjfpxxibjnl1/9603071652%20-%20XFSTrace.7z?dl=0

When you execute WFSOpen from an application, you set the Logical Service Name you want to open. The XFS Manager will try to find this name in the windows registry, in:

HKEY_USERS/.DEFAULT(OR USER WHO START SESION)/XFS/LOGICAL_SERVICES/.

For each logical service name, there is a registry entry with "provider" variable.

With the value of this "provider" variable, the XFS MANAGER goes to:

HKEY_LOCAL_MACHINE/SOFTWARE/XFS/value_for_this_provider/.

In this folder, the variable "dllname" contails the dll to load for this SPI.

Good luck!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM