| 1440 | } |
| 1441 | |
| 1442 | int HID_API_EXPORT_CALL hid_get_serial_number_string(hid_device *dev, wchar_t *string, size_t maxlen) |
| 1443 | { |
| 1444 | if (!string || !maxlen) { |
| 1445 | register_device_error(dev, "Zero buffer/length"); |
| 1446 | return -1; |
| 1447 | } |
| 1448 | |
| 1449 | struct hid_device_info *info = hid_get_device_info(dev); |
| 1450 | if (!info) { |
| 1451 | // hid_get_device_info will have set an error already |
| 1452 | return -1; |
| 1453 | } |
| 1454 | |
| 1455 | wcsncpy(string, info->serial_number, maxlen); |
| 1456 | string[maxlen - 1] = L'\0'; |
| 1457 | |
| 1458 | return 0; |
| 1459 | } |
| 1460 | |
| 1461 | HID_API_EXPORT struct hid_device_info *HID_API_CALL hid_get_device_info(hid_device *dev) { |
| 1462 | if (!dev->device_info) { |