Mulai menggunakan pengembangan USB

Perangkat Universal Serial Bus (USB) mendefinisikan kemampuan dan fiturnya melalui konfigurasi, antarmuka, pengaturan alternatif, dan titik akhir. Topik ini memberikan gambaran umum tingkat tinggi tentang konsep-konsep tersebut. Untuk detailnya, lihat spesifikasi USB di Universal Serial Bus Documents.

Di bagian ini

Topik Deskripsi
Tata letak perangkat USB Perangkat USB mendefinisikan kemampuan dan fiturnya melalui konfigurasi, antarmuka, pengaturan alternatif, dan titik akhir. Topik ini memberikan gambaran umum tingkat tinggi tentang konsep-konsep tersebut.
Deskriptor USB standar Perangkat USB menyediakan informasi tentang dirinya sendiri dalam struktur data yang disebut deskriptor USB. Bagian ini menyediakan informasi tentang perangkat, konfigurasi, antarmuka, dan deskriptor titik akhir serta cara untuk mengambilnya dari perangkat USB.
Titik akhir USB dan pipanya Perangkat USB memiliki titik akhir yang digunakan untuk transfer data. Di sisi host, titik akhir diwakili oleh pipa. Topik ini membedakan antara kedua istilah tersebut.
USB di Windows - FAQ Topik ini menyajikan pertanyaan yang sering diajukan untuk pengembang driver yang baru mengembangkan dan mengintegrasikan perangkat dan driver USB dengan sistem operasi Windows.

Skenario USB umum

1—Dapatkan handel perangkat untuk komunikasi dan gunakan handel atau objek yang diambil untuk mengirim transfer data.

Driver klien Aplikasi UWP Aplikasi desktop Windows
KMDF:
WdfUsbTargetDeviceCreateWithParameters

UMDF:
IWDFUsbTargetDevice
UsbDevice

Cara menyambungkan ke perangkat USB
WinUsb_Initialize

Menulis aplikasi desktop Windows berdasarkan templat WinUSB

Pengambilan deskriptor USB untuk mendapatkan informasi tentang konfigurasi perangkat, antarmuka, pengaturan, dan titik akhirnya.

Driver klien Aplikasi UWP Aplikasi desktop Windows
KMDF:

WdfUsbTargetDeviceGetDeviceDescriptor
WdfUsbTargetDeviceRetrieveConfigDescriptor

UMDF:

IWDFUsbTargetDevice::RetrieveDescriptor

Deskriptor USB
UsbDevice.DeviceDescriptor
UsbConfiguration.Descriptors
UsbInterface.Descriptors
UsbInterfaceSetting.Descriptors

Cara mendapatkan deskriptor USB
WinUsb_GetDescriptor
WinUsb_QueryInterfaceSettings
WinUsb_QueryPipe

Mengkueri Perangkat untuk Deskriptor USB

2—Konfigurasikan perangkat untuk memilih konfigurasi dan pengaturan USB aktif per antarmuka.

Driver klien Aplikasi UWP Aplikasi desktop Windows
KMDF:
WdfUsbTargetDeviceSelectConfig
WdfUsbTargetDeviceCreateUrb
USBD_SelectConfigUrbAllocateAndBuild
WdfUsbInterfaceSelectSetting

Cara memilih konfigurasi untuk perangkat USB.

Cara memilih pengaturan alternatif di antarmuka USB.

UMDF:
Pemilihan konfigurasi tidak didukung

IWDFUsbInterface::SelectSetting
UsbInterfaceSetting.SelectSettingAsync

Cara memilih pengaturan antarmuka USB
WinUsb_SetCurrentAlternateSetting

3—Kirim transfer kontrol untuk mengonfigurasi perangkat dan melakukan perintah vendor yang khusus untuk perangkat tertentu.

Driver klien Aplikasi UWP Aplikasi desktop Windows
KMDF:
WdfUsbTargetDeviceSendControlTransferSynchronously
WdfUsbTargetDeviceFormatRequestForControlTransfer
USBD_SelectConfigUrbAllocateAndBuild

UMDF:
IWDFUsbTargetDevice::FormatRequestForControlTransfer

Cara mengirim transfer kontrol USB
SendControlInTransferAsync
SendControlOutTransferAsync

Cara mengirim transfer kontrol USB
WinUsb_ControlTransfer

Kirim Transfer Kontrol ke Titik Akhir Default

4—Kirim transfer massal, biasanya digunakan oleh perangkat penyimpanan massal yang mentransfer data dalam jumlah besar.

Driver klien Aplikasi UWP Aplikasi desktop Windows
KMDF:
WdfUsbTargetPipeReadSynchronously
WdfUsbTargetPipeWriteSynchronously
WdfUsbTargetPipeFormatRequestForRead
WdfUsbTargetPipeFormatRequestForWrite

Cara mengirim permintaan transfer massal USB

Cara menggunakan pembaca berkelanjutan untuk membaca data dari pipa USB

UMDF:
IUsbTargetPipeContinuousReaderCallbackReadComplete
IWDFUsbTargetPipe
IWDFUsbTargetPipe2
UsbBulkInPipe.InputStream
UsbBulkOutPipe.OutputStream

Cara mengirim permintaan transfer massal USB
WinUsb_WritePipe
WinUsb_ReadPipe

Masalah Permintaan I/O

5—Kirim transfer interupsi. Data dibaca untuk mengambil data gangguan perangkat keras.

Driver klien Aplikasi UWP Aplikasi desktop Windows
Sama seperti transfer massal UsbInterruptInPipe.DataReceived
UsbInterruptOutPipe.OutputStream

Cara mengirim permintaan transfer interupsi USB
Sama seperti transfer massal

6—Kirim transfer isochronous, yang sebagian besar digunakan untuk perangkat streaming media.

Driver klien Aplikasi UWP Aplikasi desktop Windows
KMDF:
WdfUsbTargetDeviceCreateIsochUrb

Cara mentransfer data ke titik akhir isochronous USB

UMDF:
Tidak didukung
Tidak didukung WinUsb_RegisterIsochBuffer
WinUsb_UnregisterIsochBuffer
WinUsb_WriteIsochPipeAsap
WinUsb_ReadIsochPipeAsap
WinUsb_WriteIsochPipe
WinUsb_ReadIsochPipe
WinUsb_GetCurrentFrameNumber
WinUsb_GetAdjustedFrameNumber

Mengirim transfer isochronous USB dari aplikasi desktop WinUSB

7—Selektif USB ditangguhkan untuk memungkinkan perangkat memasuki status daya rendah dan membuat perangkat kembali ke status berfungsi.

Driver klien Aplikasi UWP Aplikasi desktop Windows
KMDF:
WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS
WdfDeviceAssignS0IdleSettings

UMDF:
IWDFUsbTargetDevice::SetPowerPolicy
IWDFDevice2::AssignS0IdleSettings
IWDFDevice3::AssignS0IdleSettingsEx

Cara mengirim perangkat ke penangguhan selektif
Tidak didukung WinUsb_SetPowerPolicy

WinUSB Power Management

Lihat juga