функция WinUsb_ReadIsochPipe (winusb.h)

Функция WinUsb_ReadIsochPipe считывает данные из изохронной конечной точки IN.

Синтаксис

BOOL WinUsb_ReadIsochPipe(
  [in]           WINUSB_ISOCH_BUFFER_HANDLE  BufferHandle,
  [in]           ULONG                       Offset,
  [in]           ULONG                       Length,
  [in, out]      PULONG                      FrameNumber,
  [in]           ULONG                       NumberOfPackets,
  [out]          PUSBD_ISO_PACKET_DESCRIPTOR IsoPacketDescriptors,
  [in, optional] LPOVERLAPPED                Overlapped
);

Параметры

[in] BufferHandle

Непрозрачный дескриптор буфера передачи, зарегистрированный при предыдущем вызове WinUsb_RegisterIsochBuffer.

[in] Offset

Смещение в буфер относительно начала передачи.

[in] Length

Длина буфера передачи в байтах.

[in, out] FrameNumber

На входных данных указывает начальный номер кадра для передачи. В выходных данных содержит номер кадра, следующего за последним кадром, используемым при передаче.

[in] NumberOfPackets

Общее количество изохронных пакетов, необходимых для хранения буфера передачи. Также указывает количество элементов в массиве, на который указывают isoPacketDescriptors.

[out] IsoPacketDescriptors

Массив USBD_ISO_PACKET_DESCRIPTOR структур. После завершения передачи каждый элемент содержит состояние и размер изохронного пакета.

[in, optional] Overlapped

Указатель на структуру OVERLAPPED, используемую для асинхронных операций.

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

WinUsb_ReadIsochPipe возвращает значение TRUE, если операция выполнена успешно. В противном случае эта функция возвращает значение FALSE, и вызывающий объект может получить зарегистрированную ошибку, вызвав Метод GetLastError.

Комментарии

WinUsb_ReadIsochPipe пакетизирует буфер передачи, чтобы в каждые 1 мс узел получал максимально допустимое количество байтов за каждый интервал. Максимальное число байтов определяется дескриптором конечной точки для полной и высокоскоростной конечных точек, а также дескриптором-компаньоном конечных точек для конечных точек SuperSpeed. Если вызывающий объект отправляет несколько запросов на чтение для потоковой передачи данных с устройства, размер передачи должен быть кратным максимальному значению байтов на интервал (возвращаемый WinUsb_QueryPipeEx) * 8 / интервал.

Из-за упаковки передачи, используемой в базовом интерфейсе режима ядра, самая низкая задержка уведомления для приложения или драйвера составляет 1 мс.

Требования

Требование Значение
Минимальная версия клиента Windows 8.1
Минимальная версия сервера Windows Server 2012 R2
Целевая платформа Универсальное
Верхняя часть winusb.h (включая Winusb.h)
Библиотека Winusb.lib
DLL Winusb.dll

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

Отправка изохронных передач по USB из классического приложения WinUSB

Функции WinUSB