webusb / arduino

WebUSB demos running on Arduino (and compatible) hardware.
566 stars 152 forks source link

Microsoft OS 2.0 registry property descriptor #28

Closed oostap1 closed 6 years ago

oostap1 commented 7 years ago

Per MS https://msdn.microsoft.com/en- us/library/windows/hardware/hh450799(v=vs.85).aspx device should create DeviceInterfaceGUIDs. It can be done by driver and, in case of real PnP solution, device should expose MS "Microsoft OS 2.0 registry property descriptor". Such descriptor can insert any record into Windows registry per device/configuration/interface. In our case it will insert "DeviceInterfaceGUIDs" multi string property.

GUID is freshly generated and should be OK to use.

jpliew commented 7 years ago

Hi @oostap1 will you consider adding an option to define the following please?

//bPropertyData: “{975F44D9-0D08-43FD-8B3E-127CA8AFFF9D}”

'{', 0x00, '9', 0x00, '7', 0x00, '5', 0x00, 'F', 0x00, '4', 0x00, '4', 0x00, 'D', 0x00, '9', 0x00, '-', 0x00, '0', 0x00, 'D', 0x00, '0', 0x00, '8', 0x00, '-', 0x00, '4', 0x00, '3', 0x00, 'F', 0x00, 'D', 0x00, '-', 0x00, '8', 0x00, 'B', 0x00, '3', 0x00, 'E', 0x00, '-', 0x00, '1', 0x00, '2', 0x00, '7', 0x00, 'C', 0x00, 'A', 0x00, '8', 0x00, 'A', 0x00, 'F', 0x00, 'F', 0x00, 'F', 0x00, '9', 0x00, 'D', 0x00, '}'

Because the boards.txt has two different boards, Arduino Micro 0x2341:0x8037 Leonardo 0x2341:0x8036

Users that have two boards when selecting the boards in Arduino IDE flashing the demo sketch.ino will get the same GUID if during compile time there is no mechanism to choose the right GUID based on the board selected.

Cheers

alexandr- commented 6 years ago

fixed my issues on chrome under windows 10! Thank you!

reillyeon commented 6 years ago

Thank you for contributing this patch. I'm sorry it took so long for it to get merged.