функция USBD_IsochUrbAllocate (usbdlib.h)
Подпрограмма USBD_IsochUrbAllocate выделяет и форматирует структуру URB для запроса на передачу изохронной формы.
Заметка
для драйверов Windows Driver Framework (WDF): Если клиентский драйвер основан на WDF, необходимо вызвать метод WDF WdfUsbTargetDeviceCreateIsochUrb вместо USBD_IsochUrbAllocate выделить память для структуры URB.
Синтаксис
NTSTATUS USBD_IsochUrbAllocate(
[in] USBD_HANDLE USBDHandle,
[in] ULONG NumberOfIsochPackets,
[out] PURB *Urb
);
Параметры
[in] USBDHandle
UsbD-дескриптор, полученный драйвером клиента в предыдущем вызове подпрограммы USBD_CreateHandle.
[in] NumberOfIsochPackets
Указывает максимальное количество изохронных пакетов, необходимых для выполнения передачи. Буфер передачи описывается в массиве USBD_ISO_PACKET_DESCRIPTOR структур переменной длины, в которых хранятся сведения о каждом пакете, например смещение байтов пакета в буфере. Массив указан в элементе IsoPacket структуры _URB_ISOCH_TRANSFER, которая используется для определения формата URB-запроса изохронного запроса.
[out] Urb
Указатель на структуру URB, которая получает URB, выделенную USBD_IsochUrbAllocate. Все члены структуры URB равны нулю. Выделенный URB достаточно велик, чтобы содержать максимальное количество изохронных пакетов, указанных NumberOfIsochPacket.
Драйвер клиента должен освободить URB после завершения использования драйвера, вызвав USBD_UrbFree.
Возвращаемое значение
Подпрограмма USBD_IsochUrbAllocate возвращает STATUS_SUCCESS, если запрос выполнен успешно. В противном случае USBD_UrbAllocate задает Urb значение NULL
и возвращает код сбоя состояния NT.
Возможные значения включают, но не ограничиваются STATUS_INVALID_PARAMETER, которые указывают, что вызывающий объект передается в NULL
USBDHandle или Urb.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Требуется WDK для Windows 8. Предназначено для Windows Vista и более поздних версий операционной системы Windows. |
целевая платформа | Настольный |
заголовка | usbdlib.h |
библиотеки | Usbdex.lib |
IRQL | <=DISPATCH_LEVEL |
См. также
- выделение и создание
- Как передавать данные в usb-точек изохронных конечных точек
- USBD_ISO_PACKET_DESCRIPTOR
- _URB_ISOCH_TRANSFER