On Thursday, October 2, 2003, at 08:16 AM, Steve Sisak wrote:
At 8:08 -0700 10/2/03, Kris Daniel wrote:
This happened to me as well. I noticed that if I called
USBDeviceOpen(), or USBInterfaceOpen(), I'd usually get an error on
the first call. Just to be stubborn, I tried calling the open
command again after it failed, and it opened successfully.
I don't have an explanation for it (possibly uninitialized
variable?), it works, so I moved on. At the very least, it's an idea
to try.
It sounds like Classic has control of the device -- retrying
USBDeviceOpen()/USBInterfaceOpen() is part of the procedure for
getting Classic to release a device it has open.
-Steve
Steve,
Re-checking my facts (yes, I should have done this prior to sending my
first message), this is happening to me in the kernel. My apologies
for confusing the userland API with the kernel API. I'm well aware of
the Classic-seizing situation with regard to userland and have been
deploying the Classic-Not-Seize driver.
Classic is not running at the time that I'm experiencing my problem,
however. My problem, if you're curious, is as follows:
I get an IOUSBInterface* for the interface I want, and I call
IOUSBInterface->open(). I get the error:
"IOUSBInterface[..]::handleOpen failing because super::handleOpen
failed (someone already has it open)."
Trying to open the interface a second time, it works successfully.
Now, if Classic isn't running, and no other code of mine is opening the
interface, what's going on?
Kris Daniel
Line 6, Inc.
_______________________________________________
usb mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/usb
Do not post admin requests to the list. They will be ignored.