cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
868
Views
0
Helpful
2
Replies

32-bit app with Cisco TSP on 64-bit Windows 10

YannickGuay8913
Level 1
Level 1

Hi Cisco Community,

 

We have implemented Cisco TAPI support into our product.  Everything was working quite nicely however we had to pull the feature last minute due to crash/heap corruption issues when stress testing. 

 

We have a 32-bit application that is running on 64-bit windows with the 64-bit Cisco TSP driver installed.  We have seen references from Microsoft support that this should be a supported scenario for TAPI applications (ie: 32-bit app accessing 64-bit TAPI - https://answers.microsoft.com/en-us/windows/forum/windows_8-networking/ugraded-to-windows-8-now-tapi-does-not-work-no/6d80db30-7bee-4301-aaba-2c7b5cc6cdd6 - see last message on this page from the Microsoft MVP).  However we have also seen references from other Cisco TAPI users of a requirement for the application to be a 64-bit application (https://community.cisco.com/t5/collaboration-documents/cisco-tsp-client-with-windows-2008-r2-64-bit/ta-p/3611848) .  If this is the case, it would be very disappointing to us, as it would mean a large re-architecture of our product to isolate the TAPI related code from the main 32-bit application (that is not easily converted to 64-bit).  32-bit Windows is not an option for us.

 

It is our understanding that some structures used by Cisco (ie: the lineDevSpecific API for example that is expecting a CCiscoLineDevSpecificSetStatusMsgs) do rely on x64 memory size/alignment and won’t work on x86 as is but, despite that, we were able to work around it by providing structures of the equivalent x64 size when compiled in x86.  With this fix the application works great 99% of the time, but we do experience some random crashes, and we are not certain if this could be caused by the fact that our application is 32-bit, using the 64-bit TSP.  

 

Since Microsoft indicates a 32-bit application using 64-bit TAPI is a supported scenario, we are really hoping to get this working with the Cisco TSP.  Do you think this will be possible, or are we running in an unsupported scenario?

 

Thanks.

Yannick Guay

2 Replies 2

dstaudt
Cisco Employee
Cisco Employee

My understanding is that formal testing (and therefore formal support) of 32-bit TAPI apps on 64-bit Windows is not part of the coverage.  You will want to have application/TSP/OS aligned with all 32- or all 64-bit for best results.

 

Have definitely seen developers have some success as long as they avoid the 'devSpecific' functions/structures/events, where its known the 32->64 bit thunk is a problem.  Have not heard of anyone modifying the structures to conform for 64-bit as you describe - that is interesting.  I would be curious to know in what areas and under what circumstances you are experiencing crashes.  Normally the Cisco TSP is extremely stable, so any crashing at all would be pretty worrisome...

 

It's helpful that MS supports 32-bit apps with 64-bit TAPI, and perhaps they can help you resolve the crashing scenarios - however I strongly suspect they will balk if the issues involve the Cisco TSP layer.  And as Cisco does not support 32-on-64, we (DevNet) would not be able to request troubleshooting/fixes from the Cisco TSP dev team :/

 

Perhaps you can encapsulate the TSP functionality into a 64-bit component that offers an API/RPC to your main 32-bit app?  A lot of work surely, but possibly less than a full port...

Thanks for your quick reply.

 

After further investigating and testing, it turns out our crash was not related to 32-bit to 64-bit thunk - it was something else. 

 

As for the 'devSpecific' functions/structures/events, assuming the 32-bit app pass the expected 64-bit structure size, it does seem to work as expected - just thought it was worth mentioning it here.

 

Best Regards,

Yannick Guay.