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


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

WinUsb_WriteIsochPipeAsap отправляет запрос на запись содержимого буфера в изохронную конечную точку OUT.

Синтаксис

BOOL WinUsb_WriteIsochPipeAsap(
  [in]           WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
  [in]           ULONG                      Offset,
  [in]           ULONG                      Length,
  [in]           BOOL                       ContinueStream,
  [in, optional] LPOVERLAPPED               Overlapped
);

Параметры

[in] BufferHandle

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

[in] Offset

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

[in] Length

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

[in] ContinueStream

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

[in, optional] Overlapped

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

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

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

Если вызывающий объект задает для ContinueStream значение TRUE, передача завершается ошибкой, если Winusb.sys не может запланировать передачу для продолжения потока без удаления одного или нескольких кадров.

Комментарии

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

WinUsb_WriteIsochPipeAsap пакетизирует буфер передачи, чтобы в каждые 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