UsbDevice Kelas

Definisi

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
Object Platform::Object IInspectable UsbDevice
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 adalah 0x045E dan Id produk adalah 0x078E.
  • 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:

  1. 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.
  2. Teruskan string yang diambil ke FindAllAsync. Panggilan mengambil objek DeviceInformationCollection .
  3. Perulangan melalui koleksi. Setiap perulangan mendapatkan objek DeviceInformation .
  4. 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}.
  5. 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