struktur _URB_OPEN_STATIC_STREAMS (usb.h)
Struktur _URB_OPEN_STATIC_STREAMS digunakan oleh driver klien USB untuk membuka aliran di titik akhir massal yang ditentukan.
Untuk memformat URB, panggil fungsi UsbBuildOpenStaticStreamsRequest .
Sintaks
struct _URB_OPEN_STATIC_STREAMS {
struct _URB_HEADER Hdr;
USBD_PIPE_HANDLE PipeHandle;
ULONG NumberOfStreams;
USHORT StreamInfoVersion;
USHORT StreamInfoSize;
PUSBD_STREAM_INFORMATION Streams;
};
Anggota
Hdr
Struktur _URB_HEADER yang menentukan informasi header URB. Hdr.Function harus URB_FUNCTION_OPEN_STATIC_STREAMS, dan Hdr.Length harus sizeof(_URB_OPEN_STATIC_STREAMS)
.
PipeHandle
Handel buram untuk pipa yang terkait dengan titik akhir yang mendukung aliran untuk dibuka.
Driver klien mendapatkan PipeHandle dari permintaan URB_FUNCTION_SELECT_CONFIGURATION atau URB_FUNCTION_SELECT_INTERFACE.
NumberOfStreams
Jumlah aliran yang akan dibuka. Nilai NumberOfStreams menunjukkan jumlah elemen dalam array yang ditunjukkan oleh Stream. Nilai ini harus lebih besar dari nol dan kurang dari atau sama dengan jumlah maksimum aliran yang didukung oleh tumpukan driver USB, pengontrol host, dan titik akhir di perangkat. Untuk informasi selengkapnya, lihat Keterangan.
StreamInfoVersion
Versi struktur USBD_STREAM_INFORMATION . Harus diatur ke URB_OPEN_STATIC_STREAMS_VERSION_100; jika tidak, permintaan gagal dan status URB USBD_STATUS_INVALID_PARAMETER.
StreamInfoSize
Ukuran struktur USBD_STREAM_INFORMATION . StreamInfoSize harus sizeof(USBD_STREAM_INFORMATION)
; jika tidak, permintaan gagal dan status URB USBD_STATUS_INFO_LENGTH_MISMATCH.
Streams
Penunjuk ke array struktur USBD_STREAM_INFORMATION yang dialokasikan pemanggil yang dialokasikan. Panjang array tergantung pada jumlah aliran yang akan dibuka dan harus sama dengan nilai NumberOfStreams . Untuk informasi selengkapnya, lihat Keterangan.
Keterangan
Untuk menggunakan aliran (selain aliran default) di titik akhir untuk operasi I/O, driver klien membuka aliran yang diperlukan dengan mengirim permintaan aliran terbuka (URB_FUNCTION_OPEN_STATIC_STREAMS) ke tumpukan driver USB. Untuk permintaan, driver klien harus memformat URB dengan menginisialisasi struktur _URB_OPEN_STATIC_STREAMS . Untuk memformat URB, panggil fungsi UsbBuildOpenStaticStreamsRequest .
Jumlah maksimum aliran yang dapat dibuka oleh driver klien, harus kurang dari atau sama dengan jumlah maksimum aliran yang didukung oleh tumpukan driver USB, pengontrol host, dan titik akhir massal. Untuk mendapatkan jumlah maksimum aliran yang didukung oleh pengontrol host, panggil USBD_QueryUsbCapability. Tumpukan driver USB mendukung hingga 255 aliran. Jika driver klien meminta lebih dari 255 aliran, USBD_QueryUsbCapability gagal dalam permintaan. Untuk mendapatkan jumlah maksimum aliran yang didukung oleh titik akhir, periksa deskriptor pendamping titik akhir (lihat USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR di Usbspec.h).
Untuk informasi tentang memformat URB untuk permintaan open-stream dan contoh kode, lihat Cara Membuka dan Menutup Aliran Statis di Titik Akhir Massal USB.
Ketika driver klien selesai menggunakan aliran, driver dapat menutup semua aliran yang terkait dengan titik akhir tertentu dengan mengirim permintaan close-stream. Untuk mengirim permintaan, driver klien harus menentukan informasi tentang titik akhir dalam struktur _URB_PIPE_REQUEST . Anggota Hdrdari _URB_PIPE_REQUEST harus URB_FUNCTION_CLOSE_STATIC_STREAMS; anggota PipeHandle harus menjadi handel ke titik akhir yang berisi aliran yang digunakan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 |
Header | usb.h |
Lihat juga
Cara Membuka dan Menutup Aliran Statis di Titik Akhir Massal USB
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