функция 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