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.
ID perangkat keras adalah string identifikasi yang ditentukan vendor yang digunakan Windows untuk mencocokkan perangkat dengan paket driver . ID perangkat keras mengidentifikasi perangkat. Ini menunjukkan bahwa setiap paket driver yang menyatakan dapat bekerja dengan perangkat yang memiliki ID tersebut untuk beberapa tingkat fungsionalitas.
Dalam kebanyakan kasus, perangkat memiliki lebih dari satu ID perangkat keras. Biasanya, daftar ID perangkat keras diurutkan dari yang paling hingga paling tidak cocok untuk perangkat. Misalnya, daftar ID perangkat keras konseptual untuk perangkat mungkin terlihat seperti:
<Product X made by company Y with firmware revision Z>
<Product X made by company Y that is a device of type W>
Di mana ID perangkat keras aktual akan mewakili konsep tersebut menggunakan string yang mengikuti persyaratan format ID perangkat keras.
Membuat ID perangkat keras untuk perangkat
ID perangkat keras dilaporkan ke Plug and Play Manager (PnP) oleh enumerator perangkat, yaitu bus driver-nya. Biasanya, ketika penulis driver bus perlu membuat ID perangkat keras baru untuk perangkat yang dilaporkan ke PnP, ia menggunakan salah satu format generik berikut:
<enumerator>\<enumerator-specific-device-ID>
Format ini adalah yang paling umum untuk perangkat PnP individual yang dilaporkan ke manajer Plug and Play oleh satu enumerator.
\*<generic-device-ID>
Tanda bintang menunjukkan bahwa lebih dari satu enumerator mendukung perangkat, seperti ISAPNP dan BIOS.
<device-class-specific-ID>
Untuk informasi selengkapnya, lihat Pengidentifikasi Generik.
Kelas perangkat yang ada dengan konvensi penamaan yang dibuat sendiri mungkin menggunakan format kustom. Untuk informasi tentang format ID perangkat keras mereka, lihat spesifikasi perangkat keras untuk bus tersebut.
Jumlah karakter ID perangkat keras, tidak termasuk terminator NULL, harus kurang dari MAX_DEVICE_ID_LEN. Batasan ini berlaku untuk jumlah panjang semua bidang dan pemisah bidang \\ dalam ID perangkat keras. Untuk informasi selengkapnya, lihat bagian OperasiIRP_MN_QUERY_ID.
ID Perangkat Keras untuk Perangkat yang Diurutkan dari Root
Perangkat yang terdaftar dari root memiliki sifat khusus karena dapat dibuat menggunakan API di mana ID perangkat keras dapat ditentukan. Perangkat akar yang dijumlahkan dengan ID perangkat keras yang berbagi namespace generik, seperti ROOT\SYSTEM, mungkin berkonflik. Hasilnya adalah ikon kesalahan tanda seru kuning di Device Manager saat memperbarui Windows.
Anda dapat mencegah kesalahan ini dengan menggunakan namespace unik untuk setiap driver yang memiliki perangkat enumerasi root. Untuk USB atau perangkat sistem, alih-alih menggunakan ROOT\USB atau ROOT\SYSTEM, gunakan ROOT\[COMPANYNAME]\[DEVICENAME]. Kemudian, sebelum menginstal, periksa untuk melihat apakah devnode sudah ada.
Mendapatkan daftar ID perangkat keras untuk perangkat
Untuk menemukan daftar ID perangkat keras untuk perangkat, ikuti langkah-langkah berikut:
- Di pencarian Windows, masukkan dan pilih Manajer Perangkat.
- Di Manajer Perangkat, temukan perangkat di pohon.
- Pilih kanan perangkat dan pilih properti .
- Pilih tab Detail.
- Untuk Properti, pilih Id Perangkat Keras atau Id yang Kompatibel.
Anda juga bisa mendapatkan daftar ID perangkat keras secara terprogram dengan mengambil properti DEVPKEY_Device_HardwareIds pada perangkat. Misalnya, properti tersebut dapat diambil dengan API seperti IoGetDevicePropertyData, SetupDiGetDeviceProperty, atau CM_Get_DevNode_Property.
Daftar ID perangkat keras yang diambil oleh rutinitas ini adalah nilai REG_MULTI_SZ. Jumlah maksimum karakter dalam daftar perangkat keras, termasuk terminator NULL setelah setiap ID perangkat keras dan terminator NULL akhir, adalah REGSTR_VAL_MAX_HCID_LEN. Jumlah ID maksimum yang mungkin dalam daftar ID perangkat keras adalah 64.
Contoh ID perangkat keras
Berikut adalah contoh pengidentifikasi generik untuk perangkat PnP:
root\*PNP0F08
Berikut adalah contoh pengidentifikasi untuk perangkat PCI:
PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02