1. First I have to compile my TSP (*.tsp file & *.dll for TSP UI) for x64 in visual studio.
2. I have to put both files in "C:\Windows\System32" folder.
3. I have to put TSP UI dll compiled with x86 into "C:\Windows\SysWOW64" folder.
4. There is no need of x86 TSP (*.tsp) file in 64 bit OS though 32 bit TAPI application is running on it. As per andreas post TAPI Service is x64 compatible & will always load x64 TSP presents in "C:\Windows\System32".
Correct me if I am wrong.
Ravi,
as Matthias alredy pointed out some TAPI function in 32-bit TAPI-application still require 32-bit TSP/UI componenets. So to get them to work from 32-bit TAPI app you still need to provide bit x86 TUISPI DLL and TSP files.
Please see details below.
Regarding that I have some confusions.
1. Why TSP UI dll file needs to be put in "C:\Windows\SysWOW64" ?
Some TAPI function open a window in the user context.
If the the TAPI app is 32-bit then it is required to load 32-bit TSP/UI components into that x86 process...
E.g. these TAPI functions are affected:
- lineConfigProvider()
- lineConfigDialogEdit()
- lineConfigDialog()
2. If 32 bit application is calling any UI functions like
TUISPI_providerConfing, how application knows the UI dll file name in in "C:\Windows\SysWOW64" that needs to be loaded ?
A TAPI is NEVER calling any TUISPI_ or TSPI_ function directly!
It is e.g. calling lineConfigProvider().
Please note the difference. This is essential for understanding TAPI / TSPI.
TAPISRV is doing the mapping from TAPI to TSPI / TUISPI functions.
For some mapping (please see above) there are still x86 TSP/UI components required for x86 TAPI apps.
3. If 32 bit application is using any UI function calls of TSP, should they not be redirected by WOW64 architecture ?
No, not in general, because TAPISRV is 64-bit on a x64 OS.
Only for special cases (please see above) when a x86-components needs to be diretly loaded into the x86 process of the 32-bit TAPI app this is required.
4. What is the use of "tapi32.dll" presents in "C:\Windows\SysWOW64" as it is never been loaded by x64 TAPISRV.exe ?
It is loaded by x86 TAPI apps.
5. What is the use of "Telephone.cpl" presents in "C:\Windows\SysWOW64" as all x64 TSP (*.tsp) is copied to "C:\Windows\System32" ?
I guess for the lineConfigProvider() support from x86 TAPI apps.
6. Why Some of the inbuilt service providers like Microsoft HID Phone TSP,
Unimodem5 Service Provider etc. are presents in "C:\Windows\System32" (x64) as well as "C:\Windows\SysWOW64" (x86) ?
To support the lineConfigXxx() functions etc. for x86 TAPI apps, as mentioned above.
--
Best Regards
Andreas Marschall
Microsoft MVP for TAPI / Windows SDK
TAPI / TSP Developer and Tester
My TAPI and TSPI FAQ:
http://www.I-B-A-M.de/Andreas_Marschall's_TAPI_and_TSPI_FAQ.htm
My Toto® Tools (a collection of free, mostly TAPI related tools):
http://www.i-b-a-m.de/Andreas_Marschall's_Toto_Tools.htm
TAPI development around the world (Frappr! map):
http://www.frappr.com/TAPIaroundTheWorld
* Please post all messages and replies to the newsgroup so all may
* benefit from the discussion. Private mail is usually not replied to.
* This posting is provided "AS IS" with no warranties, and confers no rights.