Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Untuk perangkat Universal Serial Bus (USB) tertentu, Anda dapat menginstal WinUSB (Winusb.sys) alih-alih menerapkan driver.
Penting
Artikel ini untuk programmer. Jika Anda adalah pelanggan yang mengalami masalah USB, lihat Memperbaiki masalah USB-C di Windows
Penginstalan otomatis WinUSB tanpa file INF
Sebagai OEM atau vendor perangkat keras independen (IHV), Anda dapat membangun perangkat sehingga Winusb.sys diinstal secara otomatis. Perangkat seperti itu disebut perangkat WinUSB dan tidak mengharuskan Anda menulis file INF kustom yang mereferensikan Winusb.inf dalam kotak.
Saat Anda menyambungkan perangkat WinUSB, Windows membaca informasi perangkat dan memuat Winusb.sys secara otomatis.
Untuk informasi selengkapnya, lihat Perangkat WinUSB.
Menginstal WinUSB dengan menentukan kelas perangkat yang disediakan sistem
Saat menyambungkan perangkat, Anda mungkin melihat bahwa Windows memuat Winusb.sys secara otomatis. Jika tidak, ikuti instruksi berikut untuk memuat driver:
- Colokkan perangkat Anda ke sistem host.
- Buka Manajer Perangkat dan temukan perangkat.
- Klik kanan perangkat dan pilih Perbarui perangkat lunak pengandar... dari menu konteks.
- Pada wizard, pilih Telusuri komputer saya untuk perangkat lunak pengandar.
- Pilih Izinkan saya memilih dari daftar driver perangkat di komputer saya.
- Dari daftar kelas perangkat, pilih perangkat Universal Serial Bus.
- Wizard menampilkan Perangkat WinUsb. Pilih ini untuk memuat driver.
Jika perangkat Universal Serial Bus tidak muncul dalam daftar kelas perangkat, maka Anda perlu menginstal driver dengan menggunakan INF kustom. Prosedur sebelumnya tidak menambahkan GUID antarmuka perangkat untuk aplikasi (aplikasi UWP atau aplikasi desktop Windows) untuk mengakses perangkat. Anda harus menambahkan GUID secara manual dengan mengikuti prosedur ini.
Instal driver seperti yang dijelaskan dalam prosedur sebelumnya.
Buat GUID antarmuka perangkat untuk perangkat Anda dengan menggunakan alat seperti guidgen.exe.
Temukan kunci registri untuk perangkat di bawah kunci ini:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<VID_vvvv&PID_pppp>
Di bawah kunci Device Parameters, tambahkan entri registri String bernama DeviceInterfaceGUID atau entri Multi-String bernama DeviceInterfaceGUIDs. Atur nilai ke GUID yang Anda buat di langkah 2.
Putuskan sambungan perangkat dari sistem dan sambungkan kembali ke port fisik yang sama.
Catatan
Jika Anda mengubah port fisik, Anda harus mengulangi langkah 1 hingga 4.
Menulis INF kustom untuk penginstalan WinUSB
Sebagai bagian dari paket driver, Anda menyediakan file .inf yang menginstal Winusb.sys sebagai driver fungsi untuk perangkat USB.
Berikut adalah contoh file INF universal yang valid untuk platform x64 dan ARM64 yang menjalankan Windows 10 atau yang lebih baru. Contoh ini tidak termasuk coinstallers, membuatnya memenuhi syarat untuk ditandatangani oleh portal Dasbor Pusat Pengembang Perangkat Keras.
;
; Universal INF file for WinUsb installation
;
[Version]
Signature = "$Windows NT$"
Class = USBDevice
ClassGUID = {88BAE032-5A81-49f0-BC3D-A4FF138216D6}
Provider = %ManufacturerName%
CatalogFile = WinUSBInstallation.cat
DriverVer = 09/04/2012,13.54.20.543
PnpLockdown = 1
; ========== Manufacturer and Models sections ===========
[Manufacturer]
%ManufacturerName% = Standard,NTamd64,NTarm64
[Standard.NTamd64]
%DeviceName% =USB_Install, USB\VID_0547&PID_1002
[Standard.NTarm64]
%DeviceName% =USB_Install, USB\VID_0547&PID_1002
; =================== Installation ===================
[USB_Install]
Include = winusb.inf
Needs = WINUSB.NT
[USB_Install.Services]
Include =winusb.inf
Needs = WINUSB.NT.Services
[USB_Install.HW]
AddReg=Dev_AddReg
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{9f543223-cede-4fa3-b376-a25ce9a30e74}"
; =================== Strings ===================
[Strings]
ManufacturerName="Contoso"
ClassName="Universal Serial Bus devices"
DeviceName="Fx2 Learning Kit Device"
REG_MULTI_SZ = 0x00010000
File INF universal ini dapat digunakan di beberapa platform Windows (x64 dan ARM64) dan memenuhi syarat untuk ditandatangani oleh portal Dasbor Pusat Pengembang Perangkat Keras .
Untuk menginstal hanya kelas penyiapan perangkat kustom baru, sertakan bagian ClassInstall32 dalam file INF perangkat. File INF untuk perangkat di kelas yang diinstal, baik kelas penyiapan perangkat yang disediakan sistem atau kelas kustom, tidak boleh menyertakan bagian ClassInstall32.
Kecuali untuk nilai khusus perangkat dan beberapa masalah yang dicatat dalam daftar berikut, Anda dapat menggunakan bagian dan arahan ini untuk menginstal WinUSB untuk perangkat USB apa pun. Item dalam daftar ini menjelaskan Include dan Direktif dalam file .inf sebelumnya.
USB_Install: Petunjuk Sertakan dan Kebutuhan di bagian USB_Install diperlukan untuk menginstal WinUSB. Anda tidak boleh memodifikasi arahan ini.
USB_Install.Services: Direktif Sertakan di bagian USB_Install.Services mencakup .inf yang disediakan sistem untuk WinUSB (Winusb.inf). Windows menginstal file .inf ini jika belum ada pada sistem target. Direktif Kebutuhan menentukan bagian dalam Winusb.inf yang berisi informasi yang diperlukan untuk menginstal Winusb.sys sebagai driver fungsi perangkat. Anda tidak boleh memodifikasi arahan ini.
USB_Install.HW: Bagian ini adalah kunci dalam file .inf. Ini menentukan pengidentifikasi unik global antarmuka perangkat (GUID) untuk perangkat Anda. Direktif AddReg menetapkan GUID antarmuka yang ditentukan dalam nilai registri standar. Ketika Winusb.sys dimuat sebagai driver fungsi perangkat, ia membaca nilai registri kunci DeviceInterfaceGUIDs dan menggunakan GUID yang ditentukan untuk mewakili antarmuka perangkat. Anda harus mengganti GUID dalam contoh ini dengan guid yang Anda buat khusus untuk perangkat Anda. Jika protokol untuk perangkat berubah, buat GUID antarmuka perangkat baru.
Catatan
Perangkat lunak mode pengguna harus memanggil SetupDiGetClassDevs untuk menghitung antarmuka perangkat terdaftar yang terkait dengan salah satu kelas antarmuka perangkat yang ditentukan di bawah kunci DeviceInterfaceGUIDs. SetupDiGetClassDevs mengembalikan handel perangkat yang kemudian harus diteruskan oleh perangkat lunak mode pengguna ke WinUsb_Initialize rutin untuk mendapatkan handel WinUSB untuk antarmuka perangkat. Untuk informasi selengkapnya tentang rutinitas ini, lihat Cara Mengakses Perangkat USB dengan Menggunakan Fungsi WinUSB.
Setiap kali Winusb.sys dimuat, ia mendaftarkan antarmuka perangkat yang memiliki kelas antarmuka perangkat yang ditentukan dalam registri di bawah kunci DeviceInterfaceGUIDs .
HKR,,DeviceInterfaceGUIDs, 0x10000,"{D696BFEB-1734-417d-8A04-86D01071C512}"
Cara membuat paket driver yang menginstal Winusb.sys
Untuk menggunakan WinUSB sebagai driver fungsi perangkat, Anda membuat paket driver. Berikut adalah langkah-langkah untuk membuat paket driver yang menginstal Winusb.sys:
Unduh Windows Driver Kit (WDK) dan instal di komputer Anda.
Buat folder paket driver pada sistem Anda di mana perangkat USB terhubung, C:\UsbDevice, misalnya.
Tulis file .inf yang menginstal Winusb.sys sebagai driver fungsi untuk perangkat USB dan simpan di folder paket driver. Contoh cara menulis file ini dapat ditemukan di bagian Menulis INF kustom untuk penginstalan WinUSB dari dokumen ini.
Buat file katalog yang ditandatangani untuk paket tersebut. File ini diperlukan untuk menginstal WinUSB di Windows. Anda dapat menemukan info selengkapnya tentang cara membuat dan menguji file katalog yang ditandatangani di panduan penandatanganan kodeKernel-Mode di situs Windows Dev Center - Perangkat Keras.
Sambungkan perangkat USB ke komputer Anda.
Buka Manajer Perangkat di komputer Anda. Ikuti instruksi pada wizard Perbarui Perangkat Lunak Driver dan pilih penginstalan manual. Ketika diminta, berikan lokasi folder paket driver untuk menyelesaikan penginstalan.