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

URB

Struktur USB

_URB_HEADER