Ano ta library moze byt tiez dobra.
VID je vendor ID, malo by byt jedinecne vyrobca si to ma kdesi asi registrovat u nejakej organizacie, PID si voli vyrobca sam (product ID). Za normalnych okolnosti sa uz nacitavanie ovladaca (.sys) riadi tymito dvomi vecami, ku kazdemu ovladacu (.sys) je aj .inf subor, v ktorom je napisane ze pre ktore VID a PID ten ovladac patri, a Win ked zdetekuje nove device hlada spravny ovladac ktory ma v .inf tieto hodnoty. Plati aj pre PCI zariadenia atd.
V pripade HID device neviem zhlavy jak Win zisti to, ze ma nacitat HID ovladac, zrejme aj u USB existuje nejake classID podobne jak u PCI, a podla toho Win vie ze to je HID device a ze staci nacitat univerzalny hid ovladac. A nemalo by to byt zavisle na VID a PID. Akurat by si nemal pouzivat nejake VID nejakeho intelu, aby win nenacitaval nejake divne ovladace Principialne ale myslim ze PID mozes menit.
Dalsia vec ktoru urcite mozes menit je ta verzia, podla toho si mozes tiez odlisovat zariadenia, aj ked maju stejne VID a PID. Ta fcia HidD_GetAttributes ti vrati aj verziu (som ti daval link na tu strukturu teraz vyssie). Verziu a aj VID a PID si definujes v tom atmeli v USB stack kode kdesi bude urcite definicia na to. Tieto vsetky 3 jpodnoty vidis aj v spravci zariadeni, obrazok napr tu http://stackoverflow.com/questions/12567023/how-to -know-usb-device-hid-and-pid, si to mozes skontrolovat ze jak sa hlasi ten atmel aj bez aplikacie.