Windows.Devices.Usb Ruang nama

Namespace ini mendefinisikan kelas Windows Runtime yang dapat digunakan aplikasi UWP untuk berkomunikasi dengan perangkat WinUSB . Perangkat ini ditangani oleh driver kotak winusb.sys masuk dan diidentifikasi oleh Deskriptor OS Microsoft tertentu.

Perangkat WinUSB yang valid akan memiliki id yang kompatibel USB\MS_COMP_WINUSB

Id yang Kompatibel dari Manajer Perangkat untuk perangkat WinUSB SuperMUTT

Dukungan Perangkat

Namespace ini mendukung sebagian besar perangkat WinUSB. Namun, ini tidak menyediakan akses ke perangkat USB dengan kelas perangkat berikut:

  • Audio (0x01)
  • HID (0x03)
  • Gambar (0x06)
  • Printer (0x07)
  • Penyimpanan Massal (0x08)
  • Kartu Pintar (0x0B)
  • Audio/Video (0x10)
  • Pengontrol Nirkabel (0xE0)

Kemampuan Perangkat USB

Aplikasi UWP yang mengakses perangkat USB 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="usb"/>

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 di bawah 1809, maka lihat kemampuan perangkat USB warisan.

Pemecahan Masalah

  • Verifikasi kemampuan USB (usb) ada dalam manifes aplikasi.
  • Verifikasi bahwa pengguna telah memberikan izin bagi aplikasi untuk menggunakan perangkat USB.
  • Validasi jenis perangkat tidak satu pun yang 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 terkadang ditambahkan oleh pihak ke-3 untuk mengaktifkan fungsionalitas tambahan untuk perangkat keras kustom.
    • Pembatasan perangkat ditentukan sebagian oleh winusb.sys selama enumerasi perangkat, yang dapat mengatur properti DEVPKEY_DeviceInterface_Restricted antarmuka perangkat ke TRUE pada Antarmuka GUID_DEVINTERFACE_WINUSB_WINRT Perangkat WinUSB berdasarkan keberadaan filter perangkat/kelas.
    • Kehadiran driver UpperFilter/LowerFilter perangkat dapat ditentukan menggunakan DeviceManager dengan mencari UpperFilters properti dan LowerFilters .
    • Kehadiran driver UpperFilterLowerFilter/ kelas WinUSB 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 adalah string yang sama seperti yang akan diteruskan ke FromIdAsync.
  • Pembatasan ini dapat dilewati saat membuat perangkat kustom dengan bekerja dengan pengembang driver untuk membuat Aplikasi Dukungan Perangkat Keras

Kelas

UsbBulkInEndpointDescriptor

Pendeskripsi titik akhir untuk titik akhir USB bulk IN. Deskriptor menentukan jenis titik akhir, arah, angka, dan juga jumlah maksimum byte yang dapat dibaca dari titik akhir, dalam satu transfer.

UsbBulkInPipe

Mewakili pipa yang terbuka oleh driver USB yang mendasar untuk berkomunikasi dengan titik akhir USB bulk IN perangkat. Aplikasi bisa mendapatkan aliran input dari pipa dan data akses sedang dibaca dari titik akhir.

UsbBulkOutEndpointDescriptor

Deskriptor titik akhir untuk titik akhir USB bulk OUT. Deskriptor menentukan jenis titik akhir, arah, angka dan juga jumlah maksimum byte yang dapat ditulis ke titik akhir, dalam satu transfer.

UsbBulkOutPipe

Mewakili pipa yang terbuka oleh driver USB yang mendasar untuk berkomunikasi dengan titik akhir USB bulk OUT perangkat. Objek menyediakan akses ke aliran output tempat aplikasi dapat menulis data untuk dikirim ke titik akhir.

UsbConfiguration

Menyediakan informasi tentang konfigurasi USB, deskriptornya, dan antarmuka yang ditentukan dalam konfigurasi tersebut. Untuk penjelasan tentang konfigurasi USB, lihat Bagian 9.6.3 dalam spesifikasi Universal Serial Bus (USB).

UsbConfigurationDescriptor

Memperoleh informasi dari 9 byte pertama dari deskriptor konfigurasi USB. Informasi ini mencakup kemampuan daya perangkat saat konfigurasi aktif dan jumlah antarmuka yang disertakan dalam konfigurasi tersebut. Untuk penjelasan tentang pendeskripsi konfigurasi, Bagian 9.6.3 Spesifikasi Universal Serial Bus. Untuk informasi tentang bidang deskriptor, lihat:

  • Tabel 9.15 dalam Spesifikasi Universal Serial Bus 3.0
  • Tabel 9.10 dalam Spesifikasi Universal Serial Bus (versi 2.0)
UsbControlRequestType

Menyediakan informasi tentang transfer kontrol USB, jenis permintaan kontrol, apakah data dikirim dari atau ke host, dan penerima permintaan di perangkat.

UsbDescriptor

Menyediakan informasi tentang jenis deskriptor, ukurannya (dalam byte), dan mendapatkan data deskriptor.

UsbDevice

Mewakili perangkat USB. Objek menyediakan metode dan properti yang dapat digunakan aplikasi untuk menghitung perangkat WinUSB dan mengirim transfer kontrol IN dan OUT.

UsbDeviceClass

Menyediakan cara bagi aplikasi untuk mendapatkan string Advanced Query Syntax (AQS) dengan menentukan kode kelas, kode subkelas, dan kode protokol yang ditentukan oleh perangkat. Properti di kelas ini diteruskan dalam panggilan ke GetDeviceClassSelector.

