USB di Windows - FAQ

Topik ini menyajikan pertanyaan yang sering diajukan untuk pengembang driver yang baru mengembangkan dan mengintegrasikan perangkat dan driver USB dengan sistem operasi Windows.

Saya mendengar banyak istilah USB yang dilemparkan sekitar hampir secara bergantian. Apa yang mereka semua berarti?

Katakanlah Anda melihat sesuatu seperti, "Berkat USB 3.0, saya dapat menghubungkan drive jempol USB SuperSpeed ke pengontrol host xHCI PC saya dan menyalin file lebih cepat."

Mari kita pahami istilah USB dalam kalimat itu. USB 3.0, USB 2.0, dan USB 1.0 mengacu pada nomor revisi spesifikasi USB dari Forum Pelaksana USB. Spesifikasi USB menentukan bagaimana PC host dan perangkat USB berkomunikasi satu sama lain.

Nomor versi juga menunjukkan kecepatan transmisi maksimum. Revisi spesifikasi terbaru adalah USB 3.0, yang menentukan kecepatan transmisi maksimum hingga 5 Gbps. USB 1.0 mendefinisikan dua laju data yang berbeda, USB berkecepatan rendah (hingga 1,5 Mbps) dan USB berkecepatan penuh (hingga 12 Mbps). USB 2.0 mendefinisikan laju data baru, USB berkecepatan tinggi (480 Mbps), sambil mempertahankan dukungan untuk perangkat berkecepatan rendah dan penuh. USB 3.0 terus bekerja dengan semua tarif data yang ditentukan sebelumnya. Jika Anda melihat kemasan produk, Usb SuperSpeed mereferensikan perangkat USB 3.0 terbaru. USB Kecepatan Tinggi digunakan untuk menggambarkan perangkat USB 2.0 berkecepatan tinggi. USB, tanpa deskriptor, mengacu pada perangkat kecepatan rendah dan kecepatan penuh.

Selain protokol USB, ada spesifikasi kedua untuk pengontrol host USB, bagian perangkat keras pada PC tempat perangkat terhubung. Spesifikasi Antarmuka Pengontrol Host menentukan bagaimana perangkat keras dan perangkat lunak pengontrol host berinteraksi. EXtensible Host Controller Interface (xHCI) mendefinisikan pengontrol host USB 3.0. Enhanced Host Controller Interface (EHCI) mendefinisikan pengontrol host USB 2.0. Universal Host Controller (UHCI) dan Open Host Controller (OHCI) adalah dua implementasi alternatif dari pengontrol host USB 1.0.

Apakah PC saya memiliki port USB 3.0?

Port USB 3.0 ditandai dengan Logo USB SuperSpeed atau port biasanya berwarna biru.

port dengan logo usb

port usb biru 3.0

PC yang lebih baru memiliki port USB 3.0 dan USB 2.0. Jika Anda ingin perangkat USB SuperSpeed Anda berkinerja pada kecepatan tinggi, temukan port USB 3.0 dan sambungkan perangkat ke port tersebut. Perangkat SuperSpeed yang menghubungkan port USB 2.0, beroperasi dengan kecepatan tinggi.

Anda juga dapat memverifikasi bahwa port tertentu adalah port USB 3.0 di Device Manager. Di Windows Vista atau versi Windows yang lebih baru, buka Manajer Perangkat, dan pilih port dari daftar.

pengontrol host usb di manajer perangkat

Jika Anda memiliki Pengontrol Host yang dapat diperluas, ini mendukung USB 3.0.

Apakah saya perlu menginstal driver untuk pengontrol host eXtensible saya?

Windows 8 dan Windows Server 2012 menyertakan dukungan untuk USB 3.0.

Jika PC memiliki port USB 3.0 dan menjalankan versi Windows yang lebih lama dari Windows 8, driver pengontrol host disediakan oleh produsen PC. Jika Anda perlu menginstal ulang driver tersebut, Anda harus mendapatkannya dari produsen.

Jika Anda menambahkan kartu pengontrol USB 3.0 ke PC yang menjalankan versi Windows yang lebih lama dari Windows 8, Anda harus menginstal driver yang disediakan oleh produsen kartu pengontrol.

Dalam Windows 8, set driver USB 3.0 yang disediakan Microsoft (tumpukan driver USB) berfungsi dengan sebagian besar pengontrol host. Tumpukan driver Microsoft USB 3.0 tidak berfungsi dengan pengontrol Fresco Logic FL1000. Untuk menentukan apakah Anda memiliki pengontrol FL1000, buka Device Manager dan perluas pengontrol Universal Serial Bus. Lihat properti pengontrol dengan memilih dan menahan (atau mengklik kanan) simpul pengontrol. Pada tab Detail , pilih properti Id Perangkat Keras dalam daftar. Jika ID perangkat keras dimulai dengan PCI\VEN_1B73&DEV_1000, itu adalah FL1000. Untuk pengontrol tersebut, unduh dan instal driver dari PC atau produsen kartu pengontrol Anda.

Mengapa saya melihat beberapa pengontrol host pada sistem saya?

Selain perangkat USB yang Anda sambungkan ke PC, ada sejumlah perangkat yang terintegrasi dalam PC yang mungkin terhubung melalui USB, seperti webcam, pembaca sidik jari, pembaca Kartu SD. Untuk menghubungkan semua perangkat tersebut dan masih menyediakan port USB eksternal, PC mendukung beberapa pengontrol host USB.

