<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Jason,<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 5, 2015, at 10:25 AM, Jason Kotzin <<a href="mailto:jason@flirc.tv" class="">jason@flirc.tv</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Yes, applied them, and followed up with a compile error.</div></div></blockquote><div><br class=""></div><div>Please see my answer on this at libusb-devel.</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class="">Okay, but I’m still confused. My application does not always run. So they will be prompted with a ‘new device found message’, But when they run my main application and with libusb, that message will disappear, and my device will be hidden. When the app exits, windows will ask for a driver. So is the only benefit something that is running continuously?</div></div></div></blockquote><div><br class=""></div><div>Let me explain…</div><div><br class=""></div><div>Currently UsbDK only active when there is a user mode application that has open UsbDk handles. When such an application exits or closes UsbDk handles system reverts to original state and UsbDk effectively does nothing.</div><div>Rationale behind that is to avoid scenarios when application captures or hides some device, crashes and leaves that device in a state when Windows is unable to recognise it and load in-box drivers. </div><div><br class=""></div><div>While it is perfectly fine for remote USB solutions, your scenario doesn’t look currently covered.</div><div><br class=""></div><div>One possible way to resolve this issue is introduction of additional UsbDk API for setting persistent hide rules stored in registry, so one will be able to set those rules on install and they will exist as long as UsbDk is installed. If setting of those rules requires administrative privileges the risk system end up in an invalid state will be minimised. However there are still concerns because of various misuse and conflict scenarios, especially when there is a number of UsbDk clients installed on the same system. </div><div><br class=""></div><div>I’d suggest to consider installing a null driver for your device (see here: <a href="https://msdn.microsoft.com/en-us/library/windows/hardware/ff547608(v=vs.85).aspx)" class="">https://msdn.microsoft.com/en-us/library/windows/hardware/ff547608(v=vs.85).aspx)</a>.</div><div>If I understand your case correctly this is exactly what you’re looking for. If that is not good enough for some reason let’s discuss another options that involve UsbDk extensions.</div><div><br class=""></div><div>Thanks,</div><div>Dmitry</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Mar 5, 2015, at 12:21 AM, Dmitry Fleytman <<a href="mailto:dmitry@daynix.com" class="">dmitry@daynix.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Hi Jason,</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">On Mar 4, 2015, at 19:42 PM, Jason Kotzin <<a href="mailto:jason@flirc.tv" class="">jason@flirc.tv</a>> wrote:<br class=""><br class="">Hi Dmitry -<span class="Apple-converted-space"> </span><br class=""><br class="">Thanks for getting back to me.<br class=""><br class="">Yes, I understand HID is the way to go, but I have quite a few devices shipped and flashed, so I need to solve this terrible windows problem with these existing devices. But for future stuff, I’m not doing anything other than HID anymore because of windows.<br class=""><br class="">Not sure I understand this:<span class="Apple-converted-space"> </span><br class=""><br class=""><blockquote type="cite" class="">Use hider API, UsbDk_AddHideRule() etc.<br class=""></blockquote><br class=""><br class="">If my installer, installs the msi package for me, am I supposed to run some code afterwards that calls this API (because it’s not exposed in libusb) ?<span class="Apple-converted-space"> </span><br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Yes, this function is not exported by libusb, you’ll need to load UsbDkHelper.dll and call this function from there (see our libusb patches or UsbDkController.exe for sample code).</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class="">Or can I simply use this; UsbDkController.exe -H VID<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Also an option, but much more heavyweight,</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">pay attention that when UsbDkController.exe exits it cleans hide rules, so you’ll need to have it running all the time.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class="">I’m on the developer mailer and don’t see the patches.<br class=""><br class="">Could I trouble you for a copy of these patches as well as the libusb git commit has they intended to be applied to? I’m happy to help test and will even deploy this to several thousand people should this look promising.<span class="Apple-converted-space"> </span><br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">As I understood from mailings on libusb-devel you’ve found patches already, right?</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">~Dmitry.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class="">Thanks Dmitry.<br class=""><br class="">Very Sincerely,<br class="">Jason<br class=""><br class=""><br class=""><br class=""><blockquote type="cite" class="">On Mar 4, 2015, at 5:03 AM, Dmitry Fleytman <<a href="mailto:dmitry@daynix.com" class="">dmitry@daynix.com</a>> wrote:<br class=""><br class="">Hi Jason,<br class=""><br class="">My name is Dmitry Fleytman and I’m author and maintainer of UsbDk.<br class=""><br class=""><blockquote type="cite" class="">On Mar 3, 2015, at 23:36 PM, Jason Kotzin <<a href="mailto:jason@flirc.tv" class="">jason@flirc.tv</a>> wrote:<br class=""><br class="">Spice Developers -<span class="Apple-converted-space"> </span><br class=""><br class="">I have been watching the discussion on the libusb developer mailer and am absolutely intrigued. The number one issue I have my product is with windows usb device handling. Drivers and inf’s do not consistently work and with so many versions of windows and hardware, I have battled issue after issue. I’m at the point now where I’m considering re-writing all my firmware, and all my drivers to use a hid device for windows driverless communication (already started).<br class=""><br class="">UsbDk sounds too good to be true.<br class=""></blockquote><br class=""><br class="">Thanks :)<br class=""><br class=""><blockquote type="cite" class=""><br class="">I’m interested in playing with it, and have read through all the documentation, but am a bit unclear how everything works. Please let me know if this is correct:<br class=""><br class="">1. Instal via msi package (I understand there is an alternative, but this is what I would use)<br class="">2. Ensure I have the libusb backend for UsbDk.<br class="">3. Done, my libusb on windows should now use the UsbDk filter driver.<br class=""><br class="">Is that correct?<br class=""></blockquote><br class="">Yes, exactly.<br class=""><br class=""><blockquote type="cite" class=""><br class="">How do I tell windows not to fire up that ‘new hardware detected’ message. With UsbDkController.exe -r ID sn ?<br class=""></blockquote><br class=""><br class="">Use hider API, UsbDk_AddHideRule() etc.<br class=""><br class=""><blockquote type="cite" class=""><br class="">Where can I find the libusb patches? I’m anxious to try this.<br class=""></blockquote><br class="">I’ve posted patches to libusb-devel a few days ago. Please do not hesitate to send us problem reports if any.<br class=""><br class=""><blockquote type="cite" class=""><br class="">Thanks so much.<br class=""></blockquote><br class="">You’re welcome!<br class=""><br class="">~Dmitry<br class=""><br class="">P.S. While we are very interested to have people use and test UsbDk for different devices and in different scenarios, I must say that driverless HID device scheme is way better and simpler as long as your device functionally covered by HID specification, so maybe you should go that direction even if UsbDk works good for you...<br class=""><br class=""><br class=""><blockquote type="cite" class=""><br class="">Very Sincerely,<br class="">Jason<br class=""><br class="">_______________________________________________<br class="">Spice-devel mailing list<br class=""><a href="mailto:Spice-devel@lists.freedesktop.org" class="">Spice-devel@lists.freedesktop.org</a><br class=""><a href="http://lists.freedesktop.org/mailman/listinfo/spice-devel" class="">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a></blockquote></blockquote></blockquote></div></blockquote></div><br class=""></div></div></div></div></blockquote></div><br class=""></div></body></html>