функция 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, которая указывает, что вызывающий объект передается в NULLUSBDHandle или Urb.

Требования

Требование Значение
Минимальная версия клиента Требуется WDK для Windows 8. Предназначен для Windows Vista и более поздних версий операционной системы Windows.
Целевая платформа Персональный компьютер
Верхняя часть usbdlib.h
Библиотека Usbdex.lib
IRQL <=DISPATCH_LEVEL

См. также раздел