Pengontrol host USB 3.0 xHCI sepenuhnya kompatibel dengan semua kecepatan perangkat USB, SuperSpeed, kecepatan tinggi, kecepatan penuh, dan kecepatan rendah. Anda dapat menghubungkan perangkat apa pun langsung ke pengontrol xHCI dan mengharapkan perangkat tersebut berfungsi. Untuk pengontrol EHCI, itu tidak terjadi. Meskipun spesifikasi USB 2.0 mendukung semua kecepatan perangkat, pengontrol EHCI hanya mendukung perangkat USB berkecepatan tinggi. Agar perangkat USB kecepatan penuh dan kecepatan rendah berfungsi, perangkat harus terhubung ke pengontrol EHCI melalui hub USB 2.0, atau harus terhubung ke PENGONTROL UHCI atau OHCI.

Untuk PC yang lebih baru, sebagian besar port USB 2.0 yang diekspos oleh PC berada di hilir hub USB 2.0. Hub ini tersambung ke pengontrol EHCI. Ini memungkinkan port USB 2.0 PC berfungsi dengan semua kecepatan perangkat. Perangkat SuperSpeed bereaksi sebagai perangkat berkecepatan tinggi saat terhubung ke port 2.0.

Setelah spesifikasi USB 2.0 dirilis, PC menggunakan kombinasi pengontrol host untuk mendukung semua kecepatan perangkat. Satu port USB 2.0 akan ditransfer ke dua pengontrol host, pengontrol host EHCI dan pengontrol host UHCI atau OHCI. Saat Anda melampirkan perangkat, perangkat keras secara dinamis merutekan koneksi ke salah satu dari dua host. Rutinitas tergantung pada kecepatan perangkat.

Mengapa saya melihat dua hub di Device Manager ketika saya hanya menyambungkan satu hub USB 3.0?

Meskipun pengontrol host xHCI berfungsi dengan kecepatan perangkat apa pun, hub SuperSpeed hanya berfungsi dengan perangkat SuperSpeed. Untuk memastikan bahwa hub USB 3.0 dapat bekerja dengan semua kecepatan, hub tersebut memiliki dua bagian: hub SuperSpeed dan hub USB 2.0. Hub USB 3.0 dapat mendukung semua kecepatan dengan merutekan perangkat secara dinamis, ke hub SuperSpeed atau hub 2.0, berdasarkan kecepatan perangkat.

Buka Manajer Perangkat, lihat Perangkat berdasarkan koneksi, lalu temukan Pengontrol Host yang dapat diperluas. Saat Anda menyambungkan satu hub USB 3.0 ke port USB 3.0 Anda, ada dua hub di hilir Hub Akar pengontrol.

hub usb 3.0 di manajer perangkat

Dalam contoh di bawah ini, perangkat penyimpanan USB SuperSpeed dan perangkat USB Audio keduanya terhubung ke hub USB 3.0. Anda dapat melihat perangkat penyimpanan berada di hilir hub SuperSpeed dan perangkat audio berada di hilir hub USB 2.0.

hub usb 3.0 dengan perangkat yang terhubung di manajer perangkat

Set driver mana yang dimuat untuk perangkat yang tersambung ke port 2.0?

Sekumpulan biner yang berbeda dimuat untuk setiap jenis pengontrol host. Penting untuk dipahami bahwa tumpukan driver USB yang dimuat Windows berkorelasi dengan jenis pengontrol host, bukan dengan kecepatan perangkat yang terhubung.

Dalam gambar ini, Anda dapat melihat driver mana yang dimuat untuk setiap jenis pengontrol host USB yang berbeda.

tumpukan driver usb di windows 8

Jika port USB 3.0 dirutekan dengan benar ke pengontrol xHCI, Windows memuat tumpukan driver xHCI (juga disebut sebagai tumpukan driver USB 3.0).

Jika port USB 2.0 terhubung ke pengontrol EHCI melalui hub USB 2.0, lalu lintas bergerak melalui pengontrol EHCI, dan tumpukan driver USB 2.0 dimuat.

Untuk informasi selengkapnya tentang driver di tumpukan driver USB, lihat Driver sisi host USB di Windows.

Jika port USB 2.0 PC menggunakan pengontrol pendamping, pengontrol host tempat port dirutekan tergantung pada kecepatan perangkat. Misalnya, perangkat berkecepatan rendah terhubung melalui UHCI atau pengontrol OHCI, dan menggunakan driver USBUHCI atau USBOHCI. PC merutekan perangkat berkecepatan tinggi ke pengontrol EHCI, oleh karena itu, Windows menggunakan driver USBEHCI.

Kecepatan perangkat yang berbeda tidak menentukan driver yang dimuat untuk pengontrol. Namun, kecepatan perangkat yang berbeda dapat menentukan pengontrol mana yang digunakan. Pengontrol selalu menggunakan driver yang sama.

Bagaimana cara menentukan apakah perangkat USB 3.0 saya beroperasi sebagai SuperSpeed?

Di Windows 8, pertama, pastikan Anda memiliki port USB 3.0 dan pengontrol host xHCI. Jika perangkat USB SuperSpeed Anda terhubung ke pengontrol host xHCI, Windows 8 menunjukkan pesan "Tersambung ke USB 3.0" di bagian tertentu dari UI Windows 8. Jika perangkat terhubung ke pengontrol EHCI alih-alih pengontrol XHCI Anda, pesan akan dibaca, "Perangkat dapat berkinerja lebih cepat saat terhubung ke USB 3.0".

Anda dapat melihat pesan UI ini di Pengaturan PC.

  1. Buka Bilah Tombol (Seret kursor ke pojok kanan atas atau bawah layar, ketik Tombol Windows + C, atau geser dari kanan dengan jari Anda).
  2. Pilih Pengaturan lalu Ubah pengaturan PC.
  3. Pilih Perangkat di bawah Pengaturan PC.

Gambar ini menunjukkan pesan UI ketika perangkat USB 3.0 beroperasi di SuperSpeed.

