USBデバイスからiSerialNumberを取得するべく悪戦苦闘していた。
kernelのDeviceIoControlで何とか取得することには成功したのだけど、さらに調べてみるとhid.dllにHidD_GetSerialNumberStringという関数があるのを発見。
hid = windll.hid buf = c_ubyte * 0xff buf = buf() print hid.HidD_GetSerialNumberString(handle, byref(buf), 0xff) print buf[0:]
こんな感じでOK。Pythonの場合。バッファは適当。最大128ワイドキャラクタとか書いてあったけど。
HidD_GetSerialNumberString(MSDN)