Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка класса IOUSBDeviceInterface

Опции
Развертывание Target:

На этой странице

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 в случае успеха.

    Обсуждение

    Прежде чем клиент может дать команды, изменяющие состояние устройства, оно, должно быть, преуспело в том, чтобы открыть устройство. Это устанавливает монопольную ссылку между задачей клиента и существующим устройством.