IOUSBController
Базовый класс для драйвера оборудования USB
Не много непосредственно полезных методов для писателей драйвера USB-устройства, IOUSBDevice, IOUSBInterface и IOUSBPipe обеспечивают более полезные абстракции. Объем этого класса взаимодействует через интерфейс между IOKit и низкоуровневым UIM, основывающимся на Макос9 UIM. Для реализования нового типа контроллера разделите на подклассы IOUSBController и impiment все «функции UIM». AppleUSBOHCI является примером этой реализации всех функций, необходимых для управления контроллером OHCI.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Объявление
C++
virtual IOReturn AbortPipe( USBDeviceAddressaddress, Endpoint *endpoint);Параметры
addressАдрес устройства на Шине USB
endpointописание конечной точки
Обсуждение
Аварийное прекращение работы незаконченный I/O к/от указанной конечной точке, вызывая их к вместе с кодом возврата kIOReturnAborted
-
Объявление
C++
virtual IOReturn AbortPipe( USBDeviceAddressaddress, Endpoint *endpoint);Параметры
addressАдрес устройства на Шине USB
endpointописание конечной точки
Обсуждение
Аварийное прекращение работы незаконченный I/O к/от указанной конечной точке, вызывая их к вместе с кодом возврата kIOReturnAborted
-
Объявление
C++
virtual IOReturn AcquireDeviceZero(void);Обсуждение
Доберитесь нулевая блокировка устройства - вызывают это прежде, чем сбросить устройство, гарантировать, что существует только одно устройство с адресом 0
-
Объявление
C++
virtual IOReturn ClearPipeStall( USBDeviceAddressaddress, Endpoint *endpoint);Параметры
addressАдрес устройства на Шине USB
endpointописание конечной точки
Обсуждение
Очистите останов канала.
-
Объявление
C++
virtual IOReturn ClearPipeStall( USBDeviceAddressaddress, Endpoint *endpoint);Параметры
addressАдрес устройства на Шине USB
endpointописание конечной точки
Обсуждение
Очистите останов канала.
-
Функция UIM, функция набора корневого концентратора, Поскольку CLEAR_FEATURE управляют запросом.
Объявление
C++
virtual IOReturn ClearRootHubFeature( UInt16wValue) = 0;Параметры
wValueФункция для очистки, когда был бы передан в wValue поле пакета SETUP.
-
Функция UIM, ясная функция корневого порта концентратора, Как управление CLEAR_FEATURE запрашивают к порту.
Объявление
C++
virtual IOReturn ClearRootHubPortFeature( UInt16wValue, UInt16port) = 0;Параметры
wValueФункция для очистки, когда был бы передан в wValue поле пакета SETUP.
portПорт для очистки функции
-
Функция UIM, Impliments GET_BUS_STATE управляют запросом, теперь устаревшим.
Объявление
C++
virtual IOReturn GetRootHubPortState( UInt8 *state, UInt16port) = 0; -
Объявление
C++
virtual IOReturn ClosePipe( USBDeviceAddressaddress, Endpoint *endpoint);Параметры
addressАдрес устройства на Шине USB
endpointописание конечной точки
Обсуждение
Закройте канал к указанной конечной точке устройства
-
Объявление
C++
virtual IOReturn ClosePipe( USBDeviceAddressaddress, Endpoint *endpoint);Параметры
addressАдрес устройства на Шине USB
endpointописание конечной точки
Обсуждение
Закройте канал к указанной конечной точке устройства
-
deviceRequest (IOUSBDevRequest *, IOUSBCompletion *, USBDeviceAddress, UInt8) - deviceRequest (IOUSBDevRequest *, IOUSBCompletion *, USBDeviceAddress, UInt8)Объявление
C++
virtual IOReturn DeviceRequest( IOUSBDevRequest *request, IOUSBCompletion *completion, USBDeviceAddressaddress, UInt8epNum);Параметры
requestблок параметра для запроса управления
completionкогда запрос был выполнен, описывает действие для взятия
addressАдрес устройства на Шине USB
epNumчисло конечной точки
Обсуждение
Выполните запрос управления к указанной конечной точке существует две версии этого метода, каждый использует простое недействительное * для указания на часть данных передачи, другого использования IOMemoryDescriptor для указания на данные.
-
DeviceRequest (IOUSBDevRequest *, IOUSBCompletion *, USBDeviceAddress, UInt8) - DeviceRequest (IOUSBDevRequest *, IOUSBCompletion *, USBDeviceAddress, UInt8)Объявление
C++
virtual IOReturn DeviceRequest( IOUSBDevRequest *request, IOUSBCompletion *completion, USBDeviceAddressaddress, UInt8epNum);Параметры
requestблок параметра для запроса управления
completionкогда запрос был выполнен, описывает действие для взятия
addressАдрес устройства на Шине USB
epNumчисло конечной точки
Обсуждение
Выполните запрос управления к указанной конечной точке существует две версии этого метода, каждый использует простое недействительное * для указания на часть данных передачи, другого использования IOMemoryDescriptor для указания на данные.
-
deviceRequest (IOUSBDevRequest *, IOUSBCompletion *, USBDeviceAddress, UInt8, UInt32, UInt32) - deviceRequest (IOUSBDevRequest *, IOUSBCompletion *, USBDeviceAddress, UInt8, UInt32, UInt32)Объявление
C++
virtual IOReturn DeviceRequest( IOUSBDevRequest *request, IOUSBCompletion *completion, USBDeviceAddressaddress, UInt8epNum, UInt32noDataTimeout, UInt32completionTimeout);Параметры
requestблок параметра для запроса управления
completionкогда запрос был выполнен, описывает действие для взятия
addressАдрес устройства на Шине USB
epNumчисло конечной точки
Обсуждение
Выполните запрос управления к указанной конечной точке существует две версии этого метода, каждый использует простое недействительное * для указания на часть данных передачи, другого использования IOMemoryDescriptor для указания на данные.
-
DeviceRequest (IOUSBDevRequest *, IOUSBCompletion *, USBDeviceAddress, UInt8, UInt32, UInt32) - DeviceRequest (IOUSBDevRequest *, IOUSBCompletion *, USBDeviceAddress, UInt8, UInt32, UInt32)Объявление
C++
virtual IOReturn DeviceRequest( IOUSBDevRequest *request, IOUSBCompletion *completion, USBDeviceAddressaddress, UInt8epNum, UInt32noDataTimeout, UInt32completionTimeout);Параметры
requestблок параметра для запроса управления
completionкогда запрос был выполнен, описывает действие для взятия
addressАдрес устройства на Шине USB
epNumчисло конечной точки
Обсуждение
Выполните запрос управления к указанной конечной точке существует две версии этого метода, каждый использует простое недействительное * для указания на часть данных передачи, другого использования IOMemoryDescriptor для указания на данные.
-
Объявление
C++
virtual UInt32 GetBandwidthAvailable(void) = 0;Возвращаемое значение
максимальное количество байтов, которые новый канал ISO мог передать на кадр, данный текущие выделения.
Обсуждение
Возвращает доступную пропускную способность (в байтах) на кадр или микрокадр для изохронных передач.
-
Объявление
C++
virtual UInt64 GetFrameNumber(void) = 0;Возвращаемое значение
Число кадра.
Обсуждение
Возвращает полное текущее число кадра.
-
Объявление
C++
virtual UInt32 GetFrameNumber32(void) = 0;Возвращаемое значение
lsb 32 бита числа кадра.
Обсуждение
Возвращает младшие значащие 32 бита числа кадра.
-
Функция UIM, retrun дескриптор конфигурации моделируемого корневого устройства концентратора, Поскольку GET_DESCRIPTOR управляют запросом на конфигурацию descrptor
Объявление
C++
virtual IOReturn GetRootHubConfDescriptor( OSData *desc) = 0;Параметры
descСтруктура дескриптора для возврата данных в
-
Функция UIM, возвратите дескриптор концентратора моделируемого корневого устройства концентратора Как запрос управления GET_DESCRIPTOR на концентратор descrptor
Объявление
C++
virtual IOReturn GetRootHubDescriptor( IOUSBHubDescriptor *desc) = 0;Параметры
descСтруктура дескриптора для возврата данных в
-
Функция UIM, возвратите дескриптор устройства моделируемого корневого устройства концентратора Как запрос управления GET_DESCRIPTOR на устройство descrptor
Объявление
C++
virtual IOReturn GetRootHubDeviceDescriptor( IOUSBDeviceDescriptor *desc) = 0;Параметры
descСтруктура дескриптора для возврата данных в
-
Функция UIM, Impliments GET_BUS_STATE управляют запросом, теперь устаревшим.
Объявление
C++
virtual IOReturn GetRootHubPortState( UInt8 *state, UInt16port) = 0; -
Функция UIM, получите состояние корневого порта концентратора. Как управление GET_STATUS запрашивают к порту.
Объявление
C++
virtual IOReturn GetRootHubPortStatus( IOUSBHubPortStatus *status, UInt16port) = 0;Параметры
statusСтруктура состояния для возврата
portПорт для получения состояния для.
-
Функция UIM, получите состояние корневого концентратора. Как управление GET_STATUS запрашивают к устройству.
Объявление
C++
virtual IOReturn GetRootHubStatus( IOUSBHubStatus *status) = 0;Параметры
statusСтруктура состояния для возврата
-
Объявление
C++
virtual IOReturn IsocIO( IOMemoryDescriptor *buffer, UInt64frameStart, UInt32numFrames, IOUSBIsocFrame *frameList, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBIsocCompletion *completion);Параметры
bufferпоместите для помещения переданных данных
frameStartUSB структурирует число кадра для запуска передачи
numFramesЧисло кадров для передачи
frameListБайты, чтобы передать и закончиться для каждого кадра
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был заполнен, описывает действие для взятия
Обсуждение
Читайте из или запишите в изохронную конечную точку
-
IsocIO (IOMemoryDescriptor *, UInt64, UInt32, IOUSBIsocFrame *, USBDeviceAddress, конечная точка *, IOUSBIsocCompletion *) - IsocIO (IOMemoryDescriptor *, UInt64, UInt32, IOUSBIsocFrame *, USBDeviceAddress, конечная точка *, IOUSBIsocCompletion *)Объявление
C++
virtual IOReturn IsocIO( IOMemoryDescriptor *buffer, UInt64frameStart, UInt32numFrames, IOUSBIsocFrame *frameList, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBIsocCompletion *completion);Параметры
bufferпоместите для помещения переданных данных
frameStartUSB структурирует число кадра для запуска передачи
numFramesЧисло кадров для передачи
frameListБайты, чтобы передать и закончиться для каждого кадра
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был заполнен, описывает действие для взятия
Обсуждение
Читайте из или запишите в изохронную конечную точку
-
IsocIO (IOMemoryDescriptor *, UInt64, UInt32, IOUSBLowLatencyIsocFrame *, USBDeviceAddress, конечная точка *, IOUSBLowLatencyIsocCompletion *, UInt32) - IsocIO (IOMemoryDescriptor *, UInt64, UInt32, IOUSBLowLatencyIsocFrame *, USBDeviceAddress, конечная точка *, IOUSBLowLatencyIsocCompletion *, UInt32)Объявление
C++
virtual IOReturn IsocIO( IOMemoryDescriptor *buffer, UInt64frameStart, UInt32numFrames, IOUSBLowLatencyIsocFrame *frameList, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBLowLatencyIsocCompletion *completion, UInt32updateFrequency);Параметры
bufferпоместите для помещения переданных данных
frameStartUSB структурирует число кадра для запуска передачи
numFramesЧисло кадров для передачи
frameListБайты, чтобы передать и закончиться для каждого кадра
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был заполнен, описывает действие для взятия
updateFrequencyописывает, как часто обновить framelist, как только передача завершилась (в мс)
Обсуждение
Читайте из или запишите в изохронную конечную точку
-
Объявление
C++
virtual IOReturn OpenPipe( USBDeviceAddressaddress, UInt8speed, Endpoint *endpoint);Параметры
addressАдрес устройства на Шине USB
speedиз устройства: kUSBHighSpeed или kUSBLowSpeed
endpointописание конечной точки для соединения с
Обсуждение
Откройте канал для указанной конечной точки устройства
-
Объявление
C++
virtual IOReturn OpenPipe( USBDeviceAddressaddress, UInt8speed, Endpoint *endpoint);Параметры
addressАдрес устройства на Шине USB
speedиз устройства: kUSBHighSpeed или kUSBLowSpeed
endpointописание конечной точки для соединения с
Обсуждение
Откройте канал для указанной конечной точки устройства
-
Объявление
C++
virtual IOReturn Read( IOMemoryDescriptor *buffer, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBCompletion *completion, UInt32noDataTimeout, UInt32completionTimeout, IOByteCountreqCount);Параметры
bufferпоместите для помещения переданных данных
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был заполнен, описывает действие для взятия
noDataTimeoutчисло миллисекунд никакого перемещения данных перед запросом прерывается
completionTimeoutчисло milliseonds после команды находится на шине, в которой это должно завершиться
reqCountчисло байтов, которые требуют на передачу (не должно быть больше, чем длина буфера),
Обсуждение
Читайте из прерывания или увеличьте объем конечной точки
-
читайте (IOMemoryDescriptor *, USBDeviceAddress, Конечная точка *, IOUSBCompletion *) - читайте (IOMemoryDescriptor *, USBDeviceAddress, Конечная точка *, IOUSBCompletion *)Объявление
C++
virtual IOReturn Read( IOMemoryDescriptor *buffer, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBCompletion *completion);Параметры
bufferпоместите для помещения переданных данных
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был заполнен, описывает действие для взятия
Обсуждение
Читайте из прерывания или увеличьте объем конечной точки
-
Читайте (IOMemoryDescriptor *, USBDeviceAddress, конечная точка *, IOUSBCompletion *) - Читайте (IOMemoryDescriptor *, USBDeviceAddress, конечная точка *, IOUSBCompletion *)Объявление
C++
virtual IOReturn Read( IOMemoryDescriptor *buffer, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBCompletion *completion);Параметры
bufferпоместите для помещения переданных данных
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был заполнен, описывает действие для взятия
Обсуждение
Читайте из прерывания или увеличьте объем конечной точки
-
читайте (IOMemoryDescriptor *, USBDeviceAddress, Конечная точка *, IOUSBCompletion *, UInt32, UInt32) - читайте (IOMemoryDescriptor *, USBDeviceAddress, Конечная точка *, IOUSBCompletion *, UInt32, UInt32)Объявление
C++
virtual IOReturn Read( IOMemoryDescriptor *buffer, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBCompletion *completion, UInt32noDataTimeout, UInt32completionTimeout);Параметры
bufferпоместите для помещения переданных данных
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был заполнен, описывает действие для взятия
Обсуждение
Читайте из прерывания или увеличьте объем конечной точки
-
Читайте (IOMemoryDescriptor *, USBDeviceAddress, конечная точка *, IOUSBCompletion *, UInt32, UInt32) - Читайте (IOMemoryDescriptor *, USBDeviceAddress, конечная точка *, IOUSBCompletion *, UInt32, UInt32)Объявление
C++
virtual IOReturn Read( IOMemoryDescriptor *buffer, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBCompletion *completion, UInt32noDataTimeout, UInt32completionTimeout);Параметры
bufferпоместите для помещения переданных данных
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был заполнен, описывает действие для взятия
Обсуждение
Читайте из прерывания или увеличьте объем конечной точки
-
Объявление
C++
virtual void ReleaseDeviceZero(void);Обсуждение
Выпустите нулевую блокировку устройства - вызывают это для выпуска нулевой блокировки устройства, когда больше нет устройства в адресе 0
-
Объявление
C++
virtual IOReturn ResetPipe( USBDeviceAddressaddress, Endpoint *endpoint);Параметры
addressАдрес устройства на Шине USB
endpointописание конечной точки
Обсуждение
Аварийное прекращение работы незаконченный I/O и ясное остановленное состояние - этот метод является комбинацией abortPipe и clearPipeStall
-
Объявление
C++
virtual IOReturn ResetPipe( USBDeviceAddressaddress, Endpoint *endpoint);Параметры
addressАдрес устройства на Шине USB
endpointописание конечной точки
Обсуждение
Аварийное прекращение работы незаконченный I/O и ясное остановленное состояние - этот метод является комбинацией abortPipe и clearPipeStall
-
Функция UIM, набор адрес моделируемого корневого устройства концентратора, как SET_ADDRESS
Объявление
C++
virtual IOReturn SetHubAddress( UInt16wValue) = 0;Параметры
wValueНовый адрес для корневого концентратора.
-
Функция UIM, дополнительная. Установите данные дескриптора концентратора. Поскольку SET_DESCRIPTOR управляют запросом на концентратор descrptor
Объявление
C++
virtual IOReturn SetRootHubDescriptor( OSData *buffer) = 0;Параметры
bufferДанные дескриптора
-
Функция UIM, функция набора корневого концентратора, Поскольку SET_FEATURE управляют запросом.
Объявление
C++
virtual IOReturn SetRootHubFeature( UInt16wValue) = 0;Параметры
wValueФункция для установки, когда был бы передан в wValue поле пакета SETUP.
-
Функция UIM, функция набора корневого порта концентратора, Как управление SET_FEATURE запрашивают к порту.
Объявление
C++
virtual IOReturn SetRootHubPortFeature( UInt16wValue, UInt16port) = 0;Параметры
wValueФункция для установки, когда был бы передан в wValue поле пакета SETUP.
portПорт для установки функции
-
Аварийное прекращение работы функции UIM указанная конечная точка, возвратите все транзакции, поставленные в очередь на нем.
Объявление
C++
virtual IOReturn UIMAbortEndpoint( shortfunctionNumber, shortendpointNumber, shortdirection) = 0;Параметры
functionNumberUSB-устройство ID устройства для Прерывания
endpointNumberЧисло конечной точки для Прерывания
directionУказывает направление конечной точки для уникальности. kUSBIn или KUSBOut.
-
Функция UIM Ясный останов на указанной конечной точке, обнуленном переключателе данных, возвращает все транзакции, поставленные в очередь на нем.
Объявление
C++
virtual IOReturn UIMClearEndpointStall( shortfunctionNumber, shortendpointNumber, shortdirection) = 0;Параметры
functionNumberUSB-устройство ID устройства для Очистки
endpointNumberЧисло конечной точки для Очистки
directionУказывает направление конечной точки для уникальности. kUSBIn или KUSBOut.
-
Функция UIM, создайте объемную конечную точку для контроллера.
Объявление
C++
virtual IOReturn UIMCreateBulkEndpoint( UInt8functionNumber, UInt8endpointNumber, UInt8direction, UInt8speed, UInt8maxPacketSize) = 0;Параметры
functionNumberUSB-устройство ID устройства для этой конечной точки
endpointNumberЧисло конечной точки для этой конечной точки
directionУказывает направление для конечной точки. kUSBIn или KUSBOut.
speedскорость устройства: kUSBDeviceSpeedLow или kUSBDeviceSpeedFull
maxPacketSizeМаксимальный размер пакета этой конечной точки
-
Функция UIM, Сделайте передачу на объемной конечной точке. Этот метод заменяет метод, берущий многократные параметры.
Объявление
C++
virtual IOReturn UIMCreateBulkTransfer( IOUSBCommand *command);Параметры
commandparamters для передачи.
-
Функция UIM, создайте конечную точку управления для контроллера.
Объявление
C++
virtual IOReturn UIMCreateControlEndpoint( UInt8functionNumber, UInt8endpointNumber, UInt16maxPacketSize, UInt8speed) = 0;Параметры
functionNumberUSB-устройство ID устройства для этой конечной точки
endpointNumberЧисло конечной точки для этой конечной точки
maxPacketSizeМаксимальный размер пакета этой конечной точки
speedскорость устройства: kUSBDeviceSpeedLow или kUSBDeviceSpeedFull
-
Функция UIM, Сделайте передачу на конечной точке управления. Этот метод заменяет метод, берущий недействительное * параметр.
Объявление
C++
virtual IOReturn UIMCreateControlTransfer( shortfunctionNumber, shortendpointNumber, IOUSBCompletioncompletion, IOMemoryDescriptor *CBP, boolbufferRounding, UInt32bufferSize, shortdirection) = 0;Параметры
functionNumberUSB-устройство ID устройства для выполнения транзакции с
endpointNumberЧисло конечной точки для транзакции
completionДействие для выполнения, когда завершается I/O
CBPДескриптор памяти, описывающий буфер для передачи. Никогда не будет описывать память, имеющую непересекающиеся пакеты.
bufferRoundingЕсли это правда, короткие пакеты в порядке и не вызывают ошибку
bufferSizeРазмер данных для передачи в фазе данных. (C
directionУказывает направление и PID для транзакции. kUSBIn, KUSBOut (DATA PID) или kUSBSetup (SETUP PID).
-
Функция UIM, создайте конечную точку прерывания для контроллера.
Объявление
C++
virtual IOReturn UIMCreateInterruptEndpoint( shortfunctionNumber, shortendpointNumber, UInt8direction, shortspeed, UInt16maxPacketSize, shortpollingRate) = 0;Параметры
functionNumberUSB-устройство ID устройства для этой конечной точки
endpointNumberЧисло конечной точки для этой конечной точки
directionУказывает направление для конечной точки. kUSBIn или KUSBOut.
speedскорость устройства: kUSBDeviceSpeedLow или kUSBDeviceSpeedFull
maxPacketSizeМаксимальный размер пакета этой конечной точки
pollingRateМаксимальный интервал опроса от дескриптора конечной точки.
-
Функция UIM, Сделайте передачу на конечной точке прерывания. Этот метод заменяет метод, берущий многократные параметры.
Объявление
C++
virtual IOReturn UIMCreateInterruptTransfer( IOUSBCommand *command);Параметры
commandparamters для передачи.
-
Создайте Изохронную конечную точку в контроллере.
Объявление
C++
virtual IOReturn UIMCreateIsochEndpoint( shortfunctionNumber, shortendpointNumber, UInt32maxPacketSize, UInt8direction) = 0;Параметры
functionNumberUSB-устройство ID устройства для этой конечной точки
endpointNumberЧисло конечной точки для этой конечной точки
maxPacketSizeМаксимальный размер пакета этой конечной точки
directionУказывает направление для конечной точки. kUSBIn или KUSBOut.
-
Функция UIM, Сделайте передачу на конечной точке Isocchronous.
Объявление
C++
virtual IOReturn UIMCreateIsochTransfer( IOUSBIsocCommand *command);Параметры
commandIOUSBIsocCommand возражает со всей необходимой информацией
-
UIMCreateIsochTransfer (короткий, короткий, IOUSBIsocCompletion, UInt8, UInt64, IOMemoryDescriptor *, UInt32, IOUSBIsocFrame *) - UIMCreateIsochTransfer (короткий, короткий, IOUSBIsocCompletion, UInt8, UInt64, IOMemoryDescriptor *, UInt32, IOUSBIsocFrame *)Функция UIM, Сделайте передачу на конечной точке Isocchronous.
Объявление
C++
virtual IOReturn UIMCreateIsochTransfer( shortfunctionNumber, shortendpointNumber, IOUSBIsocCompletioncompletion, UInt8direction, UInt64frameStart, IOMemoryDescriptor *pBuffer, UInt32frameCount, IOUSBIsocFrame *pFrames) = 0;Параметры
functionNumberUSB-устройство ID устройства для выполнения транзакции с
endpointNumberЧисло конечной точки для транзакции
completionДействие для выполнения, когда завершается I/O
directionУказывает направление для передачи. kUSBIn или KUSBOut.
frameStartЧисло кадра, в котором можно запустить транзакции
pBufferописывает буфер памяти.
frameCountчисло кадров для выполнения в транзакциях
pFramesОписывает транзакции в отдельных кадрах, дает размеры и reults для транзакций.
-
UIMCreateIsochTransfer (короткий, короткий, IOUSBIsocCompletion, UInt8, UInt64, IOMemoryDescriptor *, UInt32, IOUSBLowLatencyIsocFrame *, UInt32) - UIMCreateIsochTransfer (короткий, короткий, IOUSBIsocCompletion, UInt8, UInt64, IOMemoryDescriptor *, UInt32, IOUSBLowLatencyIsocFrame *, UInt32)Функция UIM, Сделайте передачу на конечной точке Isocchronous.
Объявление
C++
virtual IOReturn UIMCreateIsochTransfer( shortfunctionNumber, shortendpointNumber, IOUSBIsocCompletioncompletion, UInt8direction, UInt64frameStart, IOMemoryDescriptor *pBuffer, UInt32frameCount, IOUSBLowLatencyIsocFrame *pFrames, UInt32updateFrequency);Параметры
functionNumberUSB-устройство ID устройства для выполнения транзакции с
endpointNumberЧисло конечной точки для транзакции
completionДействие для выполнения, когда завершается I/O
directionУказывает направление для передачи. kUSBIn или KUSBOut.
frameStartЧисло кадра, в котором можно запустить транзакции
pBufferописывает буфер памяти.
frameCountчисло кадров для выполнения в транзакциях
pFramesОписывает транзакции в отдельных кадрах, дает размеры и reults для транзакций.
updateFrequencyОписывает, как часто мы обновляем frameList параметры (в мс)
-
Функция UIM Удаляет указанную конечную точку, возвращая все транзакции, поставленные в очередь на нем.
Объявление
C++
virtual IOReturn UIMDeleteEndpoint( shortfunctionNumber, shortendpointNumber, shortdirection) = 0;Параметры
functionNumberUSB-устройство ID устройства для Удаления
endpointNumberЧисло конечной точки для Удаления
directionУказывает направление конечной точки для уникальности. kUSBIn или KUSBOut.
-
Функция UIM, завершите контроллер и структуры данных UIM до удаления.
Объявление
C++
virtual IOReturn UIMFinalize() = 0; -
Функция UIM, инициализируйте контроллер и структуры данных UIM.
Объявление
C++
virtual IOReturn UIMInitialize( IOService *provider) = 0; -
Функция UIM UIMRootHubStatusChange - Этот метод была внутренней к UIM (никогда не вызываемый суперклассом) до IOUSBControllerV3. Для UIMs, которые являются подклассом IOUSBController или IOUSBControllerV2, он может все еще использоваться внутренне только. Для подклассов IOUSBControllerV3, однако, значение изменилось немного. Теперь, это используется, чтобы определить, существует ли изменение состояния на корневом концентраторе, и если так, это должно обновить переменную экземпляра IOUSBControllerV3 _rootHubStatusChangedBitmap
Объявление
C++
virtual void UIMRootHubStatusChange(void) = 0; -
Функция UIM UIMRootHubStatusChange (bool) - Этот метод был внутренним к UIM (никогда не вызываемый суперклассом) до IOUSBControllerV3. Для UIMs, которые являются подклассом IOUSBController или IOUSBControllerV2, он может все еще использоваться внутренне только. Для подклассов IOUSBControllerV3, однако, это стало устаревшим (это все еще должно быть реализовано, так как это чисто виртуальный),
Объявление
C++
virtual void UIMRootHubStatusChange( boolabort) = 0; -
Функция UIM UIMRootHubStatusChange (bool) - Этот метод был внутренним к UIM (никогда не вызываемый суперклассом) до IOUSBControllerV3. Для UIMs, которые являются подклассом IOUSBController или IOUSBControllerV2, он может все еще использоваться внутренне только. Для подклассов IOUSBControllerV3, однако, это стало устаревшим (это все еще должно быть реализовано, так как это чисто виртуальный),
Объявление
C++
virtual void UIMRootHubStatusChange( boolabort) = 0; -
Объявление
C++
virtual IOReturn Write( IOMemoryDescriptor *buffer, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBCompletion *completion, UInt32noDataTimeout, UInt32completionTimeout, IOByteCountreqCount);Параметры
bufferместо для получения переданных данных
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был освобожден, описывает действие для взятия
noDataTimeoutчисло миллисекунд никакого перемещения данных перед запросом прерывается
completionTimeoutчисло milliseonds после команды находится на шине, в которой это должно завершиться
reqCountчисло байтов, которые требуют на передачу (не должно быть больше, чем длина буфера),
Обсуждение
Запишите в прерывание или увеличьте объем конечной точки
-
запишите (IOMemoryDescriptor *, USBDeviceAddress, Конечная точка *, IOUSBCompletion *) - запишите (IOMemoryDescriptor *, USBDeviceAddress, Конечная точка *, IOUSBCompletion *)Объявление
C++
virtual IOReturn Write( IOMemoryDescriptor *buffer, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBCompletion *completion);Параметры
bufferместо для получения переданных данных
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был освобожден, описывает действие для взятия
Обсуждение
Запишите в прерывание или увеличьте объем конечной точки
-
Запишите (IOMemoryDescriptor *, USBDeviceAddress, конечная точка *, IOUSBCompletion *) - Запишите (IOMemoryDescriptor *, USBDeviceAddress, конечная точка *, IOUSBCompletion *)Объявление
C++
virtual IOReturn Write( IOMemoryDescriptor *buffer, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBCompletion *completion);Параметры
bufferместо для получения переданных данных
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был освобожден, описывает действие для взятия
Обсуждение
Запишите в прерывание или увеличьте объем конечной точки
-
запишите (IOMemoryDescriptor *, USBDeviceAddress, Конечная точка *, IOUSBCompletion *, UInt32, UInt32) - запишите (IOMemoryDescriptor *, USBDeviceAddress, Конечная точка *, IOUSBCompletion *, UInt32, UInt32)Объявление
C++
virtual IOReturn Write( IOMemoryDescriptor *buffer, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBCompletion *completion, UInt32noDataTimeout, UInt32completionTimeout);Параметры
bufferместо для получения переданных данных
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был освобожден, описывает действие для взятия
Обсуждение
Запишите в прерывание или увеличьте объем конечной точки
-
Запишите (IOMemoryDescriptor *, USBDeviceAddress, конечная точка *, IOUSBCompletion *, UInt32, UInt32) - Запишите (IOMemoryDescriptor *, USBDeviceAddress, конечная точка *, IOUSBCompletion *, UInt32, UInt32)Объявление
C++
virtual IOReturn Write( IOMemoryDescriptor *buffer, USBDeviceAddressaddress, Endpoint *endpoint, IOUSBCompletion *completion, UInt32noDataTimeout, UInt32completionTimeout);Параметры
bufferместо для получения переданных данных
addressАдрес устройства на Шине USB
endpointописание конечной точки
completionкогда буфер был освобожден, описывает действие для взятия
Обсуждение
Запишите в прерывание или увеличьте объем конечной точки
-
Объявление
C++
struct Endpoint { IOUSBEndpointDescriptor *descriptor; UInt8 number; UInt8 direction; // in, out UInt8 transferType; // cntrl , bulk, isoc, int UInt16 maxPacketSize; // MPS (includes the multiplier for HS High Bandwidth Isoch endpoints) UInt8 interval; };Поля
descriptorНеобработанный дескриптор конечной точки.
numberЧисло конечной точки
directionНаправление конечной точки: kUSBOut, kUSBIn, kUSBAnyDirn
transferTypeТип конечной точки: kUSBControl, kUSBIsoc, kUSBBulk, kUSBInterrupt
maxPacketSizeМаксимальный размер пакета для конечной точки, которая будет включать множитель для HS Высокие конечные точки Пропускной способности
intervalОпрос интервала в миллисекундах (только relevent для конечных точек Прерывания)
Обсуждение
Описывает конечную точку устройства. Просто более простое для использования версии дескриптора конечной точки.
