IOUSBDeviceInterface
Объект Вы используете для USB-устройств доступа от пространства пользователя, возвращенного всеми версиями IOUSBFamily, в настоящее время поставляющего.
Функции, перечисленные здесь, будут работать с любой версией IOUSBDeviceInterface, включая тот, поставленный с версией 10.0 OS X.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый не применимый
-
Создает источник цикла выполнения для поставки всех асинхронных уведомлений на этом устройстве.
Объявление
C++
IOReturn ( *CreateDeviceAsyncEventSource)(void *self,CFRunLoopSourceRef *source);Параметры
selfУказатель на IOUSBDeviceInterface.
sourceУказатель на CFRunLoopSourceRef для возврата недавно создаваемого источника события цикла выполнения.
Возвращаемое значение
Возвраты kIOReturnSuccess, если успешный или kern_return_t, если неуспешный.
Обсуждение
Ядро OS X не порождает поток к обратному вызову клиенту. Вместо этого это поставляет уведомления завершения (см.
CreateInterfaceAsyncPort). Эти обертки подпрограммы, что порт с надлежащим кодом маршрутизации так, чтобы уведомления завершения могли быть автоматически направлены через CFRunLoop клиента. -
Создает и регистрирует mach_port_t для асинхронной передачи.
Объявление
C++
IOReturn ( *CreateDeviceAsyncPort)(void *self,mach_port_t *port);Параметры
selfУказатель на IOUSBDeviceInterface.
portУказатель на mach_port_t для возврата недавно создаваемого порта.
Возвращаемое значение
Возвраты kIOReturnSuccess, если успешный или kern_return_t, если неуспешный.
Обсуждение
Ядро OS X не порождает поток к обратному вызову клиенту. Вместо этого это поставляет уведомления завершения на этом порту Маха. После получения сообщения на этом порту клиент обязан вызвать IOKitLib.h IODispatchCalloutFromMessage () функция для декодирования уведомления.
-
Создает итератор для итерации по некоторым или всем интерфейсам устройства.
Объявление
C++
IOReturn ( *CreateInterfaceIterator)(void *self,IOUSBFindInterfaceRequest *req,io_iterator_t *iter);Параметры
selfУказатель на IOUSBDeviceInterface.
reqУказатель структура IOUSBFindInterfaceRequest, описывающая желаемые интерфейсы.
iterУказатель на io_iterator_t для содержания нового итератора.
Возвращаемое значение
Возвраты kIOReturnSuccess, если успешный или kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Отправляет запрос USB на канале управления по умолчанию.
Объявление
C++
IOReturn ( *DeviceRequest)(void *self,IOUSBDevRequest *req);Параметры
selfУказатель на IOUSBDeviceInterface.
reqУказатель на IOUSBDevRequest, содержащий запрос.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService, kIOReturnAborted, если поток прерван перед вызовом, завершаются, или kIOReturnNotOpen, если устройство не открыто для эксклюзивного доступа.
Обсуждение
Устройство должно быть открыто для издавания этого приказа. Необходимо соблюдать осторожность при выпуске запроса устройства, изменяющего состояние устройства. Используйте API, например, чтобы изменить конфигурацию устройства или выбрать альтернативную установку в интерфейсе.
-
Отправляет асинхронный запрос USB на канале управления по умолчанию.
Объявление
C++
IOReturn ( *DeviceRequestAsync)(void *self,IOUSBDevRequest *req,IOAsyncCallback1 callback,void *refCon);Параметры
selfУказатель на IOUSBDeviceInterface.
reqУказатель на IOUSBDevRequest, содержащий запрос.
callbackМетод IOAsyncCallback1. Сообщение, адресуемое этому обратному вызову, добавлено к Асинхронному порту после завершения.
refConПроизвольный указатель, передающийся в качестве параметра подпрограмме обратного вызова.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService, kIOReturnNotOpen, если устройство не открыто для эксклюзивного доступа или kIOUSBNoAsyncPortErr, если никакой Асинхронный порт не был создан для этого интерфейса.
Обсуждение
Устройство должно быть открыто для выдачи этой команды. Необходимо соблюдать осторожность при выпуске запроса устройства, изменяющего состояние устройства. Используйте API, например, чтобы изменить конфигурацию устройства или выбрать альтернативную установку в интерфейсе.
-
Получает текущее число кадра шины, к которой присоединяется устройство.
Объявление
C++
IOReturn ( *GetBusFrameNumber)(void *self,UInt64 *frame,AbsoluteTime *atTime);Параметры
selfУказатель на IOUSBDeviceInterface.
frameУказатель на UInt64 для содержания числа кадра.
atTimeУказатель на возвращенный AbsoluteTime, который является системным временем («стенное время»), когда был считан регистр числа кадра. Это системное время могло быть временем вначале, серединой или концом данного кадра.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает в настоящее время выбираемую конфигурацию в устройстве.
Объявление
C++
IOReturn ( *GetConfiguration)(void *self,UInt8 *configNum);Параметры
selfУказатель на IOUSBDeviceInterface.
configNumУказатель на UInt8 для содержания значения конфигурации.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает указатель на дескриптор конфигурации для данного индекса.
Объявление
C++
IOReturn ( *GetConfigurationDescriptorPtr)(void *self,UInt8 configIndex,IOUSBConfigurationDescriptorPtr *desc);Параметры
selfУказатель на IOUSBDeviceInterface.
configIndexИндекс (базируемый нуль) желаемого дескриптора конфигурации.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Обратите внимание на то, что это укажет на данные, как получено из Шины USB и следовательно будет в порядке Шины USB (т.е. прямой порядок байтов). Устройство не должно быть открыто для использования этой функции.
-
Возвращает адрес устройства на его шине.
Объявление
C++
IOReturn ( *GetDeviceAddress)(void *self,USBDeviceAddress *addr);Параметры
selfУказатель на IOUSBDeviceInterface.
addrУказатель на USBDeviceAddress для содержания результата.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает CFRunLoopSourceRef для этого экземпляра IOService.
Объявление
C++
CFRunLoopSourceRef ( *GetDeviceAsyncEventSource)(void *self);Параметры
selfУказатель на IOUSBDeviceInterface.
Возвращаемое значение
Возвращает источник цикла выполнения, если Вы были созданы, 0 иначе.
-
Возвращает mach_port_t порт для этого экземпляра IOService.
Объявление
C++
mach_port_t ( *GetDeviceAsyncPort)(void *self);Параметры
selfУказатель на IOUSBDeviceInterface.
Возвращаемое значение
Возвращает порт, если Вы существуете, 0 иначе.
-
Возвращает питание, доступное устройству.
Объявление
C++
IOReturn ( *GetDeviceBusPowerAvailable)(void *self,UInt32 *powerAvailable);Параметры
selfУказатель на IOUSBDeviceInterface.
powerAvailableУказатель на UInt32 для содержания доступного питания (в инкрементах на 2 мА).
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает Класс USB (bDeviceClass) устройства.
Объявление
C++
IOReturn ( *GetDeviceClass)(void *self,UInt8 *devClass);Параметры
selfУказатель на IOUSBDeviceInterface.
devClassУказатель на UInt8 для содержания класса устройства.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает Идентификатор продукта USB (idProduct) устройства.
Объявление
C++
IOReturn ( *GetDeviceProduct)(void *self,UInt16 *devProduct);Параметры
selfУказатель на IOUSBDeviceInterface.
devProductУказатель на UInt16 для содержания ProductID.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает Протокол USB (bDeviceProtocol) интерфейса.
Объявление
C++
IOReturn ( *GetDeviceProtocol)(void *self,UInt8 *devProtocol);Параметры
selfУказатель на IOUSBDeviceInterface.
devProtocolУказатель на UInt8 для содержания Протокола устройства.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает Номер выпуска Устройства (bcdDevice) устройства.
Объявление
C++
IOReturn ( *GetDeviceReleaseNumber)(void *self,UInt16 *devRelNum);Параметры
selfУказатель на IOUSBDeviceInterface.
devRelNumУказатель на UInt16 для содержания Номера выпуска Устройства.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает скорость устройства.
Объявление
C++
IOReturn ( *GetDeviceSpeed)(void *self,UInt8 *devSpeed);Параметры
selfУказатель на IOUSBDeviceInterface.
devSpeedУказатель на UInt8 для содержания скорости (kUSBDeviceSpeedLow, kUSBDeviceSpeedFull, kUSBDeviceSpeedHigh, или kUSBDeviceSpeedSuper).
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает Подкласс USB (bDeviceSubClass) устройства.
Объявление
C++
IOReturn ( *GetDeviceSubClass)(void *self,UInt8 *devSubClass);Параметры
selfУказатель на IOUSBDeviceInterface.
devSubClassУказатель на UInt8 для содержания Подкласса устройства.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает Идентификатор поставщика USB (idVendor) устройства.
Объявление
C++
IOReturn ( *GetDeviceVendor)(void *self,UInt16 *devVendor);Параметры
selfУказатель на IOUSBDeviceInterface.
devVendorУказатель на UInt16 для содержания vendorID.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Возвращает расположение ID.
Объявление
C++
IOReturn ( *GetLocationID)(void *self,UInt32 *locationID);Параметры
selfУказатель на IOUSBDeviceInterface.
locationIDУказатель на UInt32 для содержания расположения ID.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
ID расположения является числом на 32 бита, которое уникально среди всех USB-устройств в системе, и которое не изменится на системной перезагрузке, если не изменится топология самой шины. Устройство не должно быть открыто для использования этой функции.
-
Возвращает число поддерживаемых конфигураций в этом устройстве.
Объявление
C++
IOReturn ( *GetNumberOfConfigurations)(void *self,UInt8 *numConfig);Параметры
selfУказатель на IOUSBDeviceInterface.
numConfigУказатель на UInt8 для содержания числа конфигураций.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService.
Обсуждение
Устройство не должно быть открыто для использования этой функции.
-
Говорит IOUSBFamily выпускать сброс к устройству.
Объявление
C++
IOReturn ( *ResetDevice)(void *self);Параметры
selfУказатель на IOUSBDeviceInterface.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService или kIOReturnNotOpen, если устройство не открыто для эксклюзивного доступа.
Обсуждение
Это не повторно перечислит устройство, что означает, что кэшируемые значения дескриптора устройства не будут обновлены после сброса. (Если Вы хотите, чтобы IOUSBFamily перезагрузил кэшируемые значения, используйте вызов USBDeviceReEnumerate). До версии 1.8.5 IOUSBFamily этот вызов также отправил сообщение всем клиентам IOUSBDevice (IOUSBInterfaces и их драйверы). Устройство должно быть открыто для использования этой функции.
Это поведение было устранено в версии 1.8.5 IOUSBFamily.
-
Устанавливает конфигурацию в устройстве.
Объявление
C++
IOReturn ( *SetConfiguration)(void *self,UInt8 configNum);Параметры
selfУказатель на IOUSBDeviceInterface.
configNumЗначение желаемой конфигурации (от IOUSBConfigurationDescriptor.bConfigurationValue).
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService или kIOReturnNotOpen, если устройство не открыто для эксклюзивного доступа.
Обсуждение
Обратите внимание на то, что установка конфигурации заставляет любые существующие объекты IOUSBInterface, присоединенные к IOUSBDevice быть уничтоженными, и все интерфейсы в новой конфигурации, которая инстанцируют как новые объекты IOUSBInterface. Устройство должно быть открыто для использования этой функции.
-
Закрывает соединение задачи с IOUSBDevice.
Объявление
C++
IOReturn ( *USBDeviceClose)(void *self);Параметры
selfУказатель на IOUSBDeviceInterface.
Возвращаемое значение
Возвраты kIOReturnSuccess в случае успеха, некоторая другая ошибка Маха, если соединение больше не действительно.
Обсуждение
Выпускает эксклюзивный доступ клиента к IOUSBDevice.
-
Открывает IOUSBDevice для эксклюзивного доступа.
Объявление
C++
IOReturn ( *USBDeviceOpen)(void *self);Параметры
selfУказатель на IOUSBDeviceInterface.
Возвращаемое значение
Возвраты kIOReturnExclusiveAccess, если некоторой другой задаче уже открыли устройство, kIOReturnError, если соединение с ядром не может быть установлено или kIOReturnSuccess в случае успеха.
Обсуждение
Прежде чем клиент может дать команды, изменяющие состояние устройства, оно, должно быть, преуспело в том, чтобы открыть устройство. Это устанавливает монопольную ссылку между задачей клиента и существующим устройством.
