функция USBD_IsochUrbAllocate (usbdlib.h)
Подпрограмма USBD_IsochUrbAllocate выделяет и форматирует структуру URB для изохронного запроса на передачу.
Примечание
Для драйверов Windows Driver Framework (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 |