Arsitektur dan Modul WinUSB

WinUSB terdiri dari dua komponen utama:

  • Winusb.sys adalah driver mode kernel yang dapat diinstal sebagai driver filter atau fungsi, di atas driver protokol dalam tumpukan perangkat mode kernel perangkat USB.
  • Winusb.dll adalah DLL mode pengguna yang mengekspos fungsi WinUSB. Aplikasi dapat menggunakan fungsi ini untuk berkomunikasi dengan Winusb.sys ketika diinstal sebagai driver fungsi perangkat.

Untuk perangkat yang tidak memerlukan driver fungsi kustom, Winusb.sys dapat diinstal di tumpukan mode kernel perangkat sebagai driver fungsi. Proses mode pengguna kemudian dapat berkomunikasi dengan Winusb.sys dengan menggunakan sekumpulan permintaan kontrol I/O perangkat atau dengan memanggil fungsi WinUSB.

Gambar berikut menunjukkan tumpukan driver USB yang berisi beberapa instans Winusb.sys.

driver winusb dan tumpukan objek perangkat.

Gambar sebelumnya menunjukkan contoh konfigurasi WinUSB yang mengimplementasikan tiga kelas antarmuka perangkat, yang masing-masing memiliki satu antarmuka perangkat terdaftar:

  • Instans 1 dari Winusb.sys mendaftarkan Antarmuka Perangkat A, yang mendukung driver mode pengguna (Usboem.dll).
  • Instans 2 dari Winusb.sys mendaftarkan Antarmuka Perangkat B, yang mendukung driver mode pengguna untuk pemindai (Usbscan.exe) yang berkomunikasi dengan Winusb.dll dengan menggunakan layanan sistem (SVCHOST).
  • Instans 3 dari Winusb.sys mendaftarkan Antarmuka Perangkat C, yang mendukung utilitas pembaruan firmware (Usbfw.exe).

Tepat ada satu instans Winusb.sys yang dimuat. PDO dapat mewakili perangkat non-komposit (misalnya, instans 1 dalam diagram) atau dapat mewakili antarmuka atau koleksi antarmuka pada perangkat komposit (misalnya, instans 2 dan 3). Untuk perangkat kelas perangkat komunikasi seluler nirkabel USB (WMCDC), PDO bahkan dapat mewakili beberapa koleksi antarmuka. (Untuk informasi selengkapnya tentang PDO untuk perangkat WMCDC, lihat Dukungan untuk Kelas Perangkat Komunikasi Seluler Nirkabel.)

Aplikasi mode pengguna apa pun dapat berkomunikasi dengan tumpukan USB dengan memuat pustaka tautan dinamis WinUSB (Winusb.dll) dan memanggil fungsi WinUSB yang diekspos oleh modul ini.

Penginstalan WinUSB (winusb.sys)
Cara Mengakses Perangkat USB dengan Menggunakan Fungsi WinUSB
Fungsi WinUSB untuk Modifikasi Kebijakan Pipa
WinUSB Power Management
Fungsi WinUSB
WinUSB