IOUSBInterfaceInterface182
Объект Вы используете для доступа к интерфейсу USB-устройства от пространства пользователя, возвращенного версией 1.8.2 IOUSBFamily и выше.
Функции, перечисленные здесь, включают все функции, определяемые для IOUSBInterfaceInterface и некоторых новых функций, которые доступны на версии 10.0.4 OS X и позже.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый не применимый
-
Отправляет асинхронный запрос USB на канале управления.
Объявление
C++
IOReturn ( *ControlRequestAsyncTO)(
void *self,
UInt8 pipeRef,
IOUSBDevRequestTO *req,
IOAsyncCallback1 callback,
void *refCon);
Параметры
self
Указатель на IOUSBInterfaceInterface.
pipeRef
Индекс управления передает по каналу для использования. Используйте нуль для канала управления по умолчанию на устройстве.
req
Указатель на IOUSBDevRequestTO, содержащий запрос.
callback
Метод IOAsyncCallback1. Сообщение, адресуемое этому обратному вызову, добавлено к Асинхронному порту после завершения.
refCon
Произвольный указатель, передающийся в качестве параметра подпрограмме обратного вызова.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService или kIOReturnNotOpen, если интерфейс не открыт для эксклюзивного доступа.
Обсуждение
Структура IOUSBDevRequestTO позволяет клиенту указывать значения тайм-аута для этого запроса. Используйте pipeRef=0 для канала управления устройствами по умолчанию. Если запрос является стандартным запросом, который изменит состояние устройства, устройство должно быть открыто, что означает, что необходимо использовать IOUSBDeviceInterface для этой команды.
-
Отправляет запрос USB на канале управления.
Объявление
C++
IOReturn ( *ControlRequestTO)(
void *self,
UInt8 pipeRef,
IOUSBDevRequestTO *req);
Параметры
self
Указатель на IOUSBInterfaceInterface.
pipeRef
Индекс управления передает по каналу для использования. Используйте нуль для канала управления по умолчанию на устройстве.
req
Указатель на IOUSBDevRequestTO, содержащий запрос.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService, или kIOReturnAborted, если поток прерван перед вызовом, завершаются, kIOReturnNotOpen, если интерфейс не открыт для эксклюзивного доступа.
Обсуждение
Структура IOUSBDevRequestTO позволяет клиенту указывать значения тайм-аута для этого запроса. Если запрос является стандартным запросом, который изменит состояние устройства, устройство должно быть открыто, что означает, что необходимо использовать IOUSBDeviceInterface для этой команды.
-
Выполняет асинхронное чтение на BULK канал IN, с указанными значениями тайм-аута.
Объявление
C++
IOReturn ( *ReadPipeAsyncTO)(
void *self,
UInt8 pipeRef,
void *buf,
UInt32 size,
UInt32 noDataTimeout,
UInt32 completionTimeout,
IOAsyncCallback1 callback,
void *refcon);
Параметры
self
Указатель на IOUSBInterfaceInterface.
pipeRef
Индекс для желаемого канала (1 - GetNumEndpoints).
buf
Буфер для содержания данных.
size
На размер буфера указывает buf.
noDataTimeout
Указывает временную стоимость в миллисекундах. Как только запрос ставится в очередь на шине, если никакие данные не будут переданы в этом количестве времени, то запрос будет прерван и возвращен.
completionTimeout
Указывает временную стоимость в миллисекундах. Как только запрос ставится в очередь на шине, если весь запрос не будет завершен в этом количестве времени, то запрос будет прерван и возвращен.
callback
Метод IOAsyncCallback1. Сообщение, адресуемое этому обратному вызову, добавлено к Асинхронному порту после завершения.
refcon
Произвольный указатель, передающийся в качестве параметра подпрограмме обратного вызова.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService или kIOReturnNotOpen, если интерфейс не открыт для эксклюзивного доступа. Возвраты kIOReturnBadArgument, если значения тайм-аута указаны для канала прерывания. Если ошибка возвращается, параметр размера не обновляется, и буфер НЕ будет содержать допустимых данных.
Обсуждение
Интерфейс должен быть открыт для канала для существования.
Если тайм-аут указан, и запрос испытывает таймаут, драйвер, возможно, должен ресинхронизировать переключатель данных. Посмотрите
ClearPipeStall
илиClearPipeStallBothEnds
.Тайм-ауты не применяются к каналам прерывания, таким образом, необходимо использовать ReadPipeAsync API для выполнения асинхронного чтения от канала прерывания.
-
Выполняет чтение на BULK канал IN, указывая значения тайм-аута.
Объявление
C++
IOReturn ( *ReadPipeTO)(
void *self,
UInt8 pipeRef,
void *buf,
UInt32 *size,
UInt32 noDataTimeout,
UInt32 completionTimeout);
Параметры
self
Указатель на IOUSBInterfaceInterface.
pipeRef
Индекс для желаемого канала (1 - GetNumEndpoints).
buf
Буфер для содержания данных.
size
На указатель на размер буфера указывает buf.
noDataTimeout
Указывает временную стоимость в миллисекундах. Как только запрос ставится в очередь на шине, если никакие данные не будут переданы в этом количестве времени, то запрос будет прерван и возвращен.
completionTimeout
Указывает временную стоимость в миллисекундах. Как только запрос ставится в очередь на шине, если весь запрос не будет завершен в этом количестве времени, то запрос будет прерван и возвращен.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService, kIOReturnAborted, если поток прерван перед вызовом, завершаются, или kIOReturnNotOpen, если интерфейс не открыт для эксклюзивного доступа. Возвраты kIOReturnBadArgument, если значения тайм-аута указаны для канала прерывания. Если ошибка возвращается, параметр размера не обновляется, и буфер НЕ будет содержать допустимых данных.
Обсуждение
Интерфейс должен быть открыт для канала для существования.
Если тайм-аут указан, и запрос испытывает таймаут, драйвер, возможно, должен ресинхронизировать переключатель данных. Посмотрите
ClearPipeStall
илиClearPipeStallBothEnds
.Тайм-ауты не применяются к каналам прерывания, таким образом, необходимо использовать ReadPipe API для выполнения чтения от канала прерывания.
-
Возвращает индекс строк в интерфейсном дескрипторе.
Объявление
C++
IOReturn ( *USBInterfaceGetStringIndex)(
void *self,
UInt8 *si);
Параметры
self
Указатель на IOUSBInterfaceInterface.
si
Указатель на UInt8 для содержания индекса строк.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Интерфейс не должен быть открыт для использования этой функции.
-
Выполняет асинхронную запись на BULK канал OUT, с указанными значениями тайм-аута.
Объявление
C++
IOReturn ( *WritePipeAsyncTO)(
void *self,
UInt8 pipeRef,
void *buf,
UInt32 size,
UInt32 noDataTimeout,
UInt32 completionTimeout,
IOAsyncCallback1 callback,
void *refcon);
Параметры
self
Указатель на IOUSBInterfaceInterface.
pipeRef
Индекс для желаемого канала (1 - GetNumEndpoints).
buf
Буфер для содержания данных.
size
На размер буфера указывает buf.
noDataTimeout
Указывает временную стоимость в миллисекундах. Как только запрос ставится в очередь на шине, если никакие данные не будут переданы в этом количестве времени, то запрос будет прерван и возвращен.
completionTimeout
Указывает временную стоимость в миллисекундах. Как только запрос ставится в очередь на шине, если весь запрос не будет завершен в этом количестве времени, то запрос будет прерван и возвращен.
callback
Метод IOAsyncCallback1. Сообщение, адресуемое этому обратному вызову, добавлено к Асинхронному порту после завершения.
refcon
Произвольный указатель, передающийся в качестве параметра подпрограмме обратного вызова.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService или kIOReturnNotOpen, если интерфейс не открыт для эксклюзивного доступа.
Обсуждение
Интерфейс должен быть открыт для канала для существования.
Если тайм-аут указан, и запрос испытывает таймаут, драйвер, возможно, должен ресинхронизировать переключатель данных. Посмотрите
ClearPipeStall
илиClearPipeStallBothEnds
. -
Выполняет асинхронную запись на BULK канал OUT, с указанными значениями тайм-аута.
Объявление
C++
IOReturn ( *WritePipeTO)(
void *self,
UInt8 pipeRef,
void *buf,
UInt32 size,
UInt32 noDataTimeout,
UInt32 completionTimeout);
Параметры
self
Указатель на IOUSBInterfaceInterface.
pipeRef
Индекс для желаемого канала (1 - GetNumEndpoints).
buf
Буфер для содержания данных.
size
На размер буфера указывает buf.
noDataTimeout
Указывает временную стоимость в миллисекундах. Как только запрос ставится в очередь на шине, если никакие данные не будут переданы в этом количестве времени, то запрос будет прерван и возвращен.
completionTimeout
Указывает временную стоимость в миллисекундах. Как только запрос ставится в очередь на шине, если весь запрос не будет завершен в этом количестве времени, то запрос будет прерван и возвращен.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService, kIOReturnAborted, если поток прерван перед вызовом, завершаются, или kIOReturnNotOpen, если интерфейс не открыт для эксклюзивного доступа.
Обсуждение
Интерфейс должен быть открыт для канала для существования.
Если тайм-аут указан, и запрос испытывает таймаут, драйвер, возможно, должен ресинхронизировать переключатель данных. Посмотрите
ClearPipeStall
илиClearPipeStallBothEnds
.