Windows.Devices.Usb 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 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

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, 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 satupun ditunjuk sebagai tidak dapat diakses.
- 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
winusb.sys
selama enumerasi perangkat, yang dapat mengatur propertiDEVPKEY_DeviceInterface_Restricted
antarmuka perangkat keTRUE
pada AntarmukaGUID_DEVINTERFACE_WINUSB_WINRT
Perangkat WinUSB berdasarkan keberadaan filter perangkat/kelas. - Kehadiran driver UpperFilter/LowerFilter perangkat dapat ditentukan menggunakan DeviceManager dengan mencari
UpperFilters
properti danLowerFilters
. - Kehadiran driver UpperFilter/LowerFilter kelas WinUSB 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
UsbBulkInEndpointDescriptor |
Deskriptor 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:
|
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 deskriptor titik akhir, lihat Bagian 9.6.5 di Spesifikasi Universal Serial Bus:
|
UsbInterface |
Menyediakan informasi tentang antarmuka USB termasuk titik akhirnya, jumlah pengaturan alternatif yang didukung antarmuka, dan mendapatkan seluruh deskriptor yang ditetapkan 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:
|
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 terbuka oleh 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 terbuka oleh 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 massal 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. |