Tại mức cao nhất, một descriptor bao gồm hai bảng thông tin được tham chiếu tới là descriptor device và descriptor string. Với thiết bị theo chuẩn giao tiếp USB thì descriptor device sẽ chịu trách nhiệm chỉ ra mã số sản phẩm ( product ID) và các thông tin khác về thiết bị đó. Ví dụ, descriptor device có thể bao gồm các trường thông tin cơ bản sau:
• Các thông tin về lớp (Class)
• Các thông tin về phân lớp (Subclass)
• Các thông tin về nhà sản xuất (Vendor)
• Các thông tin về sản phẩm (Product)
• Các thông tin về phiên bản của sản phẩm (Version) Với các thiết bị lớp HID thì hơi có sự khác biệt ở chỗ :
• Kiểu lớp không được định nghĩa tại mức descriptor device của thiết bị. Mà nó sẽ được định nghĩa bởi descriptor interface.
• Trường phân lớp được sử dụng để nhận dạng các thiết bị khởi động .
Trước đây các descriptor được minh họa bằng các sơ đồ các mục dữ liệu được biểu diễn dưới dạng các bảng thông tin. Mỗi bảng thông tin có thể được sử dụng như một khối dữ liệu.Tuy nhiên hiện tại thay vì làm theo cách đó, các descriptor report sẽ bao gồm nhiều đoạn thông tin. Mỗi đoạn thông tin được gọi là một danh mục (item) như hình minh họa dưới đây.
Hình 2.29 Các descriptor report bao gồm các đoạn thông tin là các danh mục Một danh mục là một đoạn thông tin về thiết bị. Tất cả các danh mục đều có một byte đầu tiên để chứa thẻ danh mục, kiểu danh mục, và kích thước danh mục.
Hình 2.30 Cấu trúc một danh mục
Một danh mục có thể bao gồm các dữ liệu tùy chọn của danh mục đó. Kích thước của phần dữ liệu đó được quyết định bởi kiểu cơ sở của danh mục đó. Có hai kiểu danh mục cơ sở là: các danh mục ngắn và các danh mục dài. Nếu là một danh mục ngắn, thì kích thước phần dữ liệu của nó có thể là 0, 1, 2, hoặc 4 byte. Còn nếu là kiểu danh mục dài, thì giá trị tham số bSize luôn luôn là 2. Dưới đây là ví dụ minh họa các giá trị có thể ở bên trong một byte đầu tiên cho một danh mục dài.
Hình 2.31 Ví dụ về một danh mục dài