UsbDevice Kelas
Definisi
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.
Mewakili perangkat USB. Objek ini menyediakan metode dan properti yang dapat digunakan aplikasi untuk menghitung perangkat WinUSB dan mengirim transfer kontrol IN dan OUT.
public ref class UsbDevice sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class UsbDevice final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class UsbDevice : System.IDisposable
Public NotInheritable Class UsbDevice
Implements IDisposable
- Warisan
- Atribut
- Penerapan
Persyaratan Windows
Rangkaian perangkat |
Windows 10 (diperkenalkan dalam 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)
|
Contoh
Contoh kode ini menunjukkan cara mendapatkan objek UsbDevice dengan menentukan id vendor/produk.
protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
UInt32 vid = 0x045E;
UInt32 pid = 0x078F;
string aqs = UsbDevice.GetDeviceSelector(vid, pid);
var myDevices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(aqs, null);
if (myDevices.Count == 0)
{
ShowError("Device not found!");
return;
}
UsbDevice device = await UsbDevice.FromIdAsync(myDevices[0].Id);
// Send a control transfer.
UsbSetupPacket initSetupPacket = new UsbSetupPacket()
{
Request = initRequest,
RequestType = new UsbControlRequestType()
{
Recipient = UsbControlRecipient.DefaultInterface,
ControlTransferType = UsbControlTransferType.Vendor
}
};
await device.SendOutControlTransferAsync(initSetupPacket);
}
Keterangan
Sebelum mendapatkan referensi ke objek UsbDevice, Anda harus memiliki salah satu pengidentifikasi ini:
- Vendor dan pengidentifikasi produk untuk perangkat fisik. Pengidentifikasi tersebut adalah bagian dari string ID perangkat keras. Atau, Anda dapat memperoleh pengidentifikasi dari properti Id Perangkat Keras di Manajer Perangkat. Misalnya, jika Id Perangkat Keras adalah
USB\VID_045E&PID_078E
, ID vendor adalah0x045E
dan Id produk adalah0x078E
. - GUID antarmuka perangkat. Anda dapat memperoleh GUID tersebut dari entri registri DeviceInterfaceGuids di bawah: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\USB\<Device Identifier Instance Identifier>\<>\Device Parameters
- Kelas, subkelas, dan kode protokol perangkat. Anda dapat memperoleh informasi tersebut dari entri registri CompatibleIds , yang ditemukan di bawah kunci Parameter Perangkat .
Untuk mendapatkan objek UsbDevice:
- Dapatkan string Advanced Query Syntax (AQS) yang berisi kriteria pencarian untuk menemukan perangkat dalam kumpulan perangkat yang dijumlahkan. Jika Anda ingin mencari berdasarkan ID vendor/ID produk atau GUID antarmuka perangkat, hubungi GetDeviceSelector. Jika Anda ingin mencari berdasarkan kelas perangkat, hubungi GetDeviceClassSelector. Kedua panggilan mengambil string AQS yang diformat.
- Teruskan string yang diambil ke FindAllAsync. Panggilan mengambil objek DeviceInformationCollection .
- Perulangan melalui koleksi. Setiap perulangan mendapatkan objek DeviceInformation .
- Dapatkan nilai properti DeviceInformation.Id . Nilai string adalah jalur instans perangkat. Contohnya,
\\?\USB#VID_045E&PID_078F#6&1b8ff026&0&5#{dee824ef-729b-4a0e-9c14-b7117d33a817}
. - Panggil FromIdAsync dengan melewati string instans perangkat dan dapatkan objek UsbDevice. Anda kemudian dapat menggunakan objek UsbDevice untuk melakukan operasi lain, seperti mengirim transfer kontrol. Setelah aplikasi selesai menggunakan objek UsbDevice, aplikasi harus merilisnya dengan memanggil Tutup.
Properti
Configuration |
Mendapatkan objek yang mewakili konfigurasi USB termasuk semua antarmuka dan titik akhirnya. |
DefaultInterface |
Mendapatkan objek yang mewakili antarmuka default atau pertama dalam konfigurasi USB. |
DeviceDescriptor |
Mendapatkan objek yang mewakili deskriptor perangkat USB. |
Metode
Close() |
Merilis referensi ke objek UsbDevice yang sebelumnya diperoleh dengan memanggil FromIdAsync. |
Dispose() |
Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, melepaskan, atau mereset sumber daya yang tidak terkelola. |
FromIdAsync(String) |
Memulai operasi asinkron yang membuat objek UsbDevice . |
GetDeviceClassSelector(UsbDeviceClass) |
Mendapatkan string Advanced Query Syntax (AQS) yang dapat diteruskan aplikasi ke DeviceInformation.FindAllAsync untuk menemukan jenis perangkat USB tertentu. |
GetDeviceSelector(Guid) |
Mendapatkan string Advanced Query Syntax (AQS), berdasarkan pengidentifikasi GUID antarmuka perangkat, yang ditentukan oleh aplikasi. Aplikasi meneruskan string ke DeviceInformation.FindAllAsync untuk menemukan jenis perangkat USB tertentu. |
GetDeviceSelector(UInt32, UInt32) |
Mendapatkan string Advanced Query Syntax (AQS), berdasarkan vendor dan pengidentifikasi produk, yang ditentukan oleh aplikasi. Aplikasi meneruskan string ke DeviceInformation.FindAllAsync untuk menemukan jenis perangkat USB tertentu. |
GetDeviceSelector(UInt32, UInt32, Guid) |
Mendapatkan string Advanced Query Syntax (AQS), berdasarkan pengidentifikasi GUID vendor, produk, dan antarmuka perangkat, yang ditentukan oleh aplikasi. Aplikasi meneruskan string ke DeviceInformation.FindAllAsync untuk menemukan jenis perangkat USB tertentu. |
SendControlInTransferAsync(UsbSetupPacket) |
Memulai transfer kontrol USB sepanjang nol yang berbunyi dari titik akhir kontrol default perangkat. |
SendControlInTransferAsync(UsbSetupPacket, IBuffer) |
Memulai transfer kontrol USB untuk menerima data dari titik akhir kontrol default perangkat. |
SendControlOutTransferAsync(UsbSetupPacket) |
Memulai transfer kontrol USB sepanjang nol yang menulis ke titik akhir kontrol default perangkat. |
SendControlOutTransferAsync(UsbSetupPacket, IBuffer) |
Memulai transfer kontrol USB untuk mengirim data ke titik akhir kontrol default perangkat. |
Berlaku untuk
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk