Макрос UsbBuildInterruptOrBulkTransferRequest (usbdlib.h)

Макрос UsbBuildInterruptOrBulkTransferRequest форматирует URB для отправки или получения данных по массовому каналу или для получения данных из канала прерывания.

Синтаксис

void UsbBuildInterruptOrBulkTransferRequest(
  [in, out]       urb,
  [in]            length,
  [in]            pipeHandle,
  [in, optional]  transferBuffer,
  [in, optional]  transferBufferMDL,
  [in]            transferBufferLength,
  [in]            transferFlags,
  [in]            link
);

Параметры

[in, out] urb

Указатель на URB , отформатированный как запрос на прерывание или массовую передачу.

[in] length

Указывает размер URB (в байтах).

[in] pipeHandle

Указывает дескриптор для этого канала, возвращаемый HCD при выборе конфигурации.

[in, optional] transferBuffer

Указатель на постоянный буфер для передачи или имеет значение NULL , если MDL предоставляется в TransferBufferMDL. Содержимое этого буфера зависит от значения Параметра TransferFlags. Если указан USBD_TRANSFER_DIRECTION_IN, этот буфер будет содержать данные, считываемые с устройства при возврате из HCD. В противном случае этот буфер содержит предоставленные драйвером данные для передачи на устройство.

[in, optional] transferBufferMDL

Указатель на MDL, описывающий постоянный буфер, или имеет значение NULL , если буфер предоставляется в TransferBuffer. Содержимое буфера зависит от значения Параметра TransferFlags. Если указан USBD_TRANSFER_DIRECTION_IN, описанный буфер будет содержать данные, считываемые с устройства при возврате из HCD. В противном случае буфер содержит предоставленные драйвером данные для передачи на устройство. MDL должен быть выделен из непагированного пула.

[in] transferBufferLength

Указывает длину (в байтах) буфера, указанного в Параметре TransferBuffer или описанного в разделе TransferBufferMDL.

[in] transferFlags

Задает ноль, единицу или сочетание следующих флагов:

USBD_TRANSFER_DIRECTION_IN

Задано для запроса данных с устройства. Для передачи данных на устройство этот флаг должен быть снят.

USBD_SHORT_TRANSFER_OK

Можно использовать, если задано USBD_TRANSFER_DIRECTION_IN. Если этот параметр задан, HCD не возвращает ошибку, если пакет получен от устройства, который меньше максимального размера пакета для конечной точки. В противном случае короткий запрос возвращает условие ошибки.

[in] link

Зарезервировано. Необходимо задать значение NULL.

Возвращаемое значение

None

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть usbdlib.h (включая Usbdlib.h)

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

URB

Справочник по программированию драйверов USB-устройств

USB_DEVICE_DESCRIPTOR