Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
UCX mengelola pembuatan objek titik akhir, dan memberi tahu pengontrol host untuk memprogram atau mendeprogram titik akhir ke dalam pengontrol host USB.
Sementara titik akhir diprogram, titik akhir juga dikelola oleh UCX. Status perubahan titik akhir saat perangkat terhubung dan terputus dari bus, mengalami peristiwa daya seperti menangguhkan dan mengatur ulang, dan menjalani pembuatan titik akhir baru seperti perubahan pengaturan alternatif.
Konfigurasi titik akhir
UCX memanggil fungsi panggilan balik yang diterapkan oleh driver pengontrol host untuk memberi tahu driver ketika titik akhir harus diprogram ke dalam pengontrol host USB, atau dirilis. Ketika EVT_UCX_USBDEVICE_ENABLE dipanggil, driver menyiapkan pengontrol untuk melakukan transfer ke titik akhir default perangkat. Menyiapkan pengontrol mencakup pemrograman titik akhir default. Ketika EVT_UCX_USBDEVICE_DISABLE dipanggil, driver membatalkan program titik akhir default dan membebaskan sumber daya pengontrol lain yang terkait dengan perangkat. Ketika EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE dipanggil, driver diberi daftar titik akhir non-default untuk diprogram ke dalam pengontrol, dan diberikan daftar titik akhir non-default lain untuk dihapus dari pengontrol. Driver pengontrol host kemudian memprogram titik akhir non-default yang ditentukan ke dalam pengontrol, dan juga menghapus titik akhir non-default (ditentukan dalam daftar lain) dari pengontrol.
Manajemen status antrean
UCX memanggil fungsi panggilan balik yang diterapkan oleh driver pengontrol host untuk melakukan perubahan pada status antrean titik akhir. Driver kemudian mengambil tindakan yang sesuai pada antrean titik akhir yang diberikan kepada UCX, dan pada antrean tingkat kedua yang dipertahankan dalam driver. Antrean titik akhir dibatalkan atau dibersihkan dalam skenario ini:
- Driver klien perangkat USB mengirimkan permintaan URB_FUNCTION_ABORT_PIPE.
- Selama menangguhkan.
- Saat hub tempat perangkat terpasang, mendeteksi pemutusan sambungan perangkat.
- Selama permintaan pengaturan pilih antarmuka.
Untuk memberi tahu driver pengontrol host tentang pembatalan atau penghapusan menyeluruh antrean, UCX memanggil EVT_UCX_ENDPOINT_ABORT atau EVT_UCX_ENDPOINT_PURGE. Jika nanti antrean titik akhir diperlukan oleh UCX, maka UCX memanggil panggilan balik EVT_UCX_ENDPOINT_START untuk memberi tahu driver untuk memulai antrean.
Pembatalan transfer
Untuk setiap pengontrol yang driver pengontrol hostnya menyatakan GUID_USB_CAPABILITY_CLEAR_TT_BUFFER_ON_ASYNC_TRANSFER_CANCEL, driver harus memanggil UcxEndpointNeedToCancelTransfers dan menerapkan EVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS untuk membatalkan transfer USB asinkron (Massal atau Kontrol) ke perangkat USB berkecepatan penuh atau rendah yang berada di belakang hub Penerjemah Transaksi (TT). Dalam semua kasus lain, driver dapat secara opsional memanggil UcxEndpointNeedToCancelTransfers untuk mendapatkan pemberitahuan EVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS yang menunjukkan bahwa pembatalan transfer diizinkan pada titik akhir ini dan driver dapat melanjutkan untuk membatalkan transfer. Atau, driver dapat membatalkan transfer secara langsung tanpa memanggil UcxEndpointNeedToCancelTransfers.
Jika driver pengontrol host selalu gagal meminta GUID ini, itu dapat mengabaikan kedua panggilan fungsi ini sepenuhnya.
Jika driver tidak pernah memanggil UcxEndpointNeedToCancelTransfers, panggilan balik EVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS driver tidak dipanggil dan dapat berupa NULL selama pendaftaran panggilan balik.
Jika driver berniat menggunakan UcxEndpointNeedToCancelTransfers, driver harus memanggil metode ketika transfer telah diprogram ke pengontrol dan kemudian dibatalkan, dan kemudian menunggu EVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS sebelum menyelesaikannya.