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( USBDeviceAddress
address
, Endpoint *endpoint
);Параметры
address
Адрес устройства на Шине USB
endpoint
описание конечной точки
Обсуждение
Аварийное прекращение работы незаконченный I/O к/от указанной конечной точке, вызывая их к вместе с кодом возврата kIOReturnAborted
-
Объявление
C++
virtual IOReturn AbortPipe( USBDeviceAddress
address
, Endpoint *endpoint
);Параметры
address
Адрес устройства на Шине USB
endpoint
описание конечной точки
Обсуждение
Аварийное прекращение работы незаконченный I/O к/от указанной конечной точке, вызывая их к вместе с кодом возврата kIOReturnAborted
-
Объявление
C++
virtual IOReturn AcquireDeviceZero(
void
);Обсуждение
Доберитесь нулевая блокировка устройства - вызывают это прежде, чем сбросить устройство, гарантировать, что существует только одно устройство с адресом 0
-
Объявление
C++
virtual IOReturn ClearPipeStall( USBDeviceAddress
address
, Endpoint *endpoint
);Параметры
address
Адрес устройства на Шине USB
endpoint
описание конечной точки
Обсуждение
Очистите останов канала.
-
Объявление
C++
virtual IOReturn ClearPipeStall( USBDeviceAddress
address
, Endpoint *endpoint
);Параметры
address
Адрес устройства на Шине USB
endpoint
описание конечной точки
Обсуждение
Очистите останов канала.
-
Функция UIM, функция набора корневого концентратора, Поскольку CLEAR_FEATURE управляют запросом.
Объявление
C++
virtual IOReturn ClearRootHubFeature( UInt16
wValue
) = 0;Параметры
wValue
Функция для очистки, когда был бы передан в wValue поле пакета SETUP.
-
Функция UIM, ясная функция корневого порта концентратора, Как управление CLEAR_FEATURE запрашивают к порту.
Объявление
C++
virtual IOReturn ClearRootHubPortFeature( UInt16
wValue
, UInt16port
) = 0;Параметры
wValue
Функция для очистки, когда был бы передан в wValue поле пакета SETUP.
port
Порт для очистки функции
-
Функция UIM, Impliments GET_BUS_STATE управляют запросом, теперь устаревшим.
Объявление
C++
virtual IOReturn GetRootHubPortState( UInt8 *
state
, UInt16port
) = 0; -
Объявление
C++
virtual IOReturn ClosePipe( USBDeviceAddress
address
, Endpoint *endpoint
);Параметры
address
Адрес устройства на Шине USB
endpoint
описание конечной точки
Обсуждение
Закройте канал к указанной конечной точке устройства
-
Объявление
C++
virtual IOReturn ClosePipe( USBDeviceAddress
address
, 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
поместите для помещения переданных данных
frameStart
USB структурирует число кадра для запуска передачи
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
поместите для помещения переданных данных
frameStart
USB структурирует число кадра для запуска передачи
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
поместите для помещения переданных данных
frameStart
USB структурирует число кадра для запуска передачи
numFrames
Число кадров для передачи
frameList
Байты, чтобы передать и закончиться для каждого кадра
address
Адрес устройства на Шине USB
endpoint
описание конечной точки
completion
когда буфер был заполнен, описывает действие для взятия
updateFrequency
описывает, как часто обновить framelist, как только передача завершилась (в мс)
Обсуждение
Читайте из или запишите в изохронную конечную точку
-
Объявление
C++
virtual IOReturn OpenPipe( USBDeviceAddress
address
, UInt8speed
, Endpoint *endpoint
);Параметры
address
Адрес устройства на Шине USB
speed
из устройства: kUSBHighSpeed или kUSBLowSpeed
endpoint
описание конечной точки для соединения с
Обсуждение
Откройте канал для указанной конечной точки устройства
-
Объявление
C++
virtual IOReturn OpenPipe( USBDeviceAddress
address
, 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( USBDeviceAddress
address
, Endpoint *endpoint
);Параметры
address
Адрес устройства на Шине USB
endpoint
описание конечной точки
Обсуждение
Аварийное прекращение работы незаконченный I/O и ясное остановленное состояние - этот метод является комбинацией abortPipe и clearPipeStall
-
Объявление
C++
virtual IOReturn ResetPipe( USBDeviceAddress
address
, Endpoint *endpoint
);Параметры
address
Адрес устройства на Шине USB
endpoint
описание конечной точки
Обсуждение
Аварийное прекращение работы незаконченный I/O и ясное остановленное состояние - этот метод является комбинацией abortPipe и clearPipeStall
-
Функция UIM, набор адрес моделируемого корневого устройства концентратора, как SET_ADDRESS
Объявление
C++
virtual IOReturn SetHubAddress( UInt16
wValue
) = 0;Параметры
wValue
Новый адрес для корневого концентратора.
-
Функция UIM, дополнительная. Установите данные дескриптора концентратора. Поскольку SET_DESCRIPTOR управляют запросом на концентратор descrptor
Объявление
C++
virtual IOReturn SetRootHubDescriptor( OSData *
buffer
) = 0;Параметры
buffer
Данные дескриптора
-
Функция UIM, функция набора корневого концентратора, Поскольку SET_FEATURE управляют запросом.
Объявление
C++
virtual IOReturn SetRootHubFeature( UInt16
wValue
) = 0;Параметры
wValue
Функция для установки, когда был бы передан в wValue поле пакета SETUP.
-
Функция UIM, функция набора корневого порта концентратора, Как управление SET_FEATURE запрашивают к порту.
Объявление
C++
virtual IOReturn SetRootHubPortFeature( UInt16
wValue
, UInt16port
) = 0;Параметры
wValue
Функция для установки, когда был бы передан в wValue поле пакета SETUP.
port
Порт для установки функции
-
Аварийное прекращение работы функции UIM указанная конечная точка, возвратите все транзакции, поставленные в очередь на нем.
Объявление
C++
virtual IOReturn UIMAbortEndpoint( short
functionNumber
, shortendpointNumber
, shortdirection
) = 0;Параметры
functionNumber
USB-устройство ID устройства для Прерывания
endpointNumber
Число конечной точки для Прерывания
direction
Указывает направление конечной точки для уникальности. kUSBIn или KUSBOut.
-
Функция UIM Ясный останов на указанной конечной точке, обнуленном переключателе данных, возвращает все транзакции, поставленные в очередь на нем.
Объявление
C++
virtual IOReturn UIMClearEndpointStall( short
functionNumber
, shortendpointNumber
, shortdirection
) = 0;Параметры
functionNumber
USB-устройство ID устройства для Очистки
endpointNumber
Число конечной точки для Очистки
direction
Указывает направление конечной точки для уникальности. kUSBIn или KUSBOut.
-
Функция UIM, создайте объемную конечную точку для контроллера.
Объявление
C++
virtual IOReturn UIMCreateBulkEndpoint( UInt8
functionNumber
, UInt8endpointNumber
, UInt8direction
, UInt8speed
, UInt8maxPacketSize
) = 0;Параметры
functionNumber
USB-устройство ID устройства для этой конечной точки
endpointNumber
Число конечной точки для этой конечной точки
direction
Указывает направление для конечной точки. kUSBIn или KUSBOut.
speed
скорость устройства: kUSBDeviceSpeedLow или kUSBDeviceSpeedFull
maxPacketSize
Максимальный размер пакета этой конечной точки
-
Функция UIM, Сделайте передачу на объемной конечной точке. Этот метод заменяет метод, берущий многократные параметры.
Объявление
C++
virtual IOReturn UIMCreateBulkTransfer( IOUSBCommand *
command
);Параметры
command
paramters для передачи.
-
Функция UIM, создайте конечную точку управления для контроллера.
Объявление
C++
virtual IOReturn UIMCreateControlEndpoint( UInt8
functionNumber
, UInt8endpointNumber
, UInt16maxPacketSize
, UInt8speed
) = 0;Параметры
functionNumber
USB-устройство ID устройства для этой конечной точки
endpointNumber
Число конечной точки для этой конечной точки
maxPacketSize
Максимальный размер пакета этой конечной точки
speed
скорость устройства: kUSBDeviceSpeedLow или kUSBDeviceSpeedFull
-
Функция UIM, Сделайте передачу на конечной точке управления. Этот метод заменяет метод, берущий недействительное * параметр.
Объявление
C++
virtual IOReturn UIMCreateControlTransfer( short
functionNumber
, shortendpointNumber
, IOUSBCompletioncompletion
, IOMemoryDescriptor *CBP
, boolbufferRounding
, UInt32bufferSize
, shortdirection
) = 0;Параметры
functionNumber
USB-устройство ID устройства для выполнения транзакции с
endpointNumber
Число конечной точки для транзакции
completion
Действие для выполнения, когда завершается I/O
CBP
Дескриптор памяти, описывающий буфер для передачи. Никогда не будет описывать память, имеющую непересекающиеся пакеты.
bufferRounding
Если это правда, короткие пакеты в порядке и не вызывают ошибку
bufferSize
Размер данных для передачи в фазе данных. (C
direction
Указывает направление и PID для транзакции. kUSBIn, KUSBOut (DATA PID) или kUSBSetup (SETUP PID).
-
Функция UIM, создайте конечную точку прерывания для контроллера.
Объявление
C++
virtual IOReturn UIMCreateInterruptEndpoint( short
functionNumber
, shortendpointNumber
, UInt8direction
, shortspeed
, UInt16maxPacketSize
, shortpollingRate
) = 0;Параметры
functionNumber
USB-устройство ID устройства для этой конечной точки
endpointNumber
Число конечной точки для этой конечной точки
direction
Указывает направление для конечной точки. kUSBIn или KUSBOut.
speed
скорость устройства: kUSBDeviceSpeedLow или kUSBDeviceSpeedFull
maxPacketSize
Максимальный размер пакета этой конечной точки
pollingRate
Максимальный интервал опроса от дескриптора конечной точки.
-
Функция UIM, Сделайте передачу на конечной точке прерывания. Этот метод заменяет метод, берущий многократные параметры.
Объявление
C++
virtual IOReturn UIMCreateInterruptTransfer( IOUSBCommand *
command
);Параметры
command
paramters для передачи.
-
Создайте Изохронную конечную точку в контроллере.
Объявление
C++
virtual IOReturn UIMCreateIsochEndpoint( short
functionNumber
, shortendpointNumber
, UInt32maxPacketSize
, UInt8direction
) = 0;Параметры
functionNumber
USB-устройство ID устройства для этой конечной точки
endpointNumber
Число конечной точки для этой конечной точки
maxPacketSize
Максимальный размер пакета этой конечной точки
direction
Указывает направление для конечной точки. kUSBIn или KUSBOut.
-
Функция UIM, Сделайте передачу на конечной точке Isocchronous.
Объявление
C++
virtual IOReturn UIMCreateIsochTransfer( IOUSBIsocCommand *
command
);Параметры
command
IOUSBIsocCommand возражает со всей необходимой информацией
-
UIMCreateIsochTransfer (короткий, короткий, IOUSBIsocCompletion, UInt8, UInt64, IOMemoryDescriptor *, UInt32, IOUSBIsocFrame *) - UIMCreateIsochTransfer (короткий, короткий, IOUSBIsocCompletion, UInt8, UInt64, IOMemoryDescriptor *, UInt32, IOUSBIsocFrame *)
Функция UIM, Сделайте передачу на конечной точке Isocchronous.
Объявление
C++
virtual IOReturn UIMCreateIsochTransfer( short
functionNumber
, shortendpointNumber
, IOUSBIsocCompletioncompletion
, UInt8direction
, UInt64frameStart
, IOMemoryDescriptor *pBuffer
, UInt32frameCount
, IOUSBIsocFrame *pFrames
) = 0;Параметры
functionNumber
USB-устройство 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( short
functionNumber
, shortendpointNumber
, IOUSBIsocCompletioncompletion
, UInt8direction
, UInt64frameStart
, IOMemoryDescriptor *pBuffer
, UInt32frameCount
, IOUSBLowLatencyIsocFrame *pFrames
, UInt32updateFrequency
);Параметры
functionNumber
USB-устройство ID устройства для выполнения транзакции с
endpointNumber
Число конечной точки для транзакции
completion
Действие для выполнения, когда завершается I/O
direction
Указывает направление для передачи. kUSBIn или KUSBOut.
frameStart
Число кадра, в котором можно запустить транзакции
pBuffer
описывает буфер памяти.
frameCount
число кадров для выполнения в транзакциях
pFrames
Описывает транзакции в отдельных кадрах, дает размеры и reults для транзакций.
updateFrequency
Описывает, как часто мы обновляем frameList параметры (в мс)
-
Функция UIM Удаляет указанную конечную точку, возвращая все транзакции, поставленные в очередь на нем.
Объявление
C++
virtual IOReturn UIMDeleteEndpoint( short
functionNumber
, shortendpointNumber
, shortdirection
) = 0;Параметры
functionNumber
USB-устройство 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( bool
abort
) = 0; -
Функция UIM UIMRootHubStatusChange (bool) - Этот метод был внутренним к UIM (никогда не вызываемый суперклассом) до IOUSBControllerV3. Для UIMs, которые являются подклассом IOUSBController или IOUSBControllerV2, он может все еще использоваться внутренне только. Для подклассов IOUSBControllerV3, однако, это стало устаревшим (это все еще должно быть реализовано, так как это чисто виртуальный),
Объявление
C++
virtual void UIMRootHubStatusChange( bool
abort
) = 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 для конечных точек Прерывания)
Обсуждение
Описывает конечную точку устройства. Просто более простое для использования версии дескриптора конечной точки.