01-23-2009 02:44 AM
Am using LabVIEW 8.6 demo version downloaded from internet and Windows XP 32 bit OS. I developed an application and created an exe which communicates with a USB smart card reader. That exe file works fine with that USB device in Windows XP 32 bit OS.
But, when i used that application exe in Windows XP 64 bit OS, and also in Windows Vista 64 bit OS, the application is not working. The communication with the USB smart card reader is not at all establishing. The USB device will take appropriate 32 bit driver and 64 bit driver automatically when updating on various OSes.
How to resolve this? Shall i have to install any 64 bit drivers for LabVIEW?
Thanks,
Mathan
Solved! Go to Solution.
01-27-2009 07:42 PM
Mathan,
Have you tried installing Visa drivers for Vista? Make sure you install a recent version which has support for Visa 64 bit (http://joule.ni.com/nidu/cds/view/p/id/1071/lang/en) . NI has very limited support for XP 64 bit so you may not be able to do much there.
Amit
01-27-2009 10:01 PM
Dear Amit,
Thanks for the suggestion. I will try that one now and let you know if there are any problems.
Thanks,
Mathan
01-27-2009 10:08 PM
Dear Amit,
I forgot to mention that am not using any VISA functions in my application. My USB device has its own device drivers and in my application am calling the dll using Call Library function node and control the device. Any suggestions?
Thanks,
Mathan
01-28-2009 04:42 AM
Am using a USB Smart Card Reader. The application that i developed just contains establishing communication with the smart card reader. For that am using winscard.dll. Just used 3 functions - scardestablishcontext, scardlistreaders and scardreleasecontext in the mentioned order. The application works fine for Win XP 32 bit, but when run under the Vista 32 bit and Vista 64 bit, the scardestablishcontext function returns a value of 2 instead of 0 (Returning a 0 will indicate pass). In the meantime scardreleasecontext returns a value of 6.
Am struggling with this for two days. Kindly help asap.
Thanks,
Mathan
01-28-2009 10:36 AM
Mathan,
This is more of an MSDN issue! Couple of things you can try
1. Run the build application in elevated mode Vista (Right click and click run as administrator)
2. Check services.msc and make sure the Smart Card service is running.
Let me know.
Amit
01-28-2009 10:11 PM - edited 01-28-2009 10:15 PM
Dear Amit,
Thanks for the attention. I have tried both the option you told, "Run as administrator" and checked "Services" and smart card services are running. Even i tried restarting the device, but the same result. Maybe as you told, this maybe more of an MSDN issue. I don't know how to proceed.
Thanks,
Mathan
[Edit: From somewhere in MSDN forum or others, i tried the below suggestion too, but in vain. Same scenario. I lost myself in VISTA.]
1. Right-click on the key HKLM\SOFTWARE\Microsoft\Cryptography\Calais and select Permissions...
2. Click Add.
3. Click Advanced.
4. Click Locations.
5. Click on the computername and click OK.
6. In the window 'Select user or groups', click on Find now.
7. Select LOCAL SERVICE.
8. Click OK.
9. In the window 'Select user or groups', click on OK.
10. In the window 'Permissions for Calais', click on LOCAL SERVICE and make sure 'Full control' , 'Read' and 'special permissions' is allowed.
11. In the window 'Advance Security Settings for Calais", deactivate the options 'Inherit from parent the permission entries that apply to child objects...'
12. When the window 'Security' appears, click Copy.
13. In the window 'Advance Security Settings for Calais", activate the option 'Replace permission entries on all child objects with entries shown here that apply to child objects' and click OK.
14. In the window 'Security' click Yes
15. In the window 'Permissions for Calais', click OK.
01-29-2009 09:14 AM
Can you check and see what exact error you are getting? i.e.what does the error code returned mean? Based on that you can easily get support on the MSDN forums.
Amit
01-30-2009 04:59 AM
02-02-2009 02:54 AM
Its often the simple thing we miss
Actually, my application developed in WinXP, always took dll from the "data" folder and not from the c:\windows\system32 folder. In Vista Winscard.dll is different from the one in the WinXP. That makes the difference. Now the application works when i manually copied the winscard.dll from system32 directory in WinVista to the application 'data' folder.
Is there anyway to do this without copying? That means, i need the application to load the dll from the system32 directory instead of 'data' folder? Hope i was clear?
Thanks,
Mathan