Cuplikan layar yang memperlihatkan

Gambar ini menunjukkan pesan UI ketika perangkat USB beroperasi pada kecepatan bus yang lebih rendah dari SuperSpeed.

Cuplikan layar yang memperlihatkan

Anda dapat melihat pesan serupa di Perangkat dan Printer, seperti yang ditunjukkan pada gambar-gambar ini.

Cuplikan layar yang memperlihatkan

perangkat superspeed beroperasi dengan kecepatan tinggi

Jika perangkat USB 3.0 adalah perangkat penyimpanan, Windows Explorer menampilkan pesan serupa saat label volume dipilih, seperti yang ditunjukkan di bawah ini. Perhatikan bahwa panel Tampilan -> Detail harus dipilih agar pesan terlihat.

Cuplikan layar yang memperlihatkan perangkat U S B superspeed yang dipilih di

perangkat usb superspeed beroperasi pada kecepatan tinggi

Jika Anda menulis driver perangkat, alat USBView , yang disertakan dalam Windows Driver Kit (WDK), sangat berguna. Untuk Windows 8 WDK, Microsoft memperbarui USBView untuk menampilkan informasi USB SuperSpeed. Anda dapat menggunakan alat ini untuk menentukan apakah perangkat Anda beroperasi di SuperSpeed atau tidak. Gambar ini menunjukkan perangkat USB 3.0 yang beroperasi di SuperSpeed di USBView.

perangkat usb superspeed yang beroperasi pada superspeed

Jika Anda adalah pengembang driver perangkat, tumpukan driver USB mengekspos IOCTL baru yang disebut IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2, yang dapat Anda gunakan untuk mengkueri informasi kecepatan untuk perangkat USB 3.0.

Mengapa perangkat USB SuperSpeed saya tidak lebih cepat daripada perangkat USB berkecepatan tinggi yang setara?

Umumnya, jika perangkat USB 3.0 USB tidak lebih cepat daripada perangkat USB berkecepatan tinggi, perangkat ini tidak tampil di SuperSpeed. Jika perangkat USB SuperSpeed terhubung ke port USB 3.0, perangkat mungkin tidak beroperasi di SuperSpeed karena alasan berikut:

  • Anda menggunakan hub USB 2.0.

    Jika Anda menggunakan hub, verifikasi bahwa hub tersebut adalah hub USB 3.0. Jika Anda menggunakan hub USB 2.0, perangkat USB SuperSpeed apa pun yang terpasang akan beroperasi dengan kecepatan tinggi. Ganti hub dengan hub USB 3.0, atau sambungkan perangkat langsung ke port USB 3.0.

  • Firmware di hub USB 3.0 sudah kedaluarsa.

    Hub USB 3.0 tertentu sebelumnya tidak berfungsi dengan baik. Akibatnya, Windows hanya menggunakan bagian 2.0 dari hub tersebut. Jika Manajer Perangkat menunjukkan hub "Non Fungsi" seperti yang ditunjukkan pada gambar ini, Windows 8 tidak menggunakan bagian 3.0 hub Anda.

    hub usb superspeed non-fungsi

    Anda dapat menghubungkan perangkat SuperSpeed langsung ke port USB 3.0, atau memperbarui firmware di hub Anda. Windows 8 mengenali hub yang memiliki firmware yang lebih baru.

  • Perangkat terhubung dengan kabel USB 2.0.

    Pastikan kabel yang digunakan untuk menyambungkan perangkat adalah kabel USB 3.0. Ada kemungkinan juga bahwa kabel USB 3.0 memiliki masalah integritas sinyal. Dalam hal ini, perangkat mungkin beralih ke kecepatan tinggi. Jika itu terjadi, Anda harus menggunakan kabel USB 3.0 yang berbeda.

  • Firmware pada perangkat sudah kedaluarsa.

    Perbarui firmware untuk perangkat USB SuperSpeed dengan mendapatkan versi terbaru dari situs web produsen. Beberapa produsen perangkat USB SuperSpeed merilis perbaikan, untuk bug yang ditemukan di perangkat, sebagai pembaruan firmware.

  • Firmware pada pengontrol host sudah kedaluarsa.

    Perbarui firmware untuk pengontrol USB 3.0 dengan mendapatkan versi terbaru dari situs produsen PC Anda atau dari situs produsen kartu tambahan Anda. Beberapa produsen pengontrol USB 3.0 merilis perbaikan, untuk bug yang ditemukan di pengontrol, sebagai pembaruan firmware.

  • BIOS untuk sistem Anda sudah kedaluarsa.

    Perbarui BIOS untuk sistem Anda dengan mendapatkan versi terbaru dari pembuat PC Anda. Pada beberapa motherboard, BIOS dapat salah merutekan perangkat yang terhubung ke pengontrol host xHCI ke pengontrol EHCI. Perutean yang salah memaksa perangkat USB SuperSpeed untuk beroperasi dengan kecepatan tinggi. Pembaruan BIOS dapat memperbaiki masalah ini.

Apakah mungkin untuk memiliki komposit dan perangkat senyawa dalam satu perangkat keras?

Ya. Microsoft Natural Keyboard Pro, yang memiliki hub bertenaga bus tiga port, adalah contoh perangkat USB komposit senyawa. Perangkat memiliki perangkat komposit yang terpasang pada port 1. Dua port tambahan diekspos ke pengguna akhir.

Perangkat yang terpasang pada port 1 adalah perangkat komposit berkecepatan rendah. Perangkat ini memiliki dua antarmuka, yang keduanya mematuhi definisi kelas perangkat standar USB untuk perangkat antarmuka manusia (HID). Perangkat komposit menyediakan dua antarmuka HID alih-alih multipleks semua koleksi melalui satu antarmuka HID dengan menggunakan koleksi tingkat atas. Desain ini dipilih untuk kompatibilitas dengan BIOS yang lebih lama.

