IOUSBControllerV3
подкласс IOUSBControllerV2 для оказания поддержки для новых методов Управления питанием USB.
С Leopard мы предоставляем больше информации Драйверам USB-устройства в дереве IOPower для обеспечения более эффективного Управления питанием. Этот класс контроллера encapulates многие изменения, необходимые для этого, не нарушая сторонние подклассы IOUSBController или IOUSBControllerV2
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.5 и позже.
-
Функция UIM, возвратите дескриптор концентратора моделируемого корневого устройства концентратора Как запрос управления GET_DESCRIPTOR на концентратор descrptor
Объявление
C++
virtual IOReturn GetRootHub3Descriptor( IOUSB3HubDescriptor *
desc
);Параметры
desc
Структура дескриптора для возврата данных в
-
Функция UIM, retrun дескриптор BOS моделируемого корневого устройства концентратора, Поскольку GET_DESCRIPTOR управляют запросом на конфигурацию descrptor
Объявление
C++
virtual IOReturn GetRootHubBOSDescriptor( OSData *
desc
);Параметры
desc
Структура дескриптора для возврата данных в
-
Функция UIM, возвратите дескриптор концентратора моделируемого корневого устройства концентратора Как запрос управления GET_DESCRIPTOR на концентратор descrptor
Объявление
C++
virtual IOReturn GetRootHub3Descriptor( IOUSB3HubDescriptor *
desc
);Параметры
desc
Структура дескриптора для возврата данных в
-
Функция UIM, возвращает количество ошибки порта моделируемого корневого устройства концентратора (GET_PORT_ERROR_COUNT от спецификации USB 3.0)
Объявление
C++
virtual IOReturn GetRootHubPortErrorCount( UInt16
port
, UInt16 *count
);Параметры
port
Номер порта
count
Указатель на UInt16 для хранения фактического ошибочного количества ссылки
-
Объявление
C++
virtual IOReturn Read( UInt32
streamID
, IOMemoryDescriptor *buffer
, USBDeviceAddressaddress
, Endpoint *endpoint
, IOUSBCompletion *completion
, UInt32noDataTimeout
, UInt32completionTimeout
, IOByteCountreqCount
);Параметры
streamID
поток ID потока для чтения из
buffer
поместите для помещения переданных данных
address
Адрес устройства на Шине USB
endpoint
описание конечной точки
completion
когда буфер был заполнен, описывает действие для взятия
noDataTimeout
число миллисекунд никакого перемещения данных перед запросом прерывается
completionTimeout
число milliseonds после команды находится на шине, в которой это должно завершиться
reqCount
число байтов, которые требуют на передачу (не должно быть больше, чем длина буфера),
Обсуждение
Читайте из потока на объемной конечной точке
-
Аварийное прекращение работы функции UIM указанная конечная точка или поток, возвратите все транзакции, поставленные в очередь на нем.
Объявление
C++
virtual IOReturn UIMAbortStream( UInt32
streamID
, shortfunctionNumber
, shortendpointNumber
, shortdirection
);Параметры
streamID
Если нуль, аварийное прекращение работы конечная точка, если не нуль прерывает поток на конечной точке
functionNumber
USB-устройство ID устройства для Прерывания
endpointNumber
Число конечной точки для Прерывания
direction
Указывает направление конечной точки для уникальности. kUSBIn или KUSBOut.
-
Аварийное прекращение работы функции UIM указанная конечная точка или поток, возвратите все транзакции, поставленные в очередь на нем.
Объявление
C++
virtual IOReturn UIMAbortStream( UInt32
streamID
, shortfunctionNumber
, shortendpointNumber
, shortdirection
);Параметры
streamID
Если нуль, аварийное прекращение работы конечная точка, если не нуль прерывает поток на конечной точке
functionNumber
USB-устройство ID устройства для Прерывания
endpointNumber
Число конечной точки для Прерывания
direction
Указывает направление конечной точки для уникальности. kUSBIn или KUSBOut.
-
Создайте конечную точку в контроллере с потоками суперскорости и/или maxburst возможностями, если контроллер не поддерживает суперскорость, этот метод не должен быть переопределен
Объявление
C++
virtual IOReturn UIMCreateSSBulkEndpoint( UInt8
functionNumber
, UInt8endpointNumber
, UInt8direction
, UInt8speed
, UInt16maxPacketSize
, UInt32maxStreams
, UInt32maxBurst
);Параметры
functionNumber
USB-устройство ID устройства
endpointNumber
адрес конечной точки конечной точки в устройстве
direction
Направление потока данных. kUSBIn или kUSBOut
speed
скорость устройства kUSBDeviceSpeedFull, kUSBDeviceSpeedHigh, kUSBDeviceSuper
maxPacketSize
максимальный размер пакета этой конечной точки
maxStreams
Максимальное потоковое число, которое может использовать эта конечная точка
maxBurst
число дополнительных пакетов в пакетной передаче
-
Создайте конечную точку в контроллере с потоками суперскорости и/или maxburst возможностями, если контроллер не поддерживает суперскорость, этот метод не должен быть переопределен
Объявление
C++
virtual IOReturn UIMCreateSSBulkEndpoint( UInt8
functionNumber
, UInt8endpointNumber
, UInt8direction
, UInt8speed
, UInt16maxPacketSize
, UInt32maxStreams
, UInt32maxBurst
);Параметры
functionNumber
USB-устройство ID устройства
endpointNumber
адрес конечной точки конечной точки в устройстве
direction
Направление потока данных. kUSBIn или kUSBOut
speed
скорость устройства kUSBDeviceSpeedFull, kUSBDeviceSpeedHigh, kUSBDeviceSuper
maxPacketSize
максимальный размер пакета этой конечной точки
maxStreams
Максимальное потоковое число, которое может использовать эта конечная точка
maxBurst
число дополнительных пакетов в пакетной передаче
-
Создайте конечную точку в контроллере с maxburst возможностями, если контроллер не поддерживает суперскорость, этот метод не должен быть переопределен
Объявление
C++
virtual IOReturn UIMCreateSSInterruptEndpoint( short
functionNumber
, shortendpointNumber
, UInt8direction
, shortspeed
, UInt16maxPacketSize
, shortpollingRate
, UInt32maxBurst
);Параметры
functionNumber
USB-устройство ID устройства
endpointNumber
адрес конечной точки конечной точки в устройстве
direction
Направление потока данных. kUSBIn или kUSBOut
speed
скорость устройства kUSBDeviceSpeedFull, kUSBDeviceSpeedHigh, kUSBDeviceSpeedSuper
maxPacketSize
максимальный размер пакета этой конечной точки
pollingRate
maxBurst
число дополнительных пакетов в пакетной передаче
-
Создайте конечную точку в контроллере с maxburst возможностями, если контроллер не поддерживает суперскорость, этот метод не должен быть переопределен
Объявление
C++
virtual IOReturn UIMCreateSSIsochEndpoint( short
functionNumber
, shortendpointNumber
, UInt32maxPacketSize
, UInt8direction
, UInt8interval
, UInt32maxBurstAndMult
);Параметры
functionNumber
USB-устройство ID устройства
endpointNumber
адрес конечной точки конечной точки в устройстве
maxPacketSize
максимальный размер пакета этой конечной точки
direction
Направление потока данных. kUSBIn или kUSBOut
interval
maxBurstAndMult
число дополнительных пакетов в пакетной передаче и пакетном множителе
-
Создайте потоки на конечной точке, если контроллер не поддерживает суперскорость, этот метод не должен быть переопределен
Объявление
C++
virtual IOReturn UIMCreateStreams( UInt8
functionNumber
, UInt8endpointNumber
, UInt8direction
, UInt32maxStreams
);Параметры
functionNumber
USB-устройство ID устройства
endpointNumber
адрес конечной точки конечной точки в устройстве
direction
Направление потока данных. kUSBIn или kUSBOut
maxStreams
Число потоков для создания
-
Скажите UIM, что будет сброшено устройство.
Объявление
C++
virtual IOReturn UIMDeviceToBeReset( short
functionAddress
);Параметры
functionAddress
USB-устройство ID устройства
Возвращаемое значение
Возвратите kIOReturnSuccess, если каналы были удалены и потребность быть установкой снова.
-
UIM функционируют Возвраты, сколько потоков на конечную точку поддерживается контроллером USB. Этот вызов не проходит через логический элемент workloop.
Объявление
C++
virtual UInt32 UIMMaxSupportedStream(
void
);Возвращаемое значение
Число потоков на endpont, поддерживающиеся контроллером USB. Значение 0 указывает, что не поддерживаются потоки.
-
Объявление
C++
virtual IOReturn Write( UInt32
streamID
, IOMemoryDescriptor *buffer
, USBDeviceAddressaddress
, Endpoint *endpoint
, IOUSBCompletion *completion
, UInt32noDataTimeout
, UInt32completionTimeout
, IOByteCountreqCount
);Параметры
streamID
поток ID потока для записи в
buffer
место для получения переданных данных
address
Адрес устройства на Шине USB
endpoint
описание конечной точки
completion
когда буфер был освобожден, описывает действие для взятия
noDataTimeout
число миллисекунд никакого перемещения данных перед запросом прерывается
completionTimeout
число milliseonds после команды находится на шине, в которой это должно завершиться
reqCount
число байтов, которые требуют на передачу (не должно быть больше, чем длина буфера),
Обсуждение
Запишите в поток на объемной конечной точке