Поделиться через


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

Требования

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

См. также