UsbDeviceClasses

Menyediakan cara bagi Anda untuk mengambil objek UsbDeviceClass berdasarkan kelas perangkat USB perangkat. Properti yang ditentukan dalam kelas ini mewakili kelas perangkat USB yang didukung, dan mengembalikan objek UsbDeviceClass .

Untuk informasi tentang kelas perangkat USB, lihat Situs Web USB resmi untuk Dokumen Spesifikasi Kelas yang Disetujui.

UsbDeviceDescriptor

Memperoleh informasi dari pendeskripsi perangkat USB perangkat. Untuk penjelasan tentang deskriptor perangkat, lihat Tabel 9.8 di Spesifikasi Universal Serial Bus.

UsbEndpointDescriptor

Memperoleh informasi dari deskriptor titik akhir USB titik akhir, seperti jenis, arah, dan nomor titik akhir. Objek ini juga mendapatkan deskriptor titik akhir tertentu berdasarkan jenis titik akhir. Untuk penjelasan tentang pendeskripsi titik akhir, lihat Bagian 9.6.5 di Spesifikasi Universal Serial Bus:

  • Tabel 9.18 dalam Spesifikasi Universal Serial Bus 3.0
  • Tabel 9.13 dalam Spesifikasi Universal Serial Bus (versi 2.0)
UsbInterface

Menyediakan informasi tentang antarmuka USB termasuk titik akhirnya, jumlah pengaturan alternatif yang didukung antarmuka, dan mendapatkan seluruh deskriptor yang diatur untuk pengaturan tersebut. Ini juga mendapatkan pipa yang terkait dengan titik akhir yang didukung antarmuka.

UsbInterfaceDescriptor

Menjelaskan pengaturan alternatif USB (antarmuka) dalam deskriptor antarmuka. Untuk penjelasan tentang deskriptor antarmuka, lihat Bagian 9.6.5 di Spesifikasi Universal Serial Bus:

  • Tabel 9.15 dalam Spesifikasi Universal Serial Bus 3.0
  • Tabel 9.12 dalam Spesifikasi Universal Serial Bus (versi 2.0)
UsbInterfaceSetting

Menyediakan informasi tentang pengaturan alternatif dan memilih pengaturan tersebut. Aplikasi ini bisa mendapatkan deskriptor antarmuka USB untuk pengaturan dan titik akhirnya, dan menentukan apakah pengaturan ini saat ini dipilih.

UsbInterruptInEndpointDescriptor

Deskriptor titik akhir untuk titik akhir USB interupsi IN. Deskriptor menentukan jenis titik akhir, arah, angka, dan juga jumlah maksimum byte yang dapat dibaca dari titik akhir, dalam satu transfer. Aplikasi ini juga bisa mendapatkan informasi tentang seberapa sering host melakukan polling titik akhir untuk data.

UsbInterruptInEventArgs

Mewakili objek yang diteruskan sebagai parameter ke penanganan aktivitas untuk peristiwa DataReceived .

UsbInterruptInPipe

Mewakili pipa yang dibuka driver USB yang mendasar untuk berkomunikasi dengan titik akhir USB interupsi IN perangkat. Objek juga memungkinkan aplikasi untuk menentukan penanganan aktivitas. Handler yang dipanggil saat data dibaca dari titik akhir.

UsbInterruptOutEndpointDescriptor

Deskriptor titik akhir untuk titik akhir USB interupsi OUT. Deskriptor menentukan jenis titik akhir, arah, angka dan juga jumlah maksimum byte yang dapat ditulis ke titik akhir, dalam satu transfer. Aplikasi ini juga bisa mendapatkan informasi tentang seberapa sering host melakukan polling titik akhir untuk mengirim data.

UsbInterruptOutPipe

Mewakili pipa yang dibuka driver USB yang mendasar untuk berkomunikasi dengan titik akhir USB interupsi OUT perangkat. Objek menyediakan akses ke aliran output tempat aplikasi dapat menulis data untuk dikirim ke titik akhir.

UsbSetupPacket

Menjelaskan paket penyiapan untuk transfer kontrol USB. Untuk penjelasan tentang paket penyiapan, lihat Tabel 9.2 dalam spesifikasi Universal Serial Bus (USB).

Enum

UsbControlRecipient

Menentukan konstanta yang menunjukkan penerima transfer kontrol USB. Penerima didefinisikan dalam paket penyiapan permintaan kontrol. Lihat Tabel 9.2 bagian 9.3 dari spesifikasi Universal Serial Bus (USB) (www.usb.org).

UsbControlTransferType

Menentukan konstanta yang menunjukkan jenis transfer kontrol USB: standar, kelas, atau vendor.

UsbEndpointType

Menentukan konstanta yang menunjukkan jenis titik akhir USB: kontrol, massal, isochronous, atau interupsi.

UsbReadOptions

Menentukan konstanta untuk bendera konfigurasi yang dapat diatur untuk pipa USB yang dibuka host untuk titik akhir USB bulk IN.

UsbTransferDirection

Mendefinisikan konstanta yang menunjukkan arah transfer USB: transfer IN atau OUT.

UsbWriteOptions

Menentukan konstanta untuk bendera konfigurasi yang dapat diatur untuk pipa USB yang dibuka host untuk titik akhir USB OUT.

Lihat juga