Mengapa beberapa perangkat USB saya diinstal ulang ketika dipindahkan ke port baru?

Di Windows 2000 dan sistem operasi yang lebih baru, objek perangkat fisik (PDO) baru dibuat ketika perangkat USB dipindahkan dari satu port ke port lainnya. Jika perangkat keras melaporkan nomor seri USB yang unik, PDO baru tidak dibuat.

Untuk menggunakan kembali PDO yang sama dan untuk memastikan bahwa pengalaman perangkat tidak berubah apakah perangkat dimasukkan kembali ke port yang sama atau port baru, vendor perangkat keras harus menyimpan nomor seri di perangkat mereka. Menurut persyaratan Program Sertifikasi Perangkat Keras Windows, nomor seri harus unik untuk semua perangkat yang berbagi pengidentifikasi penginstalan perangkat.

Apakah ada daftar rekomendasi desain untuk kemasan produk USB?

USB-IF telah bekerja sama dengan Microsoft dan perusahaan anggota USB-IF lainnya untuk mengembangkan daftar rekomendasi bagi vendor perangkat keras independen untuk disertakan dalam kemasan mereka.

Informasi lebih lanjut tersedia di situs Web USB.

Untuk USB Hi-Speed dan SuperSpeed, lihat: https://www.usb.org/.

Apakah saya harus menulis ulang driver klien saya untuk mendukung perangkat USB 3.0?

Semua driver klien yang ada harus terus berfungsi, apa adanya, ketika perangkat rendah, penuh, atau berkecepatan tinggi terhubung ke port USB 3.0. Dalam Windows 8, kami telah memastikan kompatibilitas dengan driver klien yang ada.

Tumpukan driver USB 3.0 mempertahankan tingkat IRQL, konteks pemanggil, dan status kesalahan; coba lagi frekuensi dan waktu saat berinteraksi dengan perangkat, dan lainnya untuk memastikan driver yang ada terus berfungsi. Masih sangat penting untuk diuji.

Kegagalan umum terjadi karena:

  • Penguraian deskriptor titik akhir driver berhenti karena adanya deskriptor pendamping titik akhir SuperSpeed.
  • Karena peningkatan kecepatan, Anda mungkin mengalami masalah waktu di tingkat protokol aplikasi.
  • Ukuran paket maksimum yang didukung oleh titik akhir mungkin berbeda.
  • Karena manajemen daya fungsi, waktu untuk operasi penangguhan selektif mungkin berbeda.

Di Windows 7 dan versi sistem operasi yang lebih lama, tumpukan driver USB 3.0 disediakan oleh pihak ketiga. Oleh karena itu, kami sangat menyarankan Anda menguji driver Anda untuk bekerja dengan tumpukan driver USB pihak ketiga.

Driver klien baru di Windows 8 untuk perangkat USB Kecepatan Tinggi dan SuperSpeed harus memilih kemampuan baru.

Driver mana yang dimuat untuk penggunaan perangkat penyimpanan SuperSpeed saya, Uaspstor.sys atau Usbstor.sys?

Protokol USB Attached SCSI (UAS) adalah protokol penyimpanan massal baru yang dirancang untuk meningkatkan performa melalui protokol penyimpanan massal USB yang ditetapkan, Bulk-Only-Transport (BOT). Ini melakukannya dengan mengurangi overhead protokol, mendukung antrean perintah asli SATA (NCQ) dan dengan memproses beberapa perintah secara paralel. Untuk melakukan ini, UAS menggunakan fitur USB 3.0 baru untuk transfer massal yang disebut aliran.

Driver penyimpanan massal yang ada, Usbstor.sys, menggunakan protokol BOT. Ini berfungsi dengan semua kecepatan perangkat, termasuk perangkat USB SuperSpeed.

Untuk Windows 8, Microsoft menyertakan driver kelas penyimpanan massal baru, Uaspstor.sys yang menggunakan protokol UAS. Karena aliran baru untuk USB 3.0, jadi Uaspstor.sys hanya dapat menggunakan aliran ketika perangkat keras mendukung aliran (perangkat USB SuperSpeed terhubung ke pengontrol host xHCI). Driver juga mencakup dukungan untuk aliran perangkat lunak, sehingga juga dapat memuat untuk perangkat yang beroperasi dengan kecepatan tinggi, terlepas dari jenis host.

Jika Anda menyambungkan perangkat penyimpanan massal ke Windows 8 dan perangkat tersebut mendukung UAS, Windows memuat Uaspstor.sys. Dalam beberapa kasus, mungkin ada masalah yang diketahui dengan aliran perangkat keras pada pengontrol host xHCI tertentu atau masalah yang diketahui dengan implementasi protokol UAS perangkat. Dalam kasus tersebut, Windows kembali ke protokol BOT dan memuat driver Usbstor.sys sebagai gantinya.

Uaspstor.sys baru Windows 8. Ini tidak ada di versi Windows yang lebih lama.

Kelas USB DWG mana yang didukung Microsoft?

Windows mendukung beberapa kelas USB yang telah ditentukan oleh USB Device Working Group (DWG). Untuk daftar spesifikasi kelas USB dan kode kelas saat ini, kunjungi situs Web USB DWG di https://www.usb.org/documents.

Tabel ini menyoroti kelas USB DWG yang didukung di Windows dan juga mengidentifikasi versi Windows yang mendukung setiap kelas.

Spesifikasi Kelas Kode bDeviceClass Nama Driver Dukungan Windows
Kelas Bluetooth 0xE0 Bthusb.sys Windows XP dan yang lebih baru
Perangkat antarmuka chip/kartu pintar (CCID) 0x0B Usbccid.sys

Windows Server 2008 dan yang lebih baru

Windows Vista dan yang lebih baru

Windows Server 2003

Windows XP

Windows 2000

Kelas hub 0x09 Usbhub.sys

Windows Server 2003 dan yang lebih baru

Windows XP dan yang lebih baru

Windows 2000 dan yang lebih baru

Perangkat antarmuka manusia (HID) 0x03 Hidusb.sys

Windows Server 2003 dan yang lebih baru

Windows XP dan yang lebih baru

Windows 2000 dan yang lebih baru

Kelas penyimpanan massal (MSC) 0x08 Usbstor.sys

Windows Server 2003 dan yang lebih baru

Windows XP dan yang lebih baru

Windows 2000 dan yang lebih baru

USB Terpasang SCSI (UAS) 0x08 Uaspstor.sys

Windows Server 2012

Windows 8

Kelas pencetakan 0x07 Usbprint.sys

Windows Server 2003 dan yang lebih baru

Windows XP dan yang lebih baru

Windows 2000 dan yang lebih baru

Pemindaian/pencitraan (PTP) 0x06

WpdUsb.sys

Usbscan.sys

Windows Server 2003 dan yang lebih baru

Windows XP dan yang lebih baru

Windows 2000 dan yang lebih baru

Transfer Media (MTP) 0x06 WpdUsb.sys

Windows Server 2003 dan yang lebih baru

Windows XP dan yang lebih baru

Kelas Audio USB 0x01 Usbaudio.sys

Windows Server 2003 dan yang lebih baru

Windows XP dan yang lebih baru

Windows 2000 dan yang lebih baru

Kelas modem (CDC) 0x02 Usbser.sys

Windows Server 2003 dan yang lebih baru

Windows XP dan yang lebih baru

Windows 2000 dan yang lebih baru

Kelas video (UVC) 0x0E Usbvideo.sys

Windows Vista dan yang lebih baru

Windows XP

*Instruksi khusus diperlukan untuk memuat driver ini karena driver ini mungkin telah dirilis lebih lambat dari sistem operasi. Driver kelas Windows mungkin tidak mendukung semua fitur yang dijelaskan dalam spesifikasi kelas DWG. Dalam hal ini, driver tidak memuat berdasarkan kecocokan kelas. Untuk detail tambahan tentang fitur yang diimplementasikan dalam spesifikasi kelas, lihat dokumentasi WDK.

Kelas penyiapan perangkat mana yang harus saya gunakan untuk perangkat USB kustom?

Microsoft menyediakan kelas penyiapan yang ditentukan sistem untuk sebagian besar jenis perangkat. GUID kelas penyiapan yang ditentukan sistem didefinisikan dalam Devguid.h. Untuk informasi tambahan, lihat WDK. Untuk daftar GUID kelas Windows, lihat topik berikut:

Vendor perangkat keras independen harus menggunakan kelas penyiapan yang terkait dengan jenis perangkat USB, bukan dengan jenis bus. Jika Anda mengembangkan jenis perangkat yang microsoftnya belum menyediakan GUID kelas yang ada, Anda dapat menentukan kelas penyiapan perangkat baru.

Dalam Windows 8, kelas penyiapan baru telah ditentukan, bernama USBDevice (ClassGuid = {88BAE032-5A81-49f0-BC3D-A4FF138216D6}). Jika Anda mengembangkan jenis perangkat, kaitkan perangkat Anda dengan USBDevice alih-alih kelas penyiapan, USB. Kelas USBDevice berfungsi pada Windows Vista dan versi sistem operasi yang lebih baru.

Usb kelas penyiapan (ClassGuid = {36fc9e60-c465-11cf-8056-444553540000}) hanya disediakan untuk pengontrol host USB dan hub USB, dan tidak boleh digunakan untuk kategori perangkat lain. Menggunakan kelas penyetelan ini dengan tidak benar dapat menyebabkan driver perangkat gagal dalam pengujian logo Windows.

Mengapa CPU saya tidak akan memasukkan C3 saat saya melampirkan beberapa perangkat USB?

Ketika perangkat USB terhubung, pengontrol host USB melakukan polling penjadwal bingkai, yang merupakan operasi master bus akses memori langsung (DMA). "Hentikan peristiwa" seperti lalu lintas master bus, gangguan, atau beberapa aktivitas sistem lainnya memindahkan CPU dari C3 karena, menurut definisi, cache CPU tidak dapat diintip saat berada di C3.

Ada dua cara untuk mengatasi masalah ini:

  • Penghapusan perangkat keras.

    Terkadang, perangkat keras dapat terputus secara elektronik dari Universal Serial Bus. Misalnya, ketika media penyimpanan dihapus dari pembaca USB, pembaca USB dapat meniru pemutusan sambungan elektronik dan menyambungkan kembali ketika media diinserksi ulang. Dalam hal ini, transisi C3 dapat terjadi karena tidak ada perangkat USB yang ada di pengontrol host.

  • Penangguhan Selektif.

    Satu-satunya alternatif yang tersedia di Windows XP dan sistem operasi yang lebih baru adalah mendukung USB Selective Suspend. Fitur ini memungkinkan driver menangguhkan perangkat USB yang dikontrolnya ketika perangkat diam, meskipun sistem itu sendiri tetap dalam status daya operasional penuh (S0). Suspensi Selektif sangat kuat jika semua driver fungsi USB mendukungnya. Jika bahkan satu driver tidak mendukungnya, CPU tidak dapat memasukkan C3. Untuk informasi tambahan tentang Penangguhan Selektif, lihat WDK.

Driver kelas USB mana yang mendukung Selective Suspend?

Berikut ini adalah daftar driver kelas USB di Windows 8 yang mendukung Selective Suspend:

  • Bluetooth

    Pengandar ini dapat menangguhkan perangkat secara selektif pada komputer yang menjalankan Windows XP Service Pack 2 dan versi Windows yang lebih baru. Driver memerlukan radio Bluetooth untuk mengatur bit bangun sendiri dan jarak jauh dalam deskriptor konfigurasi. Driver secara selektif menangguhkan (D2) radio Bluetooth ketika tidak ada koneksi Bluetooth aktif.

  • USB HID

    Driver ini dapat secara selektif menangguhkan perangkat HID. Anda bertanggung jawab untuk memicu sinyal bangun jarak jauh pada semua perubahan status perangkat. Untuk mengaktifkan Suspensi Selektif di tumpukan HID, nilai registri SelectiveSuspendEnabled harus diaktifkan untuk VID+PID tertentu dari perangkat. Misalnya, lihat Input.inf.

    Pada sistem yang mendukung Connected Standby Windows 8, driver ini memasuki suspensi selektif (D2) ketika sistem berada dalam Connected Standby. Driver ini dapat membangunkan sistem dan menyalakan layar.

  • USB Hub

    Driver ini dapat secara selektif menangguhkan hub akar atau eksternal ketika tidak ada perangkat yang terpasang padanya atau ketika semua perangkat yang terpasang ke hub tersebut dapat ditangguhkan secara selektif.

  • USB Modem

    Pengandar ini dapat menangguhkan perangkat secara selektif ketika tidak ada koneksi modem aktif.

  • Penyimpanan USB (BOT)

    Driver ini dapat secara selektif menangguhkan (D3) perangkat penyimpanan pada sistem yang mendukung Windows 8 Connected Standby, ketika sistem tersebut masuk ke Connected Standby. Seperti HID, ada penimpaan registri untuk memungkinkan penangguhan selektif pada semua sistem Windows 8.

  • Penyimpanan USB (UAS)

    Driver ini dapat secara selektif menangguhkan (D3) perangkat penyimpanan saat menganggur untuk periode batas waktu disk.

  • USB Video

    Driver ini dapat secara selektif menangguhkan (D3) webcam pada Windows Vista dan sistem operasi yang lebih baru.

  • USB Audio

    Driver ini dapat secara selektif menangguhkan (D3) perangkat audio USB pada Windows 7 dan sistem operasi yang lebih baru ketika komputer menggunakan daya baterai.

  • USB Komposit

    Driver ini dapat secara selektif menangguhkan (D3) perangkat komposit ketika semua anak dalam penangguhan. Pada sistem yang mendukung D3-Cold, semua anak harus memilih D3-Cold.

  • Kartu Pintar USB

    Driver ini dapat secara selektif menangguhkan (D2) perangkat antarmuka Kartu Pintar secara default di Windows 7 dan sistem operasi yang lebih baru.

  • Periferal USB Generik (WinUSB)

    Pengandar ini dapat secara selektif menangguhkan perangkat (D3) secara default pada Windows Vista dan sistem operasi yang lebih baru.

  • WWAN: Dongle 3G atau WiMax

    Driver ini dapat menangguhkan perangkat secara selektif. Ketika ada langganan aktif, perangkat memasuki D2, tanpa langganan aktif, perangkat memasuki D3.

Mengapa perangkat USB tidak dapat membangkitkan Windows dari S3?

Perangkat USB tidak dapat membangkitkan Windows dari S3 karena beberapa alasan, termasuk hal berikut:

  1. BIOS salah.

    Verifikasi bahwa BIOS terbaru diinstal pada komputer. Untuk mendapatkan revisi BIOS terbaru untuk komputer, kunjungi situs Web OEM atau ODM.

  2. BIOS yang tidak diaktifkan untuk bangun.

    Beberapa BIOS memungkinkan untuk menonaktifkan bangun dari S3 dan S4. Verifikasi bahwa BIOS diaktifkan untuk bangun dari S3.

  3. Kunci registri USBBIOSx tidak diatur.

    Penginstalan Windows XP yang bersih tidak memiliki kunci registri USBBIOSx. Jika OEM atau ODM memvalidasi bahwa BIOS dapat bangun dari S3, atur kunci registri ini ke 0x00 dan hidupkan ulang komputer.

  4. Pengontrol Host tidak memiliki daya dalam S3 atau S4.

    Sering kali PC memotong daya ke kartu add-in ketika PC dalam keadaan daya yang lebih rendah. Jika kartu add-in tidak memiliki daya, kartu tersebut tidak akan dapat mendeteksi peristiwa bangun, dan tidak akan dapat membangunkan PC.

Untuk informasi tambahan, lihat pemecah masalah USB di Pusat Bantuan dan Dukungan di Windows XP dan versi Windows yang lebih baru.

Apakah saya perlu menginstal driver untuk pengontrol host yang ditingkatkan (USB 2.0)?

Versi Windows berikut mendukung pengontrol host USB 2.0 yang disempurnakan:

  • Windows Vista dan yang lebih baru
  • Windows Server 2003 dan yang lebih baru
  • Windows XP Service Pack 1
  • Windows 2000 Paket Layanan 4

Catatan Karena Windows 2000 dan Windows XP dirilis sebelum perangkat keras USB 2.0 tersedia, driver dirilis untuk sistem operasi tersebut dalam paket layanan. Untuk menginstal driver:

  1. Ikuti prosedur yang dijelaskan dalam jawaban atas pertanyaan pertama untuk memverifikasi bahwa komputer Anda memiliki port USB 2.0 dan bahwa Anda perlu menginstal driver untuk pengontrol host yang ditingkatkan.

  2. Di jendela Manajer Perangkat, perluas bagian Perangkat Lain seperti yang dijelaskan dalam pertanyaan pertama, lalu klik dua kali Pengontrol Universal Serial Bus (USB).

  3. Pada tab Umum dari kotak dialog Properti, pilih Instal Ulang Driver.

    instal ulang driver

  4. Di Wizard Tambahkan Perangkat Keras Baru, pilih Instal perangkat lunak secara otomatis (Disarankan) , lalu pilih Berikutnya. Lanjutkan dengan wizard, menerima semua opsi default, hingga Anda mencapai halaman terakhir wizard, lalu pilih Selesai. Anda mungkin diharuskan memulai-ulang komputer untuk menyelesaikan penginstalan.

Catatan Untuk memastikan bahwa Anda memiliki pembaruan terbaru yang terinstal di komputer Anda, kunjungi Windows Update secara teratur.

Dapatkah saya menonaktifkan pemberitahuan "Perangkat USB HI-SPEED yang dicolokkan ke port USB non-HI-SPEED"?

Windows XP dan versi Windows yang lebih baru membuat pemberitahuan pop-up ketika perangkat USB Hi-Speed dicolokkan ke port USB yang tidak mendukung kecepatan tinggi. Untuk mendapatkan performa tercepat dari perangkat, pengguna harus memilih pemberitahuan dan mengikuti instruksi di layar.

Untuk menonaktifkan pemberitahuan, ikuti langkah-langkah berikut:

  1. Mulai Manajer Perangkat, seperti yang dijelaskan dalam pertanyaan pertama dalam FAQ ini.
  2. Di jendela Manajer Perangkat, perluas simpul pengontrol Universal Serial Bus . Cari pengontrol host dengan kata "Universal" atau "Buka" dalam judul. Jika Anda menemukannya, klik dua kali.
  3. Pada tab Tingkat Lanjut dari kotak dialog Properti , pilih Jangan beri tahu saya tentang kesalahan USB.

Catatan Prosedur sebelumnya menonaktifkan semua pemberitahuan USB, bukan hanya "Perangkat USB HI-SPEED yang dicolokkan ke port non-HI-SPEED".

Apakah usb 2.0 hub saya single-TT atau multi-TT?

Hub USB 2.0 dapat memiliki satu penerjemah transaksi (TT) untuk semua port yang menghadap ke hilir pada hub (TT tunggal), atau dapat memiliki satu TT untuk setiap port yang menghadap hilir pada hub (beberapa TT).

Nilai bidang bDeviceProtocol dari deskriptor perangkat USB dan bidang bInterfaceProtocol dari deskriptor antarmuka USB menunjukkan apakah hub adalah TT tunggal atau multi-TT:

  • TT tunggal. bDeviceProtocol == 0x01
  • Multi-TT. bDeviceProtocol == 0x02

Usbhub.sys menggunakan pengaturan ini untuk mengaktifkan mode multi-TT atau mode TT tunggal. Pada Windows XP dan yang lebih baru, Usbhub.sys selalu mengaktifkan mode multi-TT pada hub multi-TT. Untuk detail tambahan tentang tata letak TT, lihat bagian 11.14.1.3 dan 11.23.1 dari Spesifikasi USB 2.0.

Karakter atau byte apa yang valid dalam nomor seri USB?

Bidang iSerialNumber deskriptor perangkat USB menunjukkan apakah perangkat memiliki nomor seri dan tempat nomor disimpan, sebagai berikut:

  • iSerialNumber == 0x00 : Perangkat USB tidak memiliki nomor seri.
  • iSerialNumber != 0x00 : Perangkat USB memiliki nomor seri. Nilai yang ditetapkan ke iSerialNumber adalah indeks string nomor seri.

Jika perangkat memiliki nomor seri, nomor seri harus secara unik mengidentifikasi setiap instans perangkat yang sama.

Misalnya, jika dua deskriptor perangkat memiliki nilai yang identik untuk bidang idVendor, idProduct, dan bcdDevice , bidang iSerialNumber harus berbeda, untuk membedakan satu perangkat dari perangkat lainnya.

Plug and Play mengharuskan setiap byte dalam nomor seri USB valid. Jika satu byte tidak valid, Windows membuang nomor seri dan memperlakukan perangkat seolah-olah tidak memiliki nomor seri. Nilai byte berikut tidak valid untuk nomor seri USB:

  • 0x2C.
  • Nilai kurang dari 0x20.
  • Nilai yang lebih besar dari 0x7F.

Untuk detail tambahan tentang nilai iSerialNumber , lihat bagian 9.6.1 dari Spesifikasi USB 2.0.

LANGID apa yang digunakan dalam permintaan string pada build Windows yang dilokalkan?

Perangkat USB menunjukkan keberadaan nomor seri dengan mengatur bidang iSerialNumber dari pendeskripsi perangkat USB ke indeks string nomor seri. Untuk mengambil nomor seri, Windows mengeluarkan permintaan string dengan pengidentifikasi bahasa (LANGID) yang diatur ke 0x0409 (Bahasa Inggris AS). Windows selalu menggunakan LANGID ini untuk mengambil nomor seri USB, bahkan untuk versi Windows yang dilokalkan untuk bahasa lain.

LANGID apa yang digunakan untuk mengekstrak nomor seri perangkat?

