Ссылка 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)Константы
-
kIOUSBDeviceInterfaceIDkIOUSBDeviceInterfaceIDЭта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Типом этого интерфейса устройства является IOUSBDeviceInterface. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.
Примечание: IOUSBDeviceInterface возвращается всеми версиями IOUSBFamily, в настоящее время поставляющего. Однако существуют некоторые функции, которые доступны только в версии 1.8.2 IOUSBFamily и выше. Доступ к этим функциям, в дополнение к функциям, содержавшимся в IOUSBDeviceInterface, может быть получен при помощи одного из других UUIDs, перечисленных в этом заголовке.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBDeviceInterface **dev; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID),(LPVoid)&dev);
Доступный в OS X v10.0 и позже.
-
kIOUSBDeviceInterfaceID182kIOUSBDeviceInterfaceID182Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface182. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.
Примечание: IOUSBDeviceInterface182 возвращается только версией 1.8.2 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.0.4 OS X. Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBDeviceInterfaceID, и у Вас не будет доступа к некоторым функциям.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBDeviceInterface182 **dev; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID182),(LPVoid)&dev);
Доступный в OS X v10.1 и позже.
-
kIOUSBDeviceInterfaceID187kIOUSBDeviceInterfaceID187Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface187. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен (см. kIOUSBDeviceUserClientTypeID).
Примечание: IOUSBDeviceInterface187 возвращается только версией 1.8.7 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.1.2 OS X. Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBDeviceInterfaceID или kIOUSBDeviceInterfaceID182, и у Вас не будет доступа к некоторым функциям.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBDeviceInterface187 **dev; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID187),(LPVoid)&dev);
Доступный в OS X v10.1 и позже.
-
kIOUSBDeviceInterfaceID197kIOUSBDeviceInterfaceID197Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface197. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.
Примечание: IOUSBDeviceInterface197 возвращается только версией 1.9.7 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.2.3 OS X. Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBDeviceInterfaceID, kIOUSBDeviceInterfaceID182, или kIOUSBDeviceInterfaceID187, и у Вас не будет доступа к некоторым функциям.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBDeviceInterface197 **dev; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID197),(LPVoid)&dev);
Доступный в OS X v10.2 и позже.
-
kIOUSBDeviceInterfaceID245kIOUSBDeviceInterfaceID245Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface245. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.
Примечание: IOUSBDeviceInterface245 возвращается только версией 2.4.5 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.4.5 OS X (для Intel). Эта версия больше не добавляет функции к интерфейсу. Это используется, чтобы позволить нам фиксировать сверхвыпуск в нашем завершении, не влияя ни на какие формирователи тока: В предыдущих версиях мы закончили бы тем, что выпустили наш IOService, даже при том, что мы не сохранили его. Для клиентов IOUSBDeviceInterfaceID245 мы сохраним IOService.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBDeviceInterface245 **dev; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID245),(LPVoid)&dev);
Доступный в OS X v10.4 и позже.
-
kIOUSBDeviceInterfaceID300kIOUSBDeviceInterfaceID300Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBDevice в ядре. Тип этого интерфейса устройства является IOUSBDeviceInterface300. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.
Примечание: IOUSBDeviceInterface300 возвращается только версией 3.0.0 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.5 OS X. Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBDeviceInterfaceID, kIOUSBDeviceInterfaceID182, kIOUSBDeviceInterfaceID187, kIOUSBDeviceInterfaceID197, или kIOUSBDeviceInterfaceID245, и у Вас не будет доступа к некоторым функциям.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBDeviceInterface300 **dev; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID300),(LPVoid)&dev);
Доступный в OS X v10.5 и позже.
-
kIOUSBDeviceInterfaceID320kIOUSBDeviceInterfaceID320Эта константа 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 earlierIOUSBDeviceInterface320 **dev; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID320),(LPVoid)&dev);
Доступный в OS X v10.6 и позже.
-
kIOUSBDeviceInterfaceID500kIOUSBDeviceInterfaceID500Эта константа 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 earlierIOUSBDeviceInterface500 **dev; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID500),(LPVoid)&dev);
Доступный в OS X v10.7 и позже.
-
kIOUSBDeviceUserClientTypeIDkIOUSBDeviceUserClientTypeIDЭта константа UUID используется для получения соответствия интерфейса устройства io_service_t, соответствующему IOUSBDevice в ядре. Как только Вы получили интерфейс устройства для службы, необходимо использовать функцию QueryInterface для получения интерфейса устройства для пользовательского клиента самого.
Пример:
io_service_t usbDeviceRef; // obtained earlierIOCFPlugInInterface **iodev; // fetching this nowSInt32 score; // not usedIOReturn err;err = IOCreatePlugInInterfaceForService(usbDeviceRef,kIOUSBDeviceUserClientTypeID,kIOCFPlugInInterfaceID,&iodev,&score);
Доступный в OS X v10.0 и позже.
-
kIOUSBFactoryIDkIOUSBFactoryIDЭта константа UUID используется внутренне системой и не придется использовать никаким кодом драйвера для доступа к интерфейсам устройства.
Доступный в OS X v10.0 и позже.
-
kIOUSBInterfaceInterfaceIDkIOUSBInterfaceInterfaceIDЭта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Типом этого интерфейса устройства является IOUSBInterfaceInterface. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.
Примечание: IOUSBInterfaceInterface возвращается всеми версиями IOUSBFamily, в настоящее время поставляющего. Однако существуют некоторые функции, которые доступны только в версии 1.8.2 IOUSBFamily и выше. Доступ к этим функциям, а также ко всем функциям, содержавшимся в IOUSBInterfaceInterface, может быть получен при помощи одного из других UUIDs, перечисленных в этом заголовке.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBInterfaceInterface **intf; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID),(LPVoid)&intf);
Доступный в OS X v10.0 и позже.
-
kIOUSBInterfaceInterfaceID182kIOUSBInterfaceInterfaceID182Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface182. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.
Примечание: IOUSBInterfaceInterface182 возвращается только версией 1.8.2 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.0.4 OS X. Если Ваше программное обеспечение будет работать на более ранней версии OS X, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID, и у Вас не будет доступа к некоторым функциям.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBInterfaceInterface182 **intf; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID182),(LPVoid)&intf);
Доступный в OS X v10.1 и позже.
-
kIOUSBInterfaceInterfaceID183kIOUSBInterfaceInterfaceID183Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface183. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.
Примечание: IOUSBInterfaceInterface183 возвращается только версией 1.8.3 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.1 OS X. Если Ваше программное обеспечение будет работать на версии OS X до 10,1, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID или kIOUSBInterfaceInterfaceID182, и у Вас не будет доступа к некоторым функциям.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBInterfaceInterface183 **intf; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID183),(LPVoid)&intf);
Доступный в OS X v10.1 и позже.
-
kIOUSBInterfaceInterfaceID190kIOUSBInterfaceInterfaceID190Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface190. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.
Примечание: IOUSBInterfaceInterface190 возвращается только версией 1.9 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.2 OS X. Если Ваше программное обеспечение будет работать на версии OS X до 10,2, то необходимо будет использовать UUID kIOUSBInterfaceInterfaceID, kIOUSBInterfaceInterfaceID182, или kIOUSBInterfaceInterfaceID183, и у Вас не будет доступа к некоторым функциям.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBInterfaceInterface190 **intf; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID190),(LPVoid)&intf);
Доступный в OS X v10.2 и позже.
-
kIOUSBInterfaceInterfaceID192kIOUSBInterfaceInterfaceID192Эта константа 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 earlierIOUSBInterfaceInterface192 **intf; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID192),(LPVoid)&intf);
Доступный в OS X v10.2 и позже.
-
kIOUSBInterfaceInterfaceID197kIOUSBInterfaceInterfaceID197Эта константа 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 earlierIOUSBInterfaceInterface197 **intf; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID197),(LPVoid)&intf);
Доступный в OS X v10.2 и позже.
-
kIOUSBInterfaceInterfaceID220kIOUSBInterfaceInterfaceID220Эта константа 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 earlierIOUSBInterfaceInterface220 **intf; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID220),(LPVoid)&intf);
Доступный в OS X v10.4 и позже.
-
kIOUSBInterfaceInterfaceID245kIOUSBInterfaceInterfaceID245Эта константа UUID используется для получения соответствия интерфейса устройства пользовательскому клиенту IOUSBInterface в ядре. Тип этого интерфейса устройства является IOUSBInterfaceInterface245. Этот интерфейс устройства получен после того, как интерфейс устройства для самой службы был получен.
Примечание: IOUSBInterfaceInterface245 возвращается только версией 2.4.5 или выше IOUSBFamily. Эта версия IOUSBFamily поставила с версией 10.4.5 OS X. Эта версия не добавляет новых функций. Это используется, чтобы позволить нам фиксировать утечку в нашем завершении, не влияя ни на какие формирователи тока: В предыдущих версиях мы не выпустили бы ссылку на IOUSBDevice. Для клиентов IOUSBInterfaceInterfaceID245 мы теперь выпустим ту ссылку.
Пример:
IOCFPluginInterface **iodev; // obtained earlierIOUSBInterfaceInterface245 **intf; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID245),(LPVoid)&intf);
Доступный в OS X v10.4 и позже.
-
kIOUSBInterfaceInterfaceID300kIOUSBInterfaceInterfaceID300Эта константа 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 earlierIOUSBInterfaceInterface300 **intf; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID300),(LPVoid)&intf);
Доступный в OS X v10.5 и позже.
-
kIOUSBInterfaceInterfaceID500kIOUSBInterfaceInterfaceID500Эта константа 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 earlierIOUSBInterfaceInterface500 **intf; // fetching this nowIOReturn err;err = (*iodev)->QueryInterface(iodev,CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID500),(LPVoid)&intf);
Доступный в OS X v10.7 и позже.
-
kIOUSBInterfaceUserClientTypeIDkIOUSBInterfaceUserClientTypeIDЭта константа UUID используется для получения соответствия интерфейса устройства io_service_t, соответствующему IOUSBInterface в ядре. Как только Вы получили интерфейс устройства для службы, необходимо использовать функцию QueryInterface для получения интерфейса устройства для пользовательского клиента самого.
Пример:
io_service_t usbInterfaceRef; // obtained earlierIOCFPlugInInterface **iodev; // fetching this nowSInt32 score; // not usedIOReturn err;err = IOCreatePlugInInterfaceForService(usbInterfaceRef,kIOUSBInterfaceUserClientTypeID,kIOCFPlugInInterfaceID,&iodev,&score);
Доступный в OS X v10.0 и позже.
-
