Bus USB dirancang secara fisik sehingga tindakan memasukkan (dan melepas) colokan dapat dikenali oleh pengontrol host. Ketika peristiwa "colokan" ini terjadi, pengontrol host menginformasikan driver perangkatnya yang memindai bus dan meminta setiap perangkat untuk mengidentifikasi dirinya.
Semua perangkat USB berisi kumpulan informasi tentang perangkat, yang disebut deskriptor. Deskriptor perangkat diambil dari semua perangkat dengan perintah yang sama. Hal ini memungkinkan driver perangkat untuk bus USB itu sendiri secara efektif menanyakan perangkat yang baru terhubung apa itu, dan berharap mendapatkan respons yang masuk akal.
Dari semua deskriptor, hanya beberapa yang secara langsung digunakan untuk mencocokkan driver ke sebagian besar perangkat. Ini karena USB mendefinisikan kelas perangkat, dan biasanya driver sistem untuk setiap kelas perangkat cukup untuk menangani perangkat apa pun yang mengklaim berada di kelas itu.
Semua keyboard akan mengklaim berada di kelas HID (Human Interface), seperti halnya mouse, tablet, dan pengontrol game, misalnya. Kelas HID memiliki beberapa subclass (keyboard, mouse, dll.), Sehingga masing-masing ditangani dengan cara yang diharapkan.
Sebagian besar perangkat seperti disk akan mengklaim berada di kelas Mass Storage, dan driver sistem hanya berfungsi untuk mereka juga.
Selain kelas dan subkelas, deskriptor juga menyertakan ID vendor (VID), ID produk (PID), dan revisi. ID vendor diberikan oleh komite standar (kebanyakan dalam urutan masalah tetapi beberapa perusahaan mendapat permintaan khusus: intel adalah 0x8086, misalnya). ID produk diberikan oleh masing-masing vendor, dan kombinasi VID dan PID harus unik untuk setiap produk yang dirilis.
Ketika perangkat pertama kali diinstal, VID, PID, revisi, kelas dan subkelas digunakan dengan cara yang dapat diprediksi untuk memilih driver perangkat yang dimuat. Memiliki vendor dan nama khusus produk memungkinkan vendor menyesuaikan perangkat yang mungkin ditangani (hampir) dengan benar oleh driver sistem persediaan.
Deskriptor penting lainnya adalah nomor seri perangkat. Jika suatu perangkat memiliki nomor seri, maka itu dapat dikenali dan diperlakukan sama ketika dicolokkan kembali bahkan jika port USB fisik yang berbeda digunakan. Ini penting untuk perangkat penyimpanan sehingga mereka mendapatkan huruf drive yang sama ditetapkan, dan untuk perangkat seperti port serial adapter dan modem sehingga mereka diberi penunjukan port COM yang sama.
Seluruh proses ini didokumentasikan di MSDN , tetapi detailnya tersebar di berbagai tempat.