Solved

How do I open, close, and then reopen a device driver?

Posted on 2009-07-16
5
704 Views
Last Modified: 2013-12-14
I have WinUSB installed as the driver for a USB device and everything seems to work fine the first time I access the device, I can read and write to the device. Once I close the device handles (bResult=WinUsb_Free(myDevInfo.winUsbHandle); and bResult=CloseHandle(myDevInfo.deviceHandle);), run my open routine, which worked the first time, I can not read from the device any more. bResult in both of the above statements returns TRUE, so the resources for WinUSB should have been released. Am I missing something, why can I not open the device, close the device and then open it again? I am writing the code in VC++ 6.0.
0
Comment
Question by:Eric_Braun
5 Comments
 
LVL 86

Expert Comment

by:jkr
ID: 24886284
Are you calling 'WinUsb_Initialize()' (http://msdn.microsoft.com/en-us/library/aa476455.aspx) again after reopening the device?
0
 
LVL 12

Expert Comment

by:trinitrotoluene
ID: 24887845
you need to pass the device interface to the initialize routine...so each time an enumeration has to be done so that you get the list of device interfaces.

Are you doing this in your intialize routine?
0
 

Accepted Solution

by:
Eric_Braun earned 0 total points
ID: 24984525
Sorry for not responding to any of these comments. Everytime I went to view the comments all I would get was a blank screen, think I had a bad cookie or something. Anyways that aside, I have solved this issue, worked around, all though I still am not sure why I had the issue to start with. Yes, I do 'WinUsb_Initialize()' after reopening the device and I do set and read the device interfaces. What I had to do to get this to work was after running WinUsb setup routines, loading the device firmware,  I had to issue a WinUsb_ResetPipe on the IN and OUT pipes. This takes the pipes out of any stall that may have happened, which is what seems to be happening for some reason when the device is reopened, but not the first time it is opened.
Eric
0

Featured Post

Want to promote your upcoming event?

Attending an event? Speaking at a conference? Or exhibiting at a trade show? Easily inform your contacts by using a promotional banner in your email signature. This will ensure your organization’s most important contacts are in the know.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Recently Microsoft released a brand new function called CONCAT. It's supposed to replace its predecessor CONCATENATE. But how does it work? And what's new? In this article, we take a closer look at all of this - we even included an exercise file for…
Today, still in the boom of Apple, PC's and products, nearly 50% of the computer users use Windows as graphical operating systems. If you are among those users who love windows, but are grappling to keep the system's hard drive optimized, then you s…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now