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( UInt32
notificationType
);Параметры
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 для первого интерфейсного дескриптора в данном дескрипторе конфигурации
request
IOUSBFindInterfaceRequest, указывающий желаемый интерфейс. Не измененный.
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( UInt32
parentLocationID
, intport
);Параметры
parentLocationID
locationID для концентратора, к которому присоединяется это устройство.
port
Номер порта концентратора, где присоединяется это устройство
Обсуждение
Получите locationID (UInt32) данный номер порта и расположение родителя
-
Объявление
C++
virtual IOReturn GetConfiguration( UInt8 *
configNum
);Параметры
configNum
Указатель для размещения для хранения значения конфигурации.
Обсуждение
Получает текущую конфигурацию от объекта IOUSBDevice. Обратите внимание на то, что этот вызов отправит запрос управления на шине для получения текущей конфигурации от физического устройства.
-
Объявление
C++
virtual IOReturn GetConfigurationDescriptor( UInt8
configValue
, 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( UInt32
type
);Параметры
type
Указывает, состояло ли выделенное питание в том, чтобы использоваться во время следа или сна (Один из kUSBPowerDuringSleep или kUSBPowerDuringWake)
Возвращаемое значение
Сумма выделенного питания, в мА.
-
Объявление
C++
virtual const IOUSBConfigurationDescriptor *GetFullConfigurationDescriptor( UInt8
configIndex
);Параметры
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( UInt8
index
, 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( bool
open,
);Параметры
open,
если истинные каналы открыты, еще закрытые
-
Сообщите концентратору, к которому это устройство присоединено, сбрасывает порт, к которому присоединяется это устройство. Это заставляет объект IOUSBDevice и любые дочерние объекты (объекты IOUSBInterface или объекты драйвера) быть завершенным, и устройство, которое будет полностью повторно перечислено, как будто это было отсоединено и повторно прикреплено.
Объявление
C++
virtual IOReturn ReEnumerateDevice( UInt32
options
);Параметры
options
Зарезервированный для будущего использования.
-
Клиенты могут использовать этот API для резервирования дополнительного питания для использования этим устройством, в то время как машина спит или в то время как это бодрствует. Модули являются миллиамперами (мА).
Объявление
C++
virtual UInt32 RequestExtraPower( UInt32
type
, UInt32requestedPower
);Параметры
type
Указывает, состоит ли питание в том, чтобы использоваться во время следа или сна (Один из kUSBPowerDuringSleep или kUSBPowerDuringWake)
requestedPower
Сумма желаемого питания, в мА
Возвращаемое значение
Сумма питания, фактически зарезервированного, в мА. Это могут быть меньше, чем требуемый или нуль.
-
Объявление
C++
virtual IOReturn ResetDevice();
Обсуждение
Сбросьте устройство, возвратив его адресуемому, несконфигурированному состоянию. Если устройство плохо перепутало, это полезно. Обратите внимание на то, что драйвер AppleUSBComposite автоматически реконфигурирует устройство, если это будет составное устройство.
-
Клиенты могут использовать этот API, чтобы сказать системе, что они не будут использовать питание, ранее зарезервированное при помощи RequestExtraPower API.
Объявление
C++
virtual IOReturn ReturnExtraPower( UInt32
type
, UInt32returnedPower
);Параметры
type
Указывает, состоит ли питание в том, чтобы использоваться во время следа или сна (Один из kUSBPowerDuringSleep или kUSBPowerDuringWake)
returnedPower
Сумма питания, которое больше не необходимо в мА
Возвращаемое значение
Если returnedPower не был ранее выделен, ошибка будет возвращена. Это будет включать случай для питания, которое требовали на сон, но возвратили для следа.
-
Объявление
C++
virtual void SetAddress( USBDeviceAddress
Sets
);Параметры
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( bool
suspend
);Параметры
suspend
Булево значение. истина = приостанавливает, ложь = резюме.