Windows.Devices.HumanInterfaceDevice Ruang nama

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)

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 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 anygenerik . Selain itu, Device Id mungkin berisi string usb penyedia opsional atau bluetooth.

      • <Fungsi>: Atribut Jenis menentukan fungsi perangkat. Elemen ini berisi satu atau beberapa nilai penggunaan HID. Nilai-nilai ini terdiri UsagePage dari dan opsional UsageId, yang masing-masing adalah nilai heksadesimal 16-bit.

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, pastikan hidTelephony 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.
  • Perangkat internal mesin (DEVPKEY_Device_InLocalMachineContainer == TRUE) umumnya tidak dapat diakses kecuali berjalan pada SKU dengan mode dan lowLevelDevices 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 properti DEVPKEY_DeviceInterface_Restricted antarmuka perangkat ke TRUE pada Antarmuka GUID_DEVINTERFACE_HID Perangkat HID berdasarkan keberadaan filter perangkat/kelas.
    • Kehadiran driver UpperFilter/LowerFilter perangkat dapat ditentukan menggunakan DeviceManager dengan mencari UpperFilters properti dan LowerFilters .
    • Kehadiran driver UpperFilter/LowerFilter kelas HID dapat ditentukan menggunakan DeviceManager dengan mencari Class upper filters properti dan Class lower filters .
    • Properti Antarmuka Perangkat dapat diperiksa dengan memanggil CM_Get_Device_Interface_Property di mana pszDeviceInterface string yang sama seperti yang akan diteruskan ke FromIdAsync.
  • 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.

Lihat juga