IOUSBDevice
Объект IOService представление устройства на Шине USB.
Этот класс обеспечивает функциональность, чтобы сконфигурировать устройство и создать объекты IOUSBInterface представлять интерфейсы устройства.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Объявление
C++
virtual OSIterator *CreateInterfaceIterator( IOUSBFindInterfaceRequest *request);Параметры
requestуказывает, какие свойства интерфейсу, должно быть, придется соответствовать.
Возвращаемое значение
Указатель на OSIterator.
Обсуждение
возвратите OSIterator для итерации через интерфейсы, удовлетворяющие требования, указанные в запросе.
-
DeviceRequest (IOUSBDevRequest *, UInt32, UInt32, IOUSBCompletion *) - DeviceRequest (IOUSBDevRequest *, UInt32, UInt32, IOUSBCompletion *)выполните запрос управления к каналу управления по умолчанию (нуль канала)
Объявление
C++
virtual IOReturn DeviceRequest( IOUSBDevRequest *request, UInt32noDataTimeout, UInt32completionTimeout, IOUSBCompletion *completion = 0);Параметры
requestБлок параметра для отправки к устройству
noDataTimeoutУказывает количество времени (в мс), после которого будет прервана команда, если никакие данные не были переданы на шине.
completionTimeoutУказывает количество времени (в мс), после которого будет прервана команда, если не была завершена вся команда.
completionФункция для вызова, когда завершается запрос. Если опущено тогда DeviceRequest () выполняется синхронно, блокируя, пока запрос не завершен. Если запрос является асинхронным, клиент должен удостовериться, что IOUSBDevRequest не выпущен, пока обратный вызов не произошел.
-
DeviceRequest (IOUSBDevRequestDesc *, UInt32, UInt32, IOUSBCompletion *) - DeviceRequest (IOUSBDevRequestDesc *, UInt32, UInt32, IOUSBCompletion *)выполните запрос управления к каналу управления по умолчанию (нуль канала)
Объявление
C++
virtual IOReturn DeviceRequest( IOUSBDevRequestDesc *request, UInt32noDataTimeout, UInt32completionTimeout, IOUSBCompletion *completion = 0);Параметры
requestБлок параметра для отправки к устройству (с pData как IOMemoryDesriptor)
noDataTimeoutУказывает количество времени (в мс), после которого будет прервана команда, если никакие данные не были переданы на шине.
completionTimeoutУказывает количество времени (в мс), после которого будет прервана команда, если не была завершена вся команда.
completionФункция для вызова, когда завершается запрос. Если опущено тогда DeviceRequest () выполняется синхронно, блокируя, пока запрос не завершен. Если запрос является асинхронным, клиент должен удостовериться, что IOUSBDevRequest не выпущен, пока обратный вызов не произошел.
-
Будет использовать Центр Уведомления для отображения уведомления пользователю. Только Низкая мощность и уведомления Сверхтока поддерживаются.
Объявление
C++
virtual void DisplayUserNotification( UInt32notificationType);Параметры
notificationTypeКакое уведомление вывести на экран.
-
Будет искать массив kOverrideIfAtLocationID proerty с locationID записями и свойством «MacModel». Если какое-либо соответствие locationIDs к Модели Mac, возвратит true. Если не будет никакого kOverrideAtLocationID свойства, то это также возвратит true.
Объявление
C++
virtual bool DoLocationOverrideAndModelMatch();Возвращаемое значение
Истина, если у нас есть соответствие, ложь иначе
-
Объявление
C++
virtual IOUSBInterface *FindNextInterface( IOUSBInterface *current, IOUSBFindInterfaceRequest *request);Параметры
currentвзаимодействуйте через интерфейс, чтобы начать искать от, NULL для запуска в начале интерфейсного списка устройства для текущей конфигурации.
requestуказывает, какие свойства интерфейсу, должно быть, придется соответствовать.
Возвращаемое значение
Указатель на соответствие IOUSBInterface или NULL, если ни один не соответствует.Примечание: IOUSBInterface НЕ сохраняется для вызывающей стороны. Если вызывающая сторона хочет продолжать использовать возвращенный объект, она должна вызвать, сохраняют () на том объекте.
Обсуждение
возвратите указатель на объект IOUSBInterface удовлетворение требований, указанных в запросе или NULL, если нет никого. устройство должно быть сконфигурировано для там, чтобы быть любыми интерфейсами.
-
Объявление
C++
virtual IOReturn FindNextInterfaceDescriptor( const IOUSBConfigurationDescriptor *configDescIn, const IOUSBInterfaceDescriptor *intfDesc, const IOUSBFindInterfaceRequest *request, IOUSBInterfaceDescriptor **descOut);Параметры
configDescInдескриптор конфигурации, в котором можно искать. полученный из GetFullConfigurationDescriptor (configIndex). используйте NULL для указания дескриптора текущей конфигурации.
intfDescинтерфейсный дескриптор, с которого можно запустить поиск. NULL для первого интерфейсного дескриптора в данном дескрипторе конфигурации
requestIOUSBFindInterfaceRequest, указывающий желаемый интерфейс. Не измененный.
descOutуказатель на заполнителя для возвращенного дескриптора ptr
Возвращаемое значение
возвраты kIOReturnBadArgument, если configDesc не корректен, или если configDesc является NULL и устройство, не сконфигурированы, или если intfDesc не находится в configDesc. Иначе возвраты kIOReturnSuccess или kIOUSBInterfaceNotFound.
Обсуждение
возвратите указатель на следующий интерфейсный дескриптор в данном полном дескрипторе конфигурации, удовлетворяющем требования, указанные, или NULL, если нет никого.
-
Объявление
C++
virtual USBDeviceAddress GetAddress(void);Обсуждение
возвращает адрес шины устройства
-
Объявление
C++
virtual IOUSBController *GetBus(void);Обсуждение
возвращает указатель на объект IOUSBController для устройства
-
Объявление
C++
virtual UInt32 GetBusPowerAvailable(void);Обсуждение
возвращает питание, доступное устройству, в модулях 2mA
-
Объявление
C++
virtual UInt32 GetChildLocationID( UInt32parentLocationID, intport);Параметры
parentLocationIDlocationID для концентратора, к которому присоединяется это устройство.
portНомер порта концентратора, где присоединяется это устройство
Обсуждение
Получите locationID (UInt32) данный номер порта и расположение родителя
-
Объявление
C++
virtual IOReturn GetConfiguration( UInt8 *configNum);Параметры
configNumУказатель для размещения для хранения значения конфигурации.
Обсуждение
Получает текущую конфигурацию от объекта IOUSBDevice. Обратите внимание на то, что этот вызов отправит запрос управления на шине для получения текущей конфигурации от физического устройства.
-
Объявление
C++
virtual IOReturn GetConfigurationDescriptor( UInt8configValue, void *data, UInt32len);Параметры
configValueЗначение конфигурации
dataБуфер для копирования данных в
lenчисло байтов для копирования
Обсуждение
Скопируйте указанный объем данных для конфигурации в буфер suppled.
-
Информация о статусе возвратов о USB-устройстве, такой как, присоединено ли устройство или является ли это в состоянии ожидания.
Объявление
C++
virtual IOReturn GetDeviceInformation( UInt32 *requestedPower);Параметры
requestedPowerЖелаемая сумма питания, которое клиент хочет зарезервировать
Возвращаемое значение
Зарезервированная фактическая мощность
-
Объявление
C++
virtual UInt16 GetDeviceRelease(void);Обсуждение
возвращает информацию о DeviceRelease
-
Объявление
C++
virtual IOReturn GetDeviceStatus( USBStatus *status);Параметры
statusУказатель для размещения для хранения состояния.
Обсуждение
Получает состояние устройства. Обратите внимание на то, что это отправляет запрос управления к физическому устройству.
-
Клиенты могут использовать этот API для выяснения, сколько дополнительного питания было уже зарезервировано этим устройством. Модули являются миллиамперами (мА).
Объявление
C++
virtual UInt32 GetExtraPowerAllocated( UInt32type);Параметры
typeУказывает, состояло ли выделенное питание в том, чтобы использоваться во время следа или сна (Один из kUSBPowerDuringSleep или kUSBPowerDuringWake)
Возвращаемое значение
Сумма выделенного питания, в мА.
-
Объявление
C++
virtual const IOUSBConfigurationDescriptor *GetFullConfigurationDescriptor( UInt8configIndex);Параметры
configIndexИндекс конфигурации (не значение конфигурации)
Возвращаемое значение
Указатель на дескрипторы, кэширующиеся в объекте IOUSBDevice.
Обсуждение
возвратите указатель на все дескрипторы для требуемой конфигурации.
-
Используемый драйвером концентратора, чтобы дать куску подсказку к ее объекту HubPolicyMaker
Объявление
C++
virtual IOUSBHubPolicyMaker* GetHubParent();Параметры
hubPolicyMakerОбъект, представляющий драйвер Концентратора
-
Объявление
C++
virtual UInt8 GetManufacturerStringIndex(void);Обсуждение
возвращает индекс строкового производителя описания дескриптора
-
Объявление
C++
virtual UInt8 GetMaxPacketSize(void);Обсуждение
возвращает максимальный размер пакета для нуля конечной точки (только 8, 16, 32, 64 допустимы),
-
Объявление
C++
virtual UInt8 GetNumConfigurations(void);Обсуждение
возвращает число конфигураций в дескрипторе конфигурации устройства
-
Объявление
C++
virtual IOUSBPipe * GetPipeZero(void);Обсуждение
возвращает указатель на канал управления устройства по умолчанию
-
Объявление
C++
virtual UInt16 GetProductID(void);Обсуждение
возвращает Идентификатор продукта устройства
-
Объявление
C++
virtual UInt8 GetProductStringIndex(void);Обсуждение
возвращает индекс строкового продукта описания дескриптора
-
Объявление
C++
virtual UInt8 GetSerialNumberStringIndex(void);Обсуждение
возвращает индекс строкового дескриптора, описывающего порядковый номер устройства
-
Объявление
C++
virtual UInt8 GetSpeed(void);Обсуждение
возвращает скорость устройства
-
Объявление
C++
virtual IOReturn GetStringDescriptor( UInt8index, char *buf, intmaxLen, UInt16 lang=0x409);Параметры
indexИндекс строкового дескриптора для получения.
bufУказатель для размещения для хранения строки ASCII
maxLenНа размер буфера указывает buf
langЯзык для вкладывания строки (значение по умолчанию является английским языком США),
Обсуждение
Получите строковый дескриптор как ASCII, на указанном языке (значение по умолчанию является английским языком США),
-
Объявление
C++
virtual UInt16 GetVendorID(void);Обсуждение
возвращает Идентификатор поставщика устройства
-
создайте канал на данной конечной точке
Объявление
C++
virtual IOUSBPipeV2* MakePipe( const IOUSBEndpointDescriptor *ep, IOUSBSuperSpeedEndpointCompanionDescriptor *sscd, IOUSBInterface *interface);Параметры
epОписание конечной точки
sscdСопутствующий Дескриптор SuperSpeed, если любой (NULL, если ни один)
interfaceОбъект IOUSBInterface запрос канала возвращает желаемый объект IOUSBPipe
-
Выполняет итерации по всем интерфейсам и или открывает все каналы или закрывает их всех
Объявление
C++
virtual void OpenOrCloseAllInterfacePipes( boolopen,);Параметры
open,если истинные каналы открыты, еще закрытые
-
Сообщите концентратору, к которому это устройство присоединено, сбрасывает порт, к которому присоединяется это устройство. Это заставляет объект IOUSBDevice и любые дочерние объекты (объекты IOUSBInterface или объекты драйвера) быть завершенным, и устройство, которое будет полностью повторно перечислено, как будто это было отсоединено и повторно прикреплено.
Объявление
C++
virtual IOReturn ReEnumerateDevice( UInt32options);Параметры
optionsЗарезервированный для будущего использования.
-
Клиенты могут использовать этот API для резервирования дополнительного питания для использования этим устройством, в то время как машина спит или в то время как это бодрствует. Модули являются миллиамперами (мА).
Объявление
C++
virtual UInt32 RequestExtraPower( UInt32type, UInt32requestedPower);Параметры
typeУказывает, состоит ли питание в том, чтобы использоваться во время следа или сна (Один из kUSBPowerDuringSleep или kUSBPowerDuringWake)
requestedPowerСумма желаемого питания, в мА
Возвращаемое значение
Сумма питания, фактически зарезервированного, в мА. Это могут быть меньше, чем требуемый или нуль.
-
Объявление
C++
virtual IOReturn ResetDevice();Обсуждение
Сбросьте устройство, возвратив его адресуемому, несконфигурированному состоянию. Если устройство плохо перепутало, это полезно. Обратите внимание на то, что драйвер AppleUSBComposite автоматически реконфигурирует устройство, если это будет составное устройство.
-
Клиенты могут использовать этот API, чтобы сказать системе, что они не будут использовать питание, ранее зарезервированное при помощи RequestExtraPower API.
Объявление
C++
virtual IOReturn ReturnExtraPower( UInt32type, UInt32returnedPower);Параметры
typeУказывает, состоит ли питание в том, чтобы использоваться во время следа или сна (Один из kUSBPowerDuringSleep или kUSBPowerDuringWake)
returnedPowerСумма питания, которое больше не необходимо в мА
Возвращаемое значение
Если returnedPower не был ранее выделен, ошибка будет возвращена. Это будет включать случай для питания, которое требовали на сон, но возвратили для следа.
-
Объявление
C++
virtual void SetAddress( USBDeviceAddressSets);Параметры
Setsадрес шины устройства
-
Объявление
C++
virtual IOReturn SetConfiguration( IOService *forClient, UInt8configValue, bool startInterfaceMatching=true);Параметры
forClientКлиент, запрашивающий изменение конфигурации
configValueЖелаемое значение конфигурации.
startInterfaceMatchingБулевская переменная, указывающая, должен ли IOKit начать процесс нахождения соответствия драйверов для новых объектов IOUSBInterface.
Обсуждение
Сделайте вызов USB SetConfiguration к устройству. Вызывающая сторона должна иметь открытое устройство () для фактического порождения изменения конфигурации. Если устройство в настоящее время конфигурируется, все объекты IOUSBInterface, связанные с устройством, освобождены. После того, как новая конфигурация была установлена, все ее объекты IOUSBInterface инстанцируют автоматически.
-
SetConfiguration (IOService *, UInt8, bool, bool) - SetConfiguration (IOService *, UInt8, bool, bool)Объявление
C++
virtual IOReturn SetConfiguration( IOService *forClient, UInt8configValue, boolstartInterfaceMatching, boolissueRemoteWakeup);Параметры
forClientКлиент, запрашивающий изменение конфигурации
configValueЖелаемое значение конфигурации.
startInterfaceMatchingБулевская переменная, указывающая, должен ли IOKit начать процесс открытия
issueRemoteWakeupБулевская переменная, указывающая, должны ли мы выпустить SetFeature (kUSBFeatureDeviceRemoteWakeup) сразу после установки конфигурации, прежде, чем загрузить какие-либо драйверы. соответствие драйверов для новых объектов IOUSBInterface.
Обсуждение
Сделайте вызов USB SetConfiguration к устройству. Вызывающая сторона должна иметь открытое устройство () для фактического порождения изменения конфигурации. Если устройство в настоящее время конфигурируется, все объекты IOUSBInterface, связанные с устройством, освобождены. После того, как новая конфигурация была установлена, все ее объекты IOUSBInterface инстанцируют автоматически.
-
Используемый драйвером концентратора, чтобы дать куску подсказку к ее объекту HubPolicyMaker
Объявление
C++
virtual void SetHubParent( IOUSBHubPolicyMaker *hubPolicyMaker);Параметры
hubPolicyMakerОбъект, представляющий драйвер Концентратора
-
Сообщите концентратору, к которому это устройство присоединено, приостанавливают или возобновляют порт, к которому присоединяется устройство. Обратите внимание на то, что, если будут какие-либо выдающиеся транзакции на каких-либо каналах в устройстве, то те транзакции будут возвращены с kIOReturnNotResponding ошибкой.
Объявление
C++
virtual IOReturn SuspendDevice( boolsuspend);Параметры
suspendБулево значение. истина = приостанавливает, ложь = резюме.
