Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка класса IOUSBPipe

Опции
Развертывание Target:

На этой странице
Язык:

IOUSBPipe

Объект, представляющий открытый канал для устройства.

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Не применимый

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.0 и позже.
  • Объявление

    C++

    virtual IOReturn Abort( void);

    Обсуждение

    Этот метод вызывает весь выдающийся I/O на канале к вместе с кодом возврата kIOReturnAborted. Это очищает остановленный бит, но НЕ очищается, переключатель обдумал конечную точку в контроллере. Если Вы хотите очиститься, переключатель укусил, посмотрите ClearPipeStall

  • Объявление

    C++

    virtual IOReturn ClearPipeStall( boolwithDeviceRequest);

    Параметры

    withDeviceRequest

    если это правда, ClearFeature (ENDPOINT_HALT) отправляется в надлежащую конечную точку на устройстве после того, как транзакции на конечной точке контроллеров возвращаются, и переключатель обдумал конечную точку контроллеров, очищен. если этот параметр является ложью, то это эквивалентно пред1.9 API. Это означает, что конечная точка на контроллере очищена, но никакой DeviceRequest не отправляется в конечную точку устройства.

    Обсуждение

    AVAILABLE ONLY IN VERSION 1.9 AND ABOVE Этот метод вызывает весь выдающийся I/O на канале к вместе с кодом возврата kIOUSBTransactionReturned. Это также очищает и остановленный бит и переключатель, обдумал конечную точку в контроллере. Драйвер, возможно, должен сбросить переключатель данных в устройстве, чтобы избежать терять любые данные. Если устройство правильно обработает ClearFeature (ENDPOINT_HALT) запрос устройства, то этот API обработает это путем отправления корректного запроса к устройству.

  • Объявление

    C++

    virtual IOReturn ClearStall( void);

    Обсуждение

    Этот метод эквивалентен ClearPipeStall (ложь). Этот метод доступен перед версией 1.9.

  • Объявление

    C++

    virtual IOReturn ControlRequest( IOUSBDevRequestDesc *request, IOUSBCompletion *completion = 0);

    Параметры

    request

    блок параметра для запроса управления

    completion

    когда запрос был выполнен, описывает действие для взятия

    Обсуждение

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

  • Объявление

    C++

    virtual IOReturn ControlRequest( IOUSBDevRequestDesc *request, UInt32 noDataTimeout, UInt32 completionTimeout, IOUSBCompletion *completion = 0);

    Параметры

    request

    блок параметра для запроса управления

    noDataTimeout

    Указывает количество времени (в мс), после которого будет прервана команда, если никакие данные не были переданы на шине.

    completionTimeout

    Указывает количество времени (в мс), после которого будет прервана команда, если не была завершена вся команда.

    completion

    когда запрос был выполнен, описывает действие для взятия

    Обсуждение

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

  • Объявление

    C++

    virtual UInt8 GetDirection();

    Обсуждение

    возвращает направление pipe:kUSBOut/kUSBIn для объема или канала прерывания, kUSBAnyDirn для канала управления.

  • Объявление

    C++

    virtual const IOUSBController::Endpoint * GetEndpoint();

    Обсуждение

    возвращает указатель на структуру Конечной точки для канала.

  • Объявление

    C++

    virtual const IOUSBEndpointDescriptor * GetEndpointDescriptor();

    Обсуждение

    возвращает дескриптор конечной точки для канала.

  • Объявление

    C++

    virtual UInt8 GetEndpointNumber();

    Обсуждение

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

  • Объявление

    C++

    virtual IOReturn GetPipeStatus( void);

    Обсуждение

    Возвращается состояние канала (kIOUSBPipeStalled канала останавливается, еще kIOReturnSuccess),

  • Объявление

    C++

    virtual UInt8 GetStatus( void);

    Обсуждение

    Этот метод НЕ работает. Не вызывайте его. Посмотрите GetPipeStatus для корректного метода. GetStatus будет всегда возвращаться 0.

  • Объявление

    C++

    virtual UInt8 GetType();

    Обсуждение

    возвраты тип канала: kUSBControl, kUSBBulk или kUSBInterrupt.

  • Объявление

    C++

    virtual IOReturn Read( IOMemoryDescriptor *buffer, UInt32 noDataTimeout, UInt32 completionTimeout, IOByteCount reqCount, IOUSBCompletion *completion = 0, IOByteCount *bytesRead = 0);

    Параметры

    buffer

    поместите для помещения переданных данных

    noDataTimeout

    число миллисекунд никакого действия шины до времени транзакции. Обратите внимание на то, что, если tranasction испытывает таймаут, программному обеспечению драйвера, вероятно, придется ресинхронизировать переключатель данных. Посмотрите ClearPipeStall.

    completionTimeout

    число миллисекунд со времени, транзакция помещается в шину, пока это не испытывает таймаут

    reqCount

    требуемое число байтов для передачи. должен быть <= буфер-> getLength ()

    completion

    когда буфер был заполнен, описывает действие для взятия

    bytesRead

    общие байты возвратов читают для синхронных чтений

    Обсуждение

    Читайте из прерывания или увеличьте объем конечной точки

  • Объявление

    C++

    virtual IOReturn Read( IOMemoryDescriptor *buffer, UInt32 noDataTimeout, UInt32 completionTimeout, IOByteCount reqCount, IOUSBCompletionWithTimeStamp *completion = 0, IOByteCount *bytesRead = 0);

    Параметры

    buffer

    поместите для помещения переданных данных

    noDataTimeout

    число миллисекунд никакого действия шины до времени транзакции. Обратите внимание на то, что, если tranasction испытывает таймаут, программному обеспечению драйвера, вероятно, придется ресинхронизировать переключатель данных. Посмотрите ClearPipeStall.

    completionTimeout

    число миллисекунд со времени, транзакция помещается в шину, пока это не испытывает таймаут

    reqCount

    требуемое число байтов для передачи. должен быть <= буфер-> getLength ()

    completion

    когда буфер был заполнен, описывает действие для взятия

    bytesRead

    общие байты возвратов читают для синхронных чтений

    Обсуждение

    Читайте из прерывания или увеличьте объем конечной точки

  • Объявление

    C++

    virtual IOReturn Read( IOMemoryDescriptor *buffer, UInt64 frameStart, UInt32 numFrames, IOUSBIsocFrame *frameList, IOUSBIsocCompletion *completion = 0);

    Параметры

    buffer

    поместите для помещения переданных данных

    frameStart

    USB структурирует число кадра для запуска передачи

    numFrames

    Число кадров для передачи

    frameList

    Байты, чтобы передать и закончиться для каждого кадра

    completion

    когда буфер был заполнен, описывает действие для взятия

    Обсуждение

    Читайте из изохронной конечной точки

  • Объявление

    C++

    virtual IOReturn Read( IOMemoryDescriptor *buffer, UInt64 frameStart, UInt32 numFrames, IOUSBLowLatencyIsocFrame *frameList, IOUSBLowLatencyIsocCompletion *completion = 0, UInt32 updateFrequency = 0);

    Параметры

    buffer

    поместите для помещения переданных данных

    frameStart

    USB структурирует число кадра для запуска передачи. Для устройств SuperSpeed Isoc, если frameStart является kAppleUSBSSIsocContinuousFrame, то только продолжаются после последней передачи, которую вызвали.

    numFrames

    Число кадров для передачи

    frameList

    Байты для передачи закончитесь, и метка времени для каждого кадра

    completion

    когда буфер был заполнен, описывает действие для взятия

    updateFrequency

    описывает, как часто (в миллисекундах) должен список кадра быть обработанным

    Обсуждение

    AVAILABLE ONLY IN VERSION 1.9.2 AND Чтение ABOVE от изохронной конечной точки и процесс поля IOUSBLowLatencyIsocFrame во время аппаратного прерывания

  • Объявление

    C++

    virtual IOReturn Reset( void);

    Обсуждение

    Этот метод идентичен ClearPipeStall (ложь). Использование того, что предпочтен API.

  • Объявление

    C++

    virtual IOReturn SetPipePolicy( UInt16maxPacketSize, UInt8maxInterval);

    Параметры

    maxPacketSize

    указывает максимальное количество байтов, которые будут использоваться в любом кадре миллисекунды этим каналом. Значение должно быть меньше чем или равно maxPacketSize, указанному в дескрипторе конечной точки.

    maxInterval

    не в настоящее время используемый. зарезервированный для будущего расширения

    Обсуждение

    AVAILABLE ONLY IN VERSION 1.9 AND ABOVE Этот метод позволяет драйверу изменять maxPacketSize Изохронного канала или интервал опроса для канала прерывания. Существует ограниченная сумма пропускной способности на любой единственной шине, и изохронные каналы имеют тенденцию использовать большую часть этой пропускной способности. Драйвер может знать, однако, что никогда не будет такого же количества пропускной способности, использованной как есть указанный в дескрипторе конечной точки канала. Поэтому драйвер может возвратить часть этой пропускной способности к системе при помощи этого метода. Кроме того, если на открытом из IOUSBInterface какой-либо из Изохронных каналов будет неспособен быть открытым из-за отсутствия пропускной способности, то канал будет создаваться с пропускной способностью нуля, и драйвер может получить часть ограниченной пропускной способности, остающейся при помощи этого вызова. Этот метод возвращает kIOReturnBadArgument, если канал является объемом на канале управления, или если maxPacketSize параметр больше, чем сумма, указанная в дескрипторе конечной точки. Если пропускная способность, которую требуют, не может быть выделена, это возвращает kIOReturnNoBandwidth. Иначе это возвращает kIOReturnSuccess.

  • Объявление

    C++

    virtual IOReturn Write( IOMemoryDescriptor *buffer, UInt64 frameStart, UInt32 numFrames, IOUSBLowLatencyIsocFrame *frameList, IOUSBLowLatencyIsocCompletion *completion = 0, UInt32 updateFrequency = 0);

    Параметры

    buffer

    место, чтобы заставить данные передавать

    frameStart

    USB структурирует число кадра для запуска передачи. Для устройств SuperSpeed Isoc, если frameStart является kAppleUSBSSIsocContinuousFrame, то только продолжаются после последней передачи, которую вызвали.

    numFrames

    Число кадров для передачи

    frameList

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

    completion

    когда буфер был освобожден, описывает действие для взятия

    updateFrequency

    описывает, как часто (в миллисекундах) должен список кадра быть обработанным

    Обсуждение

    AVAILABLE ONLY IN VERSION 1.9.2 AND Запись ABOVE к изохронной конечной точке

  • Объявление

    C++

    virtual IOReturn Write( IOMemoryDescriptor *buffer, UInt32 noDataTimeout, UInt32 completionTimeout, IOByteCount reqCount, IOUSBCompletion *completion = 0);

    Параметры

    buffer

    место для получения переданных данных

    noDataTimeout

    число миллисекунд никакого действия шины до времени транзакции. Обратите внимание на то, что, если tranasction испытывает таймаут, программному обеспечению драйвера, вероятно, придется ресинхронизировать переключатель данных. Посмотрите ClearPipeStall.

    completionTimeout

    число миллисекунд со времени, транзакция помещается в шину, пока это не испытывает таймаут

    reqCount

    требуемое число байтов для передачи. должен быть <= буфер-> getLength ()

    completion

    когда буфер был освобожден, описывает действие для взятия

    Обсуждение

    Запишите в прерывание или увеличьте объем конечной точки

  • Объявление

    C++

    virtual IOReturn Write( IOMemoryDescriptor *buffer, UInt64 frameStart, UInt32 numFrames, IOUSBIsocFrame *frameList, IOUSBIsocCompletion *completion = 0);

    Параметры

    buffer

    место для получения переданных данных

    frameStart

    USB структурирует число кадра для запуска передачи

    numFrames

    Число кадров для передачи

    frameList

    Байты, чтобы передать и закончиться для каждого кадра

    completion

    когда буфер был освобожден, описывает действие для взятия

    Обсуждение

    Запишите в изохронную конечную точку