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

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

Разработчик

Ссылка IOUSBLib.h

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

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

Ссылка IOUSBLib.h

Эта документация описывает подробные данные интерфейса программирования для доступа к USB-устройствам и интерфейсам USB от кода, работающего в пространстве пользователя. Эта документация предполагает, что у Вас есть основное понимание материала, содержавшегося в Для определений терминов Набора I/O, использованных в этой документации, таких как соответствие словаря, семьи и драйвера, см. обзор условий Набора I/O и понятий в «Доступе к устройствам и главе» Набора I/O Доступа к Аппаратным средствам Из Приложений.

Эта документация также предполагает, что Вы читали. Рассмотрите тот документ перед использованием этой ссылки.

Вся информация, описанная в этом документе, содержится в заголовочном файле IOUSBLib.h найденный в /System/Library/Frameworks/IOKit.framework/Headers/usb/IOUSBLib.h.

Включенные заголовки

  • <IOKit/usb/USB.h>

  • <IOKit/IOKitLib.h>

  • <CoreFoundation/CFRunLoop.h>

  • <CoreFoundation/CFPlugIn.h>

  • <CoreFoundation/CFPlugInCOM.h>

  • <sys/cdefs.h>

Функции

  • Объявление

    Objective C

    IOUSBDescriptorHeader * ( *FindNextAltInterface)( void *self, const void *current, IOUSBFindInterfaceRequest *request);

    Параметры

    self

    Указатель на IOUSBInterfaceInterface.

    current

    интерфейсный дескриптор, чтобы начать искать от, NULL для запуска в альтернативном интерфейсе 0.

    request

    указывает, какие свойства интерфейсу, должно быть, придется соответствовать.

    Возвращаемое значение

    Указатель на соответствующий интерфейсный дескриптор или NULL, если ни один не соответствует.

    Обсуждение

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

  • Сочтите следующий дескриптор требуемого типа связанным с интерфейсом.

    Объявление

    Objective C

    IOUSBDescriptorHeader * ( *FindNextAssociatedDescriptor)( void *self, const void *currentDescriptor, UInt8 descriptorType);

    Параметры

    self

    Указатель на IOUSBInterfaceInterface.

    currentDescriptor

    Дескриптор, чтобы начать искать от, NULL для запуска с начала списка.

    descriptorType

    Тип дескриптора для поиска, или kUSBAnyDesc для возврата любого типа дескриптора.

    Возвращаемое значение

    Указатель на дескриптор или NULL, если не найдены никакие дескрипторы соответствия.

    Обсуждение

    Интерфейс не должен быть открыт для использования этой функции.

  • Получает недавнее число кадра шины, к которой устройство присоединяется, вместе с системным временем, соответствуя запуску того кадра

    Объявление

    Objective C

    IOReturn ( *GetBusFrameNumberWithTime)( void *self, UInt64 *frame, AbsoluteTime *atTime);

    Параметры

    self

    Указатель на IOUSBInterfaceInterface.

    frame

    Указатель на UInt64 для содержания числа кадра.

    atTime

    Указатель на возвращенный AbsoluteTime, который является системным временем («стенное время») как близко как возможным к началу того кадра USB. Дрожание на этом значении может составить целых 200 микросекунд.

    Возвращаемое значение

    Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService или kIOReturnUnsupported, являются шиной, не поддерживает эту функцию.

    Обсуждение

    Устройство не должно быть открыто для использования этой функции.

  • Получает свойства для канала, включая сопутствующие свойства USB SuperSpeed конечной точки.

    Объявление

    Objective C

    IOReturn ( *GetPipePropertiesV2)( void *self, UInt8 pipeRef, UInt8 *direction, UInt8 *number, UInt8 *transferType, UInt16 *maxPacketSize, UInt8 *interval, UInt8 *maxBurst, UInt8 *mult, UInt16 *bytesPerInterval);

    Параметры

    self

    Указатель на IOUSBInterfaceInterface.

    pipeRef

    Индекс для желаемого канала (1 - GetNumEndpoints).

    direction

    Указатель на UInt8 для получения направления канала.

    number

    Указатель на UInt8 для получения числа канала.

    transferType

    Указатель на UInt8 для получения типа передачи канала.

    maxPacketSize

    Указатель на UInt16 для получения maxPacketSize канала.

    interval

    Указатель на UInt8 для получения интервала для опроса канала для данных (в миллисекундах).

    maxBurst

    Указатель на UInt8 для получения bMaxBurst значения Сопутствующего дескриптора Конечной точки SuperSpeed

    mult

    Указатель на UInt8 для получения mult значения bmAttributes поля Сопутствующего дескриптора Конечной точки SuperSpeed, допустимого только для изохронной конечной точки

    bytesPerInterval

    Указатель на UInt16 для получения wBytesPerInterval значения Сопутствующего дескриптора Конечной точки SuperSpeed, допустимого только для периодических конечных точек

    Возвращаемое значение

    Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService или kIOReturnNotOpen, если интерфейс не открыт для эксклюзивного доступа.

    Обсуждение

    Как только интерфейс открыт, все каналы в том интерфейсе создаются ядром. Число каналов может быть получено GetNumEndpoints. Клиент может тогда получить свойства любого канала с помощью индекса 1 к GetNumEndpoints. Канал 0 является каналом управления по умолчанию в устройстве.

Константы

См. Обзор для документации уровня заголовка.

  • Объявление

    Objective C

    #define kIOUSBDeviceInterfaceID CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x5c, 0x81, 0x87, 0xd0, 0x9e, 0xf3, 0x11, 0xD4, \ 0x8b, 0x45, 0x00, 0x0a, 0x27, 0x05, 0x28, 0x61) #define kIOUSBDeviceInterfaceID182 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x15, 0x2f, 0xc4, 0x96, 0x48, 0x91, 0x11, 0xD5, \ 0x9d, 0x52, 0x00, 0x0a, 0x27, 0x80, 0x1e, 0x86) #define kIOUSBDeviceInterfaceID187 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x3C, 0x9E, 0xE1, 0xEB, 0x24, 0x02, 0x11, 0xB2, \ 0x8E, 0x7E, 0x00, 0x0A, 0x27, 0x80, 0x1E, 0x86) #define kIOUSBDeviceInterfaceID197 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0xC8, 0x09, 0xB8, 0xD8, 0x08, 0x84, 0x11, 0xD7, \ 0xBB, 0x96, 0x00, 0x03, 0x93, 0x3E, 0x3E, 0x3E) #define kIOUSBDeviceInterfaceID245 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0xFE, 0x2F, 0xD5, 0x2F, 0x3B, 0x5A, 0x47, 0x3B, \ 0x97, 0x7B, 0xAD, 0x99, 0x00, 0x1E, 0xB3, 0xED) #define kIOUSBDeviceInterfaceID300 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x39, 0x61, 0x04, 0xF7, 0x94, 0x3D, 0x48, 0x93, \ 0x90, 0xF1, 0x69, 0xBD, 0x6C, 0xF5, 0xC2, 0xEB) #define kIOUSBDeviceInterfaceID320 CFUUIDGetConstantUUIDWithBytes(kCFAllocatorSystemDefault, \ 0x01, 0xA2, 0xD0, 0xE9, 0x42, 0xF6, 0x4A, 0x87, \ 0x8B, 0x8B, 0x77, 0x05, 0x7C, 0x8C, 0xE0, 0xCE) #define kIOUSBDeviceInterfaceID500 CFUUIDGetConstantUUIDWithBytes(kCFAllocatorSystemDefault, \ 0xA3, 0x3C, 0xF0, 0x47, 0x4B, 0x5B, 0x48, 0xE2, \ 0xB5, 0x7D, 0x02, 0x07, 0xFC, 0xEA, 0xE1, 0x3B) #define kIOUSBDeviceUserClientTypeID CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x9d, 0xc7, 0xb7, 0x80, 0x9e, 0xc0, 0x11, 0xD4, \ 0xa5, 0x4f, 0x00, 0x0a, 0x27, 0x05, 0x28, 0x61) #define kIOUSBFactoryID CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x45, 0x47, 0xa8, 0xaa, 0x9e, 0xf3, 0x11, 0xD4, \ 0xa9, 0xbd, 0x00, 0x0a, 0x27, 0x05, 0x28, 0x61) #define kIOUSBInterfaceInterfaceID CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x73, 0xc9, 0x7a, 0xe8, 0x9e, 0xf3, 0x11, 0xD4, \ 0xb1, 0xd0, 0x00, 0x0a, 0x27, 0x05, 0x28, 0x61) #define kIOUSBInterfaceInterfaceID182 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x49, 0x23, 0xac, 0x4c, 0x48, 0x96, 0x11, 0xD5, \ 0x92, 0x08, 0x00, 0x0a, 0x27, 0x80, 0x1e, 0x86) #define kIOUSBInterfaceInterfaceID183 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x1c, 0x43, 0x83, 0x56, 0x74, 0xc4, 0x11, 0xD5, \ 0x92, 0xe6, 0x00, 0x0a, 0x27, 0x80, 0x1e, 0x86) #define kIOUSBInterfaceInterfaceID190 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x8f, 0xdb, 0x84, 0x55, 0x74, 0xa6, 0x11, 0xD6, \ 0x97, 0xb1, 0x00, 0x30, 0x65, 0xd3, 0x60, 0x8e) #define kIOUSBInterfaceInterfaceID192 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x6C, 0x79, 0x8A, 0x6E, 0xD6, 0xE9, 0x11, 0xD6, \ 0xAD, 0xD6, 0x00, 0x03, 0x93, 0x3E, 0x3E, 0x3E) #define kIOUSBInterfaceInterfaceID197 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0xC6, 0x3D, 0x3C, 0x92, 0x08, 0x84, 0x11, 0xD7, \ 0x96, 0x92, 0x00, 0x03, 0x93, 0x3E, 0x3E, 0x3E) #define kIOUSBInterfaceInterfaceID220 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x77, 0x0D, 0xE6, 0x0C, 0x2F, 0xE8, 0x11, 0xD8, \ 0xA5, 0x82, 0x00, 0x03, 0x93, 0xDC, 0xB1, 0xD0) #define kIOUSBInterfaceInterfaceID245 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x64, 0xBA, 0xBD, 0xD2, 0x0F, 0x6B, 0x4B, 0x4F, \ 0x8E, 0x3E, 0xDC, 0x36, 0x04, 0x69, 0x87, 0xAD) #define kIOUSBInterfaceInterfaceID300 CFUUIDGetConstantUUIDWithBytes(NULL, \ 0xBC, 0xEA, 0xAD, 0xDC, 0x88, 0x4D, 0x4F, 0x27, \ 0x83, 0x40, 0x36, 0xD6, 0x9F, 0xAB, 0x90, 0xF6) #define kIOUSBInterfaceInterfaceID500 CFUUIDGetConstantUUIDWithBytes(kCFAllocatorSystemDefault, \ 0x6C, 0x0D, 0x38, 0xC3, 0xB0, 0x93, 0x4E, 0xA7, \ 0x80, 0x9B, 0x09, 0xFB, 0x5D, 0xDD, 0xAC, 0x16) #define kIOUSBInterfaceUserClientTypeID CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x2d, 0x97, 0x86, 0xc6, 0x9e, 0xf3, 0x11, 0xD4, \ 0xad, 0x51, 0x00, 0x0a, 0x27, 0x05, 0x28, 0x61)

    Константы

    • kIOUSBDeviceInterfaceID

      kIOUSBDeviceInterfaceID

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Типом этого интерфейса устройства является IOUSBDeviceInterface. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBDeviceInterface возвращается всеми версиями IOUSBFamily, в настоящее время поставляющего. Однако существуют некоторые функции, которые доступны только в версии 1.8.2 IOUSBFamily и выше. Доступ к этим функциям, в дополнение к функциям, содержавшимся в IOUSBDeviceInterface, может быть получен при помощи одного из других UUIDs, перечисленных в этом заголовке.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBDeviceInterface **dev; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID),
      • (LPVoid)&dev);

      Доступный в OS X v10.0 и позже.

    • kIOUSBDeviceInterfaceID182

      kIOUSBDeviceInterfaceID182

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface182. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBDeviceInterface182 возвращается только версией 1.8.2 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.0.4 OS X. Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBDeviceInterfaceID, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBDeviceInterface182 **dev; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID182),
      • (LPVoid)&dev);

      Доступный в OS X v10.1 и позже.

    • kIOUSBDeviceInterfaceID187

      kIOUSBDeviceInterfaceID187

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface187. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен (см. kIOUSBDeviceUserClientTypeID).

      Примечание: IOUSBDeviceInterface187 возвращается только версией 1.8.7 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.1.2 OS X. Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBDeviceInterfaceID или kIOUSBDeviceInterfaceID182, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBDeviceInterface187 **dev; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID187),
      • (LPVoid)&dev);

      Доступный в OS X v10.1 и позже.

    • kIOUSBDeviceInterfaceID197

      kIOUSBDeviceInterfaceID197

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface197. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBDeviceInterface197 возвращается только версией 1.9.7 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.2.3 OS X. Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBDeviceInterfaceID, kIOUSBDeviceInterfaceID182, или kIOUSBDeviceInterfaceID187, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBDeviceInterface197 **dev; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID197),
      • (LPVoid)&dev);

      Доступный в OS X v10.2 и позже.

    • kIOUSBDeviceInterfaceID245

      kIOUSBDeviceInterfaceID245

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface245. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBDeviceInterface245 возвращается только версией 2.4.5 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.4.5 OS X (для Intel). Эта версия больше не добавляет функции к интерфейсу. Это используется, чтобы позволить нам фиксировать сверхвыпуск в нашем завершении, не влияя ни на какие формирователи тока: В предыдущих версиях мы закончили бы тем, что выпустили наш IOService, даже при том, что мы не сохранили его. Для клиентов IOUSBDeviceInterfaceID245 мы сохраним IOService.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBDeviceInterface245 **dev; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID245),
      • (LPVoid)&dev);

      Доступный в OS X v10.4 и позже.

    • kIOUSBDeviceInterfaceID300

      kIOUSBDeviceInterfaceID300

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface300. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBDeviceInterface300 возвращается только версией 3.0.0 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.5 OS X. Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBDeviceInterfaceID, kIOUSBDeviceInterfaceID182, kIOUSBDeviceInterfaceID187, kIOUSBDeviceInterfaceID197, или kIOUSBDeviceInterfaceID245, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBDeviceInterface300 **dev; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID300),
      • (LPVoid)&dev);

      Доступный в OS X v10.5 и позже.

    • kIOUSBDeviceInterfaceID320

      kIOUSBDeviceInterfaceID320

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface320. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBDeviceInterface320 возвращается только версией 3.2.0 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.5.4 OS X, Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBDeviceInterfaceID, kIOUSBDeviceInterfaceID182, kIOUSBDeviceInterfaceID187, kIOUSBDeviceInterfaceID197, kIOUSBDeviceInterfaceID245, или kIOUSBDeviceInterfaceID300, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBDeviceInterface320 **dev; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID320),
      • (LPVoid)&dev);

      Доступный в OS X v10.6 и позже.

    • kIOUSBDeviceInterfaceID500

      kIOUSBDeviceInterfaceID500

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface320. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBDeviceInterface5000 возвращается только версией 5.0.0 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.7.3 OS X, Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBDeviceInterfaceID, kIOUSBDeviceInterfaceID182, kIOUSBDeviceInterfaceID187, kIOUSBDeviceInterfaceID197, kIOUSBDeviceInterfaceID245, kIOUSBDeviceInterfaceID300, или kIOUSBDeviceInterfaceID320, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBDeviceInterface500 **dev; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID500),
      • (LPVoid)&dev);

      Доступный в OS X v10.7 и позже.

    • kIOUSBDeviceUserClientTypeID

      kIOUSBDeviceUserClientTypeID

      Эта константа UUID используется для получения соответствия интерфейса устройства io_service_t, соответствующему IOUSBDevice в ядре. Как только Вы получили интерфейс устройства для службы, необходимо использовать функцию QueryInterface для получения интерфейса устройства для пользовательского клиента самого.

      Пример:

      • io_service_t usbDeviceRef; // obtained earlier
      • IOCFPlugInInterface **iodev; // fetching this now
      • SInt32 score; // not used
      • IOReturn err;
      • err = IOCreatePlugInInterfaceForService(usbDeviceRef,
      • kIOUSBDeviceUserClientTypeID,
      • kIOCFPlugInInterfaceID,
      • &iodev,
      • &score);

      Доступный в OS X v10.0 и позже.

    • kIOUSBFactoryID

      kIOUSBFactoryID

      Эта константа UUID используется внутренне системой и не придется использовать никаким кодом драйвера для доступа к интерфейсам устройства.

      Доступный в OS X v10.0 и позже.

    • kIOUSBInterfaceInterfaceID

      kIOUSBInterfaceInterfaceID

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Типом этого интерфейса устройства является IOUSBInterfaceInterface. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBInterfaceInterface возвращается всеми версиями IOUSBFamily, в настоящее время поставляющего. Однако существуют некоторые функции, которые доступны только в версии 1.8.2 IOUSBFamily и выше. Доступ к этим функциям, а также ко всем функциям, содержавшимся в IOUSBInterfaceInterface, может быть получен при помощи одного из других UUIDs, перечисленных в этом заголовке.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBInterfaceInterface **intf; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID),
      • (LPVoid)&intf);

      Доступный в OS X v10.0 и позже.

    • kIOUSBInterfaceInterfaceID182

      kIOUSBInterfaceInterfaceID182

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface182. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBInterfaceInterface182 возвращается только версией 1.8.2 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.0.4 OS X. Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBInterfaceInterface182 **intf; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID182),
      • (LPVoid)&intf);

      Доступный в OS X v10.1 и позже.

    • kIOUSBInterfaceInterfaceID183

      kIOUSBInterfaceInterfaceID183

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface183. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBInterfaceInterface183 возвращается только версией 1.8.3 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.1 OS X. Если Ваше программное обеспечение будет работать на версии OS X до 10,1, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID или kIOUSBInterfaceInterfaceID182, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBInterfaceInterface183 **intf; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID183),
      • (LPVoid)&intf);

      Доступный в OS X v10.1 и позже.

    • kIOUSBInterfaceInterfaceID190

      kIOUSBInterfaceInterfaceID190

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface190. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBInterfaceInterface190 возвращается только версией 1.9 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.2 OS X. Если Ваше программное обеспечение будет работать на версии OS X до 10,2, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID, kIOUSBInterfaceInterfaceID182, или kIOUSBInterfaceInterfaceID183, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBInterfaceInterface190 **intf; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID190),
      • (LPVoid)&intf);

      Доступный в OS X v10.2 и позже.

    • kIOUSBInterfaceInterfaceID192

      kIOUSBInterfaceInterfaceID192

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface192. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBInterfaceInterface192 возвращается только версией 1.9.2 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.2.3 OS X. Если Ваше программное обеспечение будет работать на версии OS X до 10.2.3, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID, kIOUSBInterfaceInterfaceID182, kIOUSBInterfaceInterfaceID183, или kIOUSBInterfaceInterfaceID190, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBInterfaceInterface192 **intf; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID192),
      • (LPVoid)&intf);

      Доступный в OS X v10.2 и позже.

    • kIOUSBInterfaceInterfaceID197

      kIOUSBInterfaceInterfaceID197

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface197. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBInterfaceInterface197 возвращается только версией 1.9.7 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.2.5 OS X. Если Ваше программное обеспечение будет работать на версии OS X до 10.2.5, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID, kIOUSBInterfaceInterfaceID182, kIOUSBInterfaceInterfaceID183, kIOUSBInterfaceInterfaceID190, или kIOUSBInterfaceInterfaceID192, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBInterfaceInterface197 **intf; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID197),
      • (LPVoid)&intf);

      Доступный в OS X v10.2 и позже.

    • kIOUSBInterfaceInterfaceID220

      kIOUSBInterfaceInterfaceID220

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface197. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBInterfaceInterface220 возвращается только версией 2.2.0 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.4 OS X. Если Ваше программное обеспечение будет работать на версии OS X до 10,4, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID, kIOUSBInterfaceInterfaceID182, kIOUSBInterfaceInterfaceID183, kIOUSBInterfaceInterfaceID190, kIOUSBInterfaceInterfaceID192, или kIOUSBInterfaceInterfaceID197, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBInterfaceInterface220 **intf; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID220),
      • (LPVoid)&intf);

      Доступный в OS X v10.4 и позже.

    • kIOUSBInterfaceInterfaceID245

      kIOUSBInterfaceInterfaceID245

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface245. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBInterfaceInterface245 возвращается только версией 2.4.5 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.4.5 OS X. Эта версия не добавляет новых функций. Это используется, чтобы позволить нам фиксировать утечку в нашем завершении, не влияя ни на какие формирователи тока: В предыдущих версиях мы не выпустили бы ссылку на IOUSBDevice. Для клиентов IOUSBInterfaceInterfaceID245 мы теперь выпустим ту ссылку.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBInterfaceInterface245 **intf; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID245),
      • (LPVoid)&intf);

      Доступный в OS X v10.4 и позже.

    • kIOUSBInterfaceInterfaceID300

      kIOUSBInterfaceInterfaceID300

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface300. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBInterfaceInterface300 возвращается только версией 3.0.0 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.5 OS X. Если Ваше программное обеспечение будет работать на версии OS X до 10,5, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID, kIOUSBInterfaceInterfaceID182, kIOUSBInterfaceInterfaceID183, kIOUSBInterfaceInterfaceID190, kIOUSBInterfaceInterfaceID192, kIOUSBInterfaceInterfaceID197, kIOUSBInterfaceInterfaceID220, или kIOUSBInterfaceInterfaceID245, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBInterfaceInterface300 **intf; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID300),
      • (LPVoid)&intf);

      Доступный в OS X v10.5 и позже.

    • kIOUSBInterfaceInterfaceID500

      kIOUSBInterfaceInterfaceID500

      Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface500. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.

      Примечание: IOUSBInterfaceInterface500 возвращается только версией 5.0.0 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.7.3 OS X. Если Ваше программное обеспечение будет работать на версии OS X до 10.7.3, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID, kIOUSBInterfaceInterfaceID182, kIOUSBInterfaceInterfaceID183, kIOUSBInterfaceInterfaceID190, kIOUSBInterfaceInterfaceID192, kIOUSBInterfaceInterfaceID197, kIOUSBInterfaceInterfaceID220, kIOUSBInterfaceInterfaceID245, или kIOUSBInterfaceInterfaceID300, и у Вас не будет доступа к некоторым функциям.

      Пример:

      • IOCFPluginInterface **iodev; // obtained earlier
      • IOUSBInterfaceInterface500 **intf; // fetching this now
      • IOReturn err;
      • err = (*iodev)->QueryInterface(iodev,
      • CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID500),
      • (LPVoid)&intf);

      Доступный в OS X v10.7 и позже.

    • kIOUSBInterfaceUserClientTypeID

      kIOUSBInterfaceUserClientTypeID

      Эта константа UUID используется для получения соответствия интерфейса устройства io_service_t, соответствующему IOUSBInterface в ядре. Как только Вы получили интерфейс устройства для службы, необходимо использовать функцию QueryInterface для получения интерфейса устройства для пользовательского клиента самого.

      Пример:

      • io_service_t usbInterfaceRef; // obtained earlier
      • IOCFPlugInInterface **iodev; // fetching this now
      • SInt32 score; // not used
      • IOReturn err;
      • err = IOCreatePlugInInterfaceForService(usbInterfaceRef,
      • kIOUSBInterfaceUserClientTypeID,
      • kIOCFPlugInInterfaceID,
      • &iodev,
      • &score);

      Доступный в OS X v10.0 и позже.