Windows.Devices.HumanInterfaceDevice Ruang nama
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Namespace layanan ini memberi aplikasi UWP Anda akses ke perangkat yang mendukung protokol Human Interface Device (HID ).
Dukungan Perangkat
Namespace ini mendukung sebagian besar HID. Namun, ini tidak menyediakan akses ke koleksi aplikasi tingkat atas (TLC) yang diwakili oleh penggunaan berikut.
Penggunaan tidak dapat diakses.
Halaman Penggunaan | UsageIds |
---|---|
HID_USAGE_PAGE_UNDEFINED (0x00 ) |
Semua |
HID_USAGE_PAGE_GENERIC (0x01 ) |
HID_USAGE_GENERIC_MOUSE (0x02 )HID_USAGE_GENERIC_KEYBOARD (0x06 )HID_USAGE_GENERIC_KEYPAD (0x07 )HID_USAGE_GENERIC_SYSTEM_CTL (0x80 ) |
HID_USAGE_PAGE_KEYBOARD (0x07 ) |
Semua |
HID_USAGE_PAGE_CONSUMER (0x0C ) |
Semua |
HID_USAGE_PAGE_DIGITIZER (0x0D ) |
Semua |
HID_USAGE_PAGE_SENSOR (0x20 ) |
Semua |
HID_USAGE_PAGE_LIGHTING_ILLUMINATION (0x59 ) |
HID_USAGE_LAMPARRAY (0x01 ) |
- Perangkat keyboard dan mouse adalah perangkat yang dipesan sistem
- HID LampArray dapat dijumlahkan dengan HidDevice.GetDeviceSelector tetapi harus dibuat dengan LampArray.FromIdAsync
- HID Sensor dapat dijumlahkan dengan HidDevice.GetDeviceSelector tetapi harus dibuat dengan perangkat Windows.Devices.Sensors masing-masing (misalnya LightSensor.FromIdAsync)
Kemampuan Perangkat Antarmuka Manusia
Aplikasi UWP yang mengakses HID harus menyertakan data kemampuan perangkat tertentu dalam simpul kemampuan manifesnya. Data ini mengidentifikasi perangkat dan tujuannya (atau fungsi). Perhatikan bahwa beberapa perangkat mungkin memiliki beberapa fungsi.
Sejak Windows 10, versi 1809 (Pembaruan Oktober 2018)
-
<DeviceCapability>: Atribut Name harus
humanInterfaceDevice
.
<DeviceCapability Name="humanInterfaceDevice"/>
Jika menargetkan perangkat telepon HID (UsagePage==0x0B
), kemampuan hidTelephony
tambahan juga harus ditentukan.
<DeviceCapability Name="humanInterfaceDevice"/>
<DeviceCapability Name="hidTelephony"/>
Sebelum Windows 10, versi 1809 (Pembaruan Oktober 2018)
Sejak 1809, ProductId VendorId/ dan jenis fungsi tidak perlu lagi ditentukan dan akan diabaikan pada sistem yang lebih baru. Jika menargetkan sistem sebelum 1809, lihat di bawah ini.
<DeviceCapability>: Atribut Name harus
humanInterfaceDevice
.<Perangkat>: Atribut Id harus menentukan pengidentifikasi perangkat. Elemen ini dapat menentukan kombinasi Id Vendor (vid) dan Id Produk (pid); atau, ini dapat menentukan string
any
generik . Selain itu,Device Id
mungkin berisi stringusb
penyedia opsional ataubluetooth
.-
<Fungsi>: Atribut Jenis menentukan fungsi perangkat. Elemen ini berisi satu atau beberapa nilai penggunaan HID. Nilai-nilai ini terdiri
UsagePage
dari dan opsionalUsageId
, yang masing-masing adalah nilai heksadesimal 16-bit.
-
<Fungsi>: Atribut Jenis menentukan fungsi perangkat. Elemen ini berisi satu atau beberapa nilai penggunaan HID. Nilai-nilai ini terdiri
Dalam data penggunaan yang ditentukan vendor berikut, perangkat diidentifikasi oleh kombinasi Id Vendor dan Id Produk .
<DeviceCapability Name="humaninterfacedevice">
<Device Id="vidpid:0A81 0701">
<Function Type="usage:ffa0 0001"/>
</Device>
</DeviceCapability>
Berikut ini identik dengan yang pertama dengan pengecualian string usb
penyedia tambahan dalam Device Id
elemen .
<DeviceCapability Name="humaninterfacedevice">
<Device Id="vidpid:0A81 0701 usb">
<Function Type="usage:ffa0 0001"/>
</Device>
</DeviceCapability>
Dalam data perangkat game berikut tidak ada Id Vendor dan Id Produk.
<!-- Any gamepad device -->
<DeviceCapability Name="humaninterfacedevice">
<Device Id="any">
<Function Type="usage:0005 *"/>
</Device>
</DeviceCapability>
Dalam data joystick dan game pad berikut tidak ada Id Vendor dan Id Produk
<!-- Any generic gaming device -->
<DeviceCapability Name="humaninterfacedevice">
<Device Id="any">
<Function Type="usage:0004 *"/>
<Function Type="usage:0005 *"/>
</Device>
</DeviceCapability>
Pemecahan Masalah
- Verifikasi kemampuan HID (
humanInterfaceDevice
) ada dalam manifes aplikasi. Jika perangkat telepon, pastikanhidTelephony
kemampuan juga disertakan. - Verifikasi bahwa pengguna telah memberikan izin bagi aplikasi untuk menggunakan HID.
- Verifikasi bahwa jenis perangkat tidak satu pun ditunjuk sebagai tidak dapat diakses.
- HID yang tidak dapat diakses mungkin masih dijumlahkan oleh DeviceInformation.FindAllAsync(), tetapi tidak dapat dibuka oleh HumanInterfaceDevice.FromIdAsync(). Mengintegrasikan untuk membuka perangkat seperti itu akan melemparkan pengecualian atau mengembalikan
null
.
- HID yang tidak dapat diakses mungkin masih dijumlahkan oleh DeviceInformation.FindAllAsync(), tetapi tidak dapat dibuka oleh HumanInterfaceDevice.FromIdAsync(). Mengintegrasikan untuk membuka perangkat seperti itu akan melemparkan pengecualian atau mengembalikan
- Perangkat internal mesin (
DEVPKEY_Device_InLocalMachineContainer == TRUE
) umumnya tidak dapat diakses kecuali berjalan pada SKU dengan mode danlowLevelDevices
kemampuan yang disematkan. - Perangkat dengan tumpukan yang berisi driver filter atas/bawah umumnya tidak dapat diakses. Ini kadang-kadang ditambahkan oleh pihak ke-3 untuk mengaktifkan fungsionalitas tambahan untuk perangkat keras kustom.
- Pembatasan perangkat ditentukan sebagian oleh
hidclass.sys
selama enumerasi perangkat, yang dapat mengatur propertiDEVPKEY_DeviceInterface_Restricted
antarmuka perangkat keTRUE
pada AntarmukaGUID_DEVINTERFACE_HID
Perangkat HID berdasarkan keberadaan filter perangkat/kelas. - Kehadiran driver UpperFilter/LowerFilter perangkat dapat ditentukan menggunakan DeviceManager dengan mencari
UpperFilters
properti danLowerFilters
. - Kehadiran driver UpperFilter/LowerFilter kelas HID dapat ditentukan menggunakan DeviceManager dengan mencari
Class upper filters
properti danClass lower filters
. - Properti Antarmuka Perangkat dapat diperiksa dengan memanggil
CM_Get_Device_Interface_Property
di manapszDeviceInterface
string yang sama seperti yang akan diteruskan ke FromIdAsync.
- Pembatasan perangkat ditentukan sebagian oleh
- Pembatasan ini dapat dilewati saat membuat perangkat kustom dengan bekerja sama dengan pengembang driver untuk membuat Aplikasi Dukungan Perangkat Keras
Kelas
HidBooleanControl |
Mewakili kontrol Boolean sederhana pada perangkat HID yang mengembalikan nilai aktif/nonaktif. Contohnya adalah lampu LED pada keyboard. |
HidBooleanControlDescription |
Menjelaskan kontrol Boolean untuk perangkat HID tertentu. |
HidCollection |
Mengambil informasi pengumpulan untuk sekelompok kontrol terkait. Protokol HID menggunakan koleksi untuk mengelompokkan sekumpulan kontrol yang mirip satu sama lain, atau, terkait dengan kedekatan fisik atau operasional. |
HidDevice |
Mewakili koleksi tingkat atas dan perangkat yang sesuai. |
HidFeatureReport |
Mewakili Laporan Fitur HID. Laporan fitur dikeluarkan oleh perangkat dan host. Laporan fitur masalah perangkat untuk menjelaskan kemampuan dan pengaturan defaultnya ke host. Host mengeluarkan laporan fitur untuk membuat permintaan perangkat. |
HidInputReport |
Mewakili Laporan Input HID. Perangkat mengeluarkan laporan input untuk menjelaskan perubahan status, input pengguna, dan data khusus perangkat lainnya. Misalnya, perangkat keyboard HID akan menggunakan laporan input untuk memberi sinyal tekan tombol. Sensor kehadiran HID akan menggunakan laporan input untuk memberi sinyal peristiwa deteksi kehadiran. |
HidInputReportReceivedEventArgs |
Mewakili argumen yang dikirim API HID sebagai bagian dari peristiwa laporan input. |
HidNumericControl |
Mewakili kontrol numerik pada perangkat HID yang mengembalikan rentang nilai. Contohnya adalah kontrol volume pada speaker. |
HidNumericControlDescription |
Menjelaskan kontrol numerik untuk perangkat HID tertentu. |
HidOutputReport |
Mewakili Laporan Output HID. Host mengeluarkan laporan output untuk meminta perubahan pada perangkat. Misalnya, host dapat mengeluarkan permintaan ke keyboard untuk mengaktifkan atau menonaktifkan LED. |
Enum
HidCollectionType |
Mengidentifikasi hubungan yang menentukan pengelompokan kontrol pada perangkat. Koleksi adalah cara untuk mengelompokkan sekumpulan kontrol yang mirip satu sama lain; atau, terkait dengan kedekatan fisik, atau operasional. |
HidReportType |
Menentukan jenis laporan HID. |