Discussion:
TSP in 64-bit OS
(too old to reply)
g***@gmail.com
2009-06-10 10:31:48 UTC
Permalink
Hi,

I have a 32-bit TSP and I tried to install the same under 64-
bit OS. It was failed in lineAddProvider API call returning,
LINEERR_OPERATIONFAILED. Could someone tell me how to make my TSP 64-
bit compatible?
Do I need to do porting to 64-bit? Is there any modification to be
done in calling lineAddProvider API.
I tried manually by copying the TSP file under both system32 and
SysWow64 and then call lineAddProvider using TB20 browser. But of no
use.

Please help me to resolve this issue.

Thanks & Regards,
Gomathy
Andreas Marschall [MVP TAPI]
2009-06-10 12:36:56 UTC
Permalink
Post by g***@gmail.com
I have a 32-bit TSP and I tried to install the same under 64-
bit OS. It was failed in lineAddProvider API call returning,
LINEERR_OPERATIONFAILED. Could someone tell me how to make my TSP 64-
bit compatible?
Do I need to do porting to 64-bit? Is there any modification to be
done in calling lineAddProvider API.
I tried manually by copying the TSP file under both system32 and
SysWow64 and then call lineAddProvider using TB20 browser. But of no
use.
Gomathy,
in a 64-bit OS the service hosting TAPISRV (Telephony Service) is 64-bit too.
Hence everything that is loaded by TAPISRV must be 64-bit too,
i.e. all TSPs (and their components).
--
Best Regards
Andreas Marschall
Microsoft MVP for TAPI / Windows SDK / Visual C++
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.
Matthias Moetje [MVP]
2009-06-10 17:47:12 UTC
Permalink
Gomathy,

in addition to Andreas' reply:

On x64 Windows you need to install both versions of your TSP:

in \System32: The 64bit version
in \SysWow64: The 32bit version

The reason behind this is that 32bit applications running on x64 OS
require a 32bit TSP version for things like lineConfigProvider and
other things (actually all TSPUI stuff and also some other functions
like lineMspIdentify).

BUT: The telephony service is always and only 64bit!

It's just that the TAPI2 and TAPI3 client API layers sometimes call
the TSP from within the client application process and it that is
32bit, it must use the 32bit version of your TSP.

Hope this helps :-)

Best regards,

Matthias Moetje
-------------------------------------
TAPI WIKI: http://www.tapi.info
-------------------------------------
TERASENS GmbH
Augustenstraße 24
80333 Munich, GERMANY
-------------------------------------
e-mail: moetje at terasens dot com
www: www.terasens.com
-------------------------------------
Post by g***@gmail.com
Hi,
I have a 32-bit TSP and I tried to install the same under 64-
bit OS. It was failed in lineAddProvider API call returning,
LINEERR_OPERATIONFAILED. Could someone tell me how to make my TSP 64-
bit compatible?
Do I need to do porting to 64-bit? Is there any modification to be
done in calling lineAddProvider API.
I tried manually by copying the TSP file under both system32 and
SysWow64 and then call lineAddProvider using TB20 browser. But of no
use.
Please help me to resolve this issue.
Thanks & Regards,
Gomathy
Ravi Kansangara
2014-06-17 05:10:09 UTC
Permalink
Post by Andreas Marschall [MVP TAPI]
Gomathy,
in \System32: The 64bit version
in \SysWow64: The 32bit version
The reason behind this is that 32bit applications running on x64 OS
require a 32bit TSP version for things like lineConfigProvider and
other things (actually all TSPUI stuff and also some other functions
like lineMspIdentify).
BUT: The telephony service is always and only 64bit!
It's just that the TAPI2 and TAPI3 client API layers sometimes call
the TSP from within the client application process and it that is
32bit, it must use the 32bit version of your TSP.
Hope this helps :-)
Best regards,
Matthias Moetje
-------------------------------------
TAPI WIKI: http://www.tapi.info
-------------------------------------
TERASENS GmbH
Augustenstra�e 24
80333 Munich, GERMANY
-------------------------------------
e-mail: moetje at terasens dot com
www: www.terasens.com
-------------------------------------
Post by g***@gmail.com
Hi,
I have a 32-bit TSP and I tried to install the same under 64-
bit OS. It was failed in lineAddProvider API call returning,
LINEERR_OPERATIONFAILED. Could someone tell me how to make my TSP 64-
bit compatible?
Do I need to do porting to 64-bit? Is there any modification to be
done in calling lineAddProvider API.
I tried manually by copying the TSP file under both system32 and
SysWow64 and then call lineAddProvider using TB20 browser. But of no
use.
Please help me to resolve this issue.
Thanks & Regards,
Gomathy
Hi Matthias Moetje,

I have developed TSP for 32 bit OS & now i want to port it on 64 bit OS.

As per my understanding & your post....

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.

Regarding that I have some confusions.

1. Why TSP UI dll file needs to be put in "C:\Windows\SysWOW64" ?

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 ?

NOTE: As UI dll name is taken from x64 TSP using TSPI function
TSPI_providerUIIdentify that will provide name of x64 UI dll file name.

3. If 32 bit application is using any UI function calls of TSP, should they
not be redirected by WOW64 architecture ?

4. What is the use of "tapi32.dll" presents in "C:\Windows\SysWOW64" as it is
never been loaded by x64 TAPISRV.exe ?

5. What is the use of "Telephone.cpl" presents in "C:\Windows\SysWOW64" as all
x64 TSP (*.tsp) is copied to "C:\Windows\System32" ?

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) ?


In short can you explain me working OR execution flow of x86 TSP & x64 TSP on 64 bit Windows.


Thanks,
Ravi Kansangara
Andreas Marschall [exMVP TAPI]
2014-09-04 12:26:09 UTC
Permalink
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.
Ravi Kansangara
2014-09-10 09:17:02 UTC
Permalink
Post by Andreas Marschall [exMVP TAPI]
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...
- 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
http://www.I-B-A-M.de/Andreas_Marschall's_TAPI_and_TSPI_FAQ.htm
http://www.i-b-a-m.de/Andreas_Marschall's_Toto_Tools.htm
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.
Hi Andreas,

Thank you for your reply.
This helps me to understand the flow of TSP in x64 OS.

Now my both TSP (x86 & x64) are working fine.
Andreas Marschall [exMVP TAPI]
2014-09-10 15:47:26 UTC
Permalink
Post by Ravi Kansangara
Hi Andreas,
Thank you for your reply.
Ravi, you are welocme.
Post by Ravi Kansangara
This helps me to understand the flow of TSP in x64 OS.
Now my both TSP (x86 & x64) are working fine.
Thanks for your feedback :)

Loading...