Blok permintaan USB (URL)
Artikel ini menjelaskan Usb Request Block (URB) dan memberikan informasi tentang bagaimana driver klien USB dapat menggunakan rutinitas Windows Driver Model (WDM) untuk mengalokasikan, membangun, dan mengirimkan URL ke tumpukan driver USB.
Driver klien Universal Serial Bus (USB) tidak dapat berkomunikasi dengan perangkatnya secara langsung. Sebagai gantinya, driver klien membuat permintaan dan mengirimkannya ke tumpukan driver USB untuk diproses. Dalam setiap permintaan, driver klien menyediakan struktur data panjang variabel yang disebut Blok Permintaan USB (URB). Struktur URB menjelaskan detail permintaan dan juga berisi informasi tentang status permintaan yang telah selesai. Driver klien melakukan semua operasi khusus perangkat, termasuk transfer data, melalui URL. Driver klien harus menginisialisasi URB dengan informasi tentang permintaan sebelum mengirimkannya ke tumpukan driver USB. Untuk jenis permintaan tertentu, Microsoft menyediakan rutinitas pembantu dan makro yang mengalokasikan struktur URB dan mengisi anggota struktur URB yang diperlukan dengan detail yang disediakan oleh driver klien.
Setiap URB dimulai dengan header berukuran tetap standar (_URB_HEADER) yang tujuannya adalah untuk mengidentifikasi jenis operasi yang diminta. Anggota Panjang_URB_HEADER menentukan ukuran, dalam byte, dari URB. Anggota Fungsi , yang harus merupakan salah satu dari serangkaian konstanta URB_FUNCTION_XXX yang ditentukan sistem, menentukan jenis operasi yang diminta. Dalam kasus transfer data, misalnya, anggota ini menunjukkan jenis transfer. Kode fungsi URB_FUNCTION_CONTROL_TRANSFER, URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER, dan URB_FUNCTION_ISOCH_TRANSFER menunjukkan kontrol, massal/interupsi, dan transfer isochronous masing-masing. Tumpukan driver USB menggunakan anggota Status untuk mengembalikan kode status khusus USB.
Untuk mengirimkan URB, driver klien menggunakan permintaan IOCTL_INTERNAL_USB_SUBMIT_URB , yang dikirimkan ke perangkat melalui paket permintaan I/O (IRP) jenis IRP_MJ_INTERNAL_DEVICE_CONTROL.
Setelah tumpukan driver USB selesai memproses URB, tumpukan driver menggunakan anggota Status struktur URB untuk mengembalikan kode status khusus USB.
Catatan
Pengembang driver KMDF dan UMDF harus menggunakan antarmuka kerangka kerja masing-masing untuk berkomunikasi dengan perangkat USB. Untuk informasi selengkapnya, lihat Bekerja dengan Perangkat USB untuk driver KMDF dan Bekerja dengan Antarmuka USB di UMDF. Topik-topik ini membahas antarmuka driver WDM yang mendasar yang digunakan untuk komunikasi perangkat USB.
Di bagian ini
Topik | Deskripsi |
---|---|
Mengalokasikan dan Membangun URL | Topik ini menjelaskan bagaimana driver klien USB dapat menggunakan rutinitas driver Windows Driver Model (WDM) untuk mengalokasikan dan memformat URB sebelum mengirim permintaan ke tumpukan driver USB yang disediakan Microsoft. |
Cara Mengirimkan URB | Topik ini menjelaskan langkah-langkah yang diperlukan untuk mengirimkan URB yang diinisialisasi ke tumpukan driver USB untuk memproses permintaan tertentu. |
Praktik Terbaik: Menggunakan URL | Topik ini menjelaskan praktik terbaik untuk driver klien untuk mengalokasikan, membangun, dan mengirim URB ke tumpukan driver USB yang disertakan dengan Windows 8. |