Bạn có thể sử dụng HidD_GetHidGuid để nhận GUID duy nhất cho thiết bị. Các giao diện thiết bị được xác định bởi từng nhà cung cấp phần mềm ứng dụng/thiết bị, Microsoft hoặc bên thứ ba khi họ thấy phù hợp. Trong một số trường hợp, các hướng dẫn được công bố và hiểu biết công khai và là các giao diện chuẩn, trong một số trường hợp chúng không có.
Bạn cũng có thể sử dụng USBView utility từ Microsoft sẽ cho phép bạn duyệt cây USB hoặc bạn có thể tìm trong sổ đăng ký và xem liệu bạn có thể tìm GUID cho thiết bị của mình hay không. Bạn vẫn có thể phải query
thiết bị của mình để xác định loại thiết bị nếu dữ liệu cấu hình không hiện diện hoặc nó không tự tiết lộ ngoài thiết bị chung, nếu thiết bị của bạn hỗ trợ thiết bị này.
Có hai loại GUID: Lớp thiết bị và Giao diện thiết bị. Một thiết bị chỉ có thể là một phần của một lớp. Thật không may, các thiết bị Class và Device Interface GUID đôi khi giống nhau, do đó gây nhầm lẫn cho các nhà phát triển. Trong DDX của WinXP, các tiêu chuẩn được tạo ra để thử và làm cho định nghĩa của GUIDs ít khó hiểu hơn.
Xem thêm này trước SO câu hỏi: Use RegisterDeviceNotification() for ALL USB devices.
Nguồn
2010-01-18 14:28:01
Điều đó có thể hoạt động, nhưng có danh sách GUID ở đâu đó không? GUID sẽ không có ý nghĩa gì với tôi. –
xem chỉnh sửa [15 ký tự] –
PID thiết bị thay đổi trên đầu đọc mã vạch của tôi tùy thuộc vào chế độ cáp USB đang hoạt động. HTH –