I have a custom VID / PID FTDI device that appears in Windows Device Manager with a raw device description rather than the one I've configured in the .inf file. Does anyone recognize this issue?
Related
Is there any way to access an USB device through Firefox on a local computer?
More details: I have created a USB device using microchip 18F2250 that sends data of thermal and humidity sensors & able to receive data to control a robotic arm..
The device has been tested on a C#2010 program to access the USB device successfully..
Now I run a HTML/javascript web page as a local server (http://localhost:8000/..bla bla bla..) & I need to access the USB device from this firefox bowser..
Notes : cannot use Chrome and its plug in WebUSB, I'm restricted to Firefox only for some reasons.
Any help??
I'm developing driver for USB video capture device. First of all, I've started with CoreMediaIO sample:
https://developer.apple.com/library/content/samplecode/CoreMediaIO/Introduction/Intro.html
The kernel extension is based on IOVideoSample. It gets data from the USB device and sends to the assistant. Kext has IOKitPersonalities based on the USB device. So the device is real and should support HotPlug. Kext main class loads when the device is plugged in and unloads when the device is plugged out.
SampleAssistant was changed only to detect my kext class. PlugIn has NoCMIOHardwarePluginLazyLoadingInfo property.
When all video capture apps are closed - hotplug works well. Terminate function is being called from kext and kext object is being unloaded without any problem.
Even if you start video capture app with the stream from the device, then close it and plug out device - hotplug also works.
It works well with QuickTime player. It can find a stream and show an image, but there is one problem.
When QuickTime (or any other video capture app) works and show stream from the device - hotplug doesn't work. If you try to plug out the device it will remain in the system and USB port won't work until you reboot Mac. According to logs - terminate function wasn't called at all. Seems that something retains a link to the device.
I've started digging into the problem.
First of all, I figured out that SampleAssistant doesn't support hotplug by default. It has notification only for device arriving (DeviceArrived). I've added "interest" notification and handle only "kIOMessageSeviceIsTerminated" message - executing DeviceRemoved function and force deleting device object, but it didn't help.
There is also a file CMIO_DPA_Sample_Server_Stream.cpp. If you go to Stream::Start function and delete "mIOSAStream.Open;" and "mIOSAStream.Start();" lines - hotplug works.
Can you please advise what can be done to solve this problem?
I have a USB to serial port device and the associated device driver for Windows (written by someone at work). Is it possible to get the Windows driver for my device to open an html file when the device is connected to computer?
The html file would have a link that runs a Java Webstart application. So the html file would be written out onto disk by the driver when it was installed and whenever the device is plugged in and the driver invoked, it launches the application after the user clicks the link in the browser. This is the easy part.
The hard part is knowing how to get the driver to open the html file. Any help appreciated.
If all you're interesting is manipulating a file, you can use the corresponding kernel APIs. See here for details: http://msdn.microsoft.com/en-us/library/windows/hardware/ff565384(v=vs.85).aspx . Read carefully, there some things to watch out from that do not exist in user mode.
I am developing a audio driver to do some custom audio processing using audio reflector driver sample code from Apple. Output from audio reflector driver is passed to real USB audio hardware device using core audio application. Now I want to hide USB audio hardware device from the system preferences so that user is not able to select the USB audio hardware output device as the default output device. Using the "SampleUSBAudioOverrideDriver" codeless kext I am able to change the name of output interface but not hide it. Any idea on how I will be able to hide USB audio hardware output device.
Thanks in advance.
Vin Pai
After a lof of R&D on this topic, I found that codeless kext provided in the sample code, SampleUSBAudioOverrideDriver doesn't use the property set to hide the device interface.
I am developing an application which does custom audio processing and sends the processed audio to the USB headset. My requirement is that the USB headset should not be visible to the user in the list of Audio output devices in System Preferences. Using "SampleUSBAudioOverrideDriver" code-less kext sample code from Apple, I'm able to change the interface name but I really need to hide it.
Is subclassing AppleUSBAudioDevice an option?
The recommended way to do pre-processing of a USB audio device's input and output streams in kernel space is to use the AppleUSBAudioPlugin API. This kext does not appear in the list of devices because it isn't an instance of IOAudioEngine, so there is no "hiding" involved.