You need to declare it as IOUSBDeviceInterface187 (or later) because the structure doesn’t have that function in it until that version.
> On 16 Dec 2014, at 07:21, Carl Hoefs <[email protected]> wrote: > > I’m doing the following: > > IOUSBDeviceInterface **deviceInterface; > > and then > > HRESULT result; > kern_return_t kret; > IOCFPlugInInterface **plugInInterface = NULL; > > kret = IOCreatePlugInInterfaceForService(usbDevice, > kIOUSBDeviceInterfaceID187, > kIOCFPlugInInterfaceID, > &plugInInterface, &score); > > result = (*plugInInterface)->QueryInterface(plugInInterface, > CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID187), > (LPVOID*) &deviceInterface); > > Do I need to declare the IOUSBDeviceInterface differently, or am I out in > left field? > -Carl > > > On Dec 15, 2014, at 3:44 PM, Fernando Urbina <[email protected]> wrote: > >> Are you creating the appropriate IOUSBDeviceInterface? You need to create >> one that matches the version where USBDeviceReEnumerate was intro’d: >> >> kIOUSBDeviceInterfaceID187 >> >> >> >> >>> On Dec 15, 2014, at 3:37 PM, Carl Hoefs <[email protected]> >>> wrote: >>> >>> Thanks for the pointer. Yes, this is from within a user-mode OS X app. I >>> can do everything successfully but call the USBDeviceReEnumerate() function. >>> >>> In a nutshell, I iterate through IOIteratorNext(): >>> If there is a match of vid/pid: >>> invoke IORegistryEntryGetName() >>> invoke IORegistryEntryGetPath() >>> invoke IORegistryEntryCreateCFProperties() >>> invoke IOCreatePlugInInterfaceForService() >>> invoke QueryInterface() to get the device interface >>> (all of the above works successfully) >>> and then try to invoke USBDeviceReEnumerate(), which seems to exist in the >>> Twilight Zone. >>> >>> But Xcode doesn’t resolve the function. I can manually place a function >>> prototype in my code to get it to build, but at runtime, when it invokes >>> USBDeviceReEnumerate(), it crashes with a EXC_BAD_ACCESS due to the >>> function’s unresolved address being 0x00000000. This happens both on 10.9 >>> and 10.10 systems. >>> >>> If there were sample code that actually invoked USBDeviceReEnumerate(), >>> that would be great. Somehow it appears to exist, but just beyond my reach… >>> >>> -Carl >>> >>> >>> On Dec 15, 2014, at 3:10 PM, Fernando Urbina <[email protected]> wrote: >>> >>>> You need to take a look at some of the sample code in order to understand >>>> how to use IOUSBLib.h. This is one of my favorite sample code snippets: >>>> >>>> https://developer.apple.com/library/mac/samplecode/USBPrivateDataSample/Introduction/Intro.html >>>> >>>> >>>> >>>> Woof, >>>> >>>> Nano Urbina >>>> Build Slave >>>> Razz Software >>>> http://www.razzsoftware.com >>>> >>> >> > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Usb mailing list ([email protected]) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/usb/rols%40rols.org > > This email sent to [email protected] _______________________________________________ Do not post admin requests to the list. They will be ignored. Usb mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/usb/archive%40mail-archive.com This email sent to [email protected]