Perangkat USB menunjukkan keberadaan nomor seri dengan mengatur bidang iSerialNumber dari pendeskripsi perangkat USB ke indeks string nomor seri. Untuk mengambil nomor seri, Windows mengeluarkan permintaan string dengan pengidentifikasi bahasa (LANGID) yang diatur ke 0x0409 (Bahasa Inggris AS). Windows selalu menggunakan LANGID ini untuk mengambil nomor seri USB, bahkan untuk versi Windows yang dilokalkan untuk bahasa lain.

Bagaimana angka harus ditetapkan ke beberapa antarmuka pada perangkat komposit?

Windows memperlakukan perangkat USB yang memiliki lebih dari satu antarmuka pada konfigurasi pertama sebagai perangkat komposit.

Untuk Windows XP Service Pack 1 dan versi Windows yang lebih lama:

  • Nomor antarmuka harus berbasis nol.
  • Nomor antarmuka harus berturut-turut dan meningkat.

Untuk Windows XP Service Pack 2 dan versi Windows yang lebih baru, nomor antarmuka hanya diperlukan untuk meningkat, tidak berturut-turut.

Pengaturan alternatif untuk antarmuka harus ditetapkan sebagai berikut untuk semua versi Windows:

  • Nilai default untuk antarmuka selalu bergantian mengatur nol.
  • Nomor pengaturan alternatif tambahan harus berturut-turut dan meningkat.

Untuk informasi tambahan tentang pengaturan alternatif, lihat Bagian 9.6.5 spesifikasi USB 2.0.

Apa saja batasan besar yang diberlakukan oleh Usbccgp.sys?

Usbccgp.sys mendukung perangkat komposit untuk:

  • Windows Me
  • Windows XP
  • Windows Server 2003
  • Windows Vista
  • Windows Server 2008

Meskipun mungkin masih mungkin untuk memuat Usbhub.sys sebagai driver induk untuk perangkat komposit pada Windows versi ini dan yang lebih baru, Microsoft tidak merekomendasikannya karena dapat menyebabkan kesalahan kompatibilitas perangkat keras. Anda harus menggunakan Usbccgp.sys sebagai gantinya.

Untuk memastikan bahwa Anda memuat driver yang benar untuk perangkat komposit Anda, gunakan direktif Sertakan dan Perlu dalam file INF Anda, sebagai berikut:

Include = USB.INF
Needs = Composite.Dev

Pembatasan utama yang diberlakukan pada perangkat keras dan driver dengan Usbccgp.sys adalah sebagai berikut:

  • Usbccgp hanya mendukung konfigurasi default, konfigurasi 0.

  • Usbccgp tidak mendukung Penangguhan Selektif di Windows XP dan Windows Server 2003. Fitur ini hanya didukung di Windows Vista dan versi Windows yang lebih baru. Catatan Usbccgp mendukung Selective Suspend di Windows XP SP1 dan versi Windows XP yang lebih baru, tetapi dengan fitur terbatas. Untuk versi Windows ini, perangkat komposit dimasukkan ke dalam Penangguhan Selektif hanya jika setiap fungsi anak perangkat memiliki IRP Menganggur yang tertunda. Usbccgp tidak mendukung Suspensi Selektif di Windows XP RTM

  • Usbccgp mendukung pendeskripsi asosiasi antarmuka (IAD) hanya di Windows XP SP2, Windows Server 2003 SP1, dan versi Windows yang lebih baru.

  • Usbccgp mendukung nomor antarmuka yang tidak konsekutif hanya di Windows XP SP2, Windows Server 2003 SP1, dan versi Windows yang lebih baru.

Bagaimana cara mengaktifkan penelusuran debug untuk biner inti USB?

Lihat posting blog tentang Cara menyertakan dan melihat pesan jejak WPP dalam file PDB publik driver.

Untuk informasi tentang perangkat USB dan peristiwa ETW, lihat Men-debug masalah perangkat USB dengan menggunakan peristiwa ETW.

Apakah Windows mendukung Deskriptor Asosiasi Antarmuka?

Ya. Pemberitahuan Perubahan Rekayasa (ECN) USB 2.0 Interface Association Descriptor (IAD) memperkenalkan metode standar baru untuk menjelaskan pengelompokan antarmuka dan pengaturan alternatifnya dalam fungsi. IAD dapat digunakan untuk mengidentifikasi dua antarmuka atau lebih berturut-turut dan pengaturan alternatif dalam satu fungsi.

Microsoft saat ini bekerja sama dengan IHV untuk mengembangkan perangkat yang mendukung IAD. Sistem operasi berikut memiliki dukungan untuk IAD:

  • Windows XP Service Pack 2 dan yang lebih baru
  • Paket Layanan Windows Server 2003 1 dan yang lebih baru
  • Windows Vista

Apakah tumpukan USB menangani MDL berantai dalam URB?

Fungsionalitas ini didukung oleh tumpukan driver USB 3.0 yang disertakan dengan Windows.

Dapatkah driver memiliki lebih dari satu URB dalam IRP?

Nomor. Fungsionalitas ini tidak didukung oleh tumpukan USB yang disertakan dengan Windows.

Apakah Windows Mendukung USB Composite Hubs?

Perangkat USB komposit - juga disebut sebagai perangkat USB multifungsi - mengekspos beberapa fungsi, yang masing-masing dapat diperlakukan sebagai perangkat independen. Sistem memuat driver induk generik USB, Usbccgp.sys, untuk berfungsi sebagai driver induk untuk eaech fungsi perangkat. Driver induk generik USB menghitung fungsi perangkat komposit seolah-olah mereka adalah perangkat USB terpisah dan kemudian membuat PDO dan membangun tumpukan perangkat untuk setiap fungsi.

Perangkat USB komposit tidak dapat mengekspos fungsi yang berfungsi sebagai hub. Windows tidak menghitung hub tersebut dengan benar dan mencoba menginstal perangkat dapat menyebabkan crash sistem.