IOHIDDevice
IOHIDDevice определяет объект Human Interface Device (HID), который будет взаимодействовать с менеджером по HID путем публикации статических свойств в реестре, и также путем создания отчетов о событиях HID через общую память. IOHIDDevice является абстрактным классом, который должен быть разделен на подклассы для поддержки определенного типа устройств HID, таких как USB устройства класса HID. Так как большинство устройств HID, как ожидают, будет USB-устройствами, IOHIDDevice использует USB спецификация HID для определения формата дескриптора отчета, и также сообщает, что используются для передачи с аппаратными средствами через некоторый прошедший транспортный уровень. Однако нет никакого мандата, что транспортный уровень должен быть ограничен USB. Подкласс может быть создан для поддержки устаревших джойстиков ADB, и пакеты проблемы на ADB соединяют шиной и переводят те пакеты в отчеты USB, и наоборот. IOHIDDevice не заботится, как те отчеты сгенерированы или использованы физическим устройством, пока отчеты пребывают к спецификации USB.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Проверьте, будут ли события от элемента HID поставлены указанной очереди событий.
Объявление
C++
virtual IOReturn checkEventDelivery( IOHIDEventQueue *queue, IOHIDElementCookiecookie, bool *isActive);Параметры
queueОчередь событий.
cookieCookie для элемента HID опубликован устройством HID.
isActiveУказатель на возвращаемое значение, установленное в истину, если события, сгенерированные элементом HID, будут поставлены очереди или лжи иначе. Это возвращаемое значение установлено, только если возвращается kIOReturnSuccess.
Возвращаемое значение
kIOReturnSuccess на успехе или kIOReturnBadArgument, если один или больше предоставленных параметров недопустимы.
-
Освободите объект IOHIDDevice.
Объявление
C++
virtual void free();Обсуждение
Высвободите все средства, ранее выделенные, затем вызывающие супер:: свободный () для распространения вызова к нашему суперклассу.
-
Получите ссылку на дескриптор памяти, описывающий блок памяти, содержащий текущие значения элемента HID.
Объявление
C++
virtual IOMemoryDescriptor * getMemoryWithCurrentElementValues() const;Возвращаемое значение
Ссылка на дескриптор памяти, описывающий значения элемента тока, или 0 для указания дефицита ресурсов.
Обсуждение
Каждый элемент HID, который может способствовать вводу, выведенному, или отчет функции, присваивается область памяти от блока общей памяти, выделенного IOHIDDevice. Каждый элемент будет использовать свою присвоенную область памяти для хранения его текущей стоимости, определенной структурой IOHIDElementValue. Память, описанная дескриптором памяти, может быть отображена на пространстве пользователя, чтобы позволить менеджеру по HID опрашивать значение элемента тока без стоимости перехода пользовательского ядра. Подклассы не должны переопределять этот метод.
-
getReport (IOMemoryDescriptor *, IOHIDReportType, IOOptionBits) - getReport (IOMemoryDescriptor *, IOHIDReportType, IOOptionBits)Получите отчет от устройства HID.
Объявление
C++
virtual IOReturn getReport( IOMemoryDescriptor *report, IOHIDReportTypereportType, IOOptionBitsoptions);Параметры
reportДескриптор памяти, описывающий память для хранения отчета, считанного из устройства HID.
reportTypeТип отчета.
optionsБолее низкие 8 битов будут представлять Идентификатор отчета. Другие 24 бита являются опциями указать запрос.
Возвращаемое значение
kIOReturnSuccess на успехе или ошибка возвращаются иначе.
Обсуждение
Параметр завершения может быть добавлен в будущем.
-
getReport (IOMemoryDescriptor *, IOHIDReportType, IOOptionBits, UInt32, IOHIDCompletion *) - getReport (IOMemoryDescriptor *, IOHIDReportType, IOOptionBits, UInt32, IOHIDCompletion *)Получите отчет от устройства HID.
Объявление
C++
virtual IOReturn getReport( IOMemoryDescriptor *report, IOHIDReportTypereportType, IOOptionBitsoptions, UInt32completionTimeout, IOHIDCompletion *completion = 0);Параметры
reportДескриптор памяти, описывающий память для хранения отчета, считанного из устройства HID.
reportTypeТип отчета.
optionsБолее низкие 8 битов будут представлять Идентификатор отчета. Другие 24 бита являются опциями указать запрос.
completionTimeoutУказывает количество времени (в мс), после которого будет прервана команда, если не была завершена вся команда.
completionФункция для вызова, когда завершается запрос. Если опущено тогда getReport () выполняется синхронно, блокируя, пока запрос не завершен.
Возвращаемое значение
kIOReturnSuccess на успехе или ошибка возвращаются иначе.
Обсуждение
Параметр завершения может быть добавлен в будущем.
-
Обработайте клиент близко в интерфейсе.
Объявление
C++
virtual void handleClose( IOService *client, IOOptionBitsoptions);Параметры
clientОбъект клиента, запросивший завершение.
optionsОпции передали IOService:: близко ().
Обсуждение
Этот метод вызывает IOService:: близко () с арбитражной сохраненной блокировкой. Этот метод поочередно вызовет handleClientClose () для уведомления заинтересованных подклассов о клиенте близко. Если это будет представлять последнее завершение, то интерфейс также закроет контроллер перед этим методом возвраты. controllerWillClose () метод вызовут прежде, чем закрыть контроллер. Подклассы не должны переопределять этот метод.
-
Запрос, есть ли у клиента открытое в интерфейсе.
Объявление
C++
virtual bool handleIsOpen( const IOService *client) const;Возвращаемое значение
истина, если у указанного клиента или какого-либо клиента, если ни один (0) не указан, в настоящее время есть открытое на этом объекте.
Обсуждение
Этот метод всегда вызывает IOService с арбитражной сохраненной блокировкой. Подклассы не должны переопределять этот метод.
-
Обработайте клиент, открытый в интерфейсе.
Объявление
C++
virtual bool handleOpen( IOService *client, IOOptionBitsoptions, void *argument);Параметры
clientОбъект клиента, запросивший открытое.
optionsОпции передали IOService:: открытый ().
argumentПараметр передал IOService:: открытый ().
Возвращаемое значение
истина для принятия клиента, открытого, ложного иначе.
Обсуждение
Этот метод вызывает IOService:: открытый () с арбитражной блокировкой, сохраненной, и, должен возвратить true для принятия открытого клиента. Этот метод поочередно вызовет handleClientOpen () для квалификации клиента, запрашивающего открытое.
-
Обработайте асинхронный отчет, полученный от устройства HID.
Объявление
C++
virtual IOReturn handleReport( IOMemoryDescriptor *report, IOHIDReportType reportType =kIOHIDReportTypeInput, IOOptionBits options = 0 );Параметры
reportДескриптор памяти, описывающий отчет.
reportTypeТип отчета.
optionsОпции указать запрос. Никакие опции в настоящее время не определяются, и значение по умолчанию 0.
Возвращаемое значение
kIOReturnSuccess на успехе или ошибка возвращаются иначе.
-
Обработайте асинхронный отчет, полученный от устройства HID.
Объявление
C++
virtual IOReturn handleReportWithTime( AbsoluteTimetimeStamp, IOMemoryDescriptor *report, IOHIDReportType reportType =kIOHIDReportTypeInput, IOOptionBits options = 0);Параметры
timeStampМетка времени отчета.
reportДескриптор памяти, описывающий отчет.
reportTypeТип отчета. В настоящее время, только kIOHIDReportTypeInput тип отчета обрабатывается.
optionsОпции указать запрос. Никакие опции в настоящее время не определяются, и значение по умолчанию 0.
Возвращаемое значение
kIOReturnSuccess на успехе или ошибка возвращаются иначе.
-
Подготовьте аппаратные средства и драйвер для поддержки операций I/O.
Объявление
C++
virtual bool handleStart( IOService *provider);Параметры
providerПараметр провайдера передал для запуска ().
Возвращаемое значение
Истина на успехе или ложь иначе. Возвращение false вызовет, начинают () приводить к сбою и возвращать false.
Обсуждение
IOHIDDevice вызовет этот метод от запуска (), прежде чем любые операции I/O будут выпущены к конкретному подклассу. Методы, такие как newReportDescriptor () только вызывают, после handleStart () возвратил true. Подкласс, переопределяющий этот метод, должен начать свою реализацию путем призыва версии супер, и затем проверить возвращаемое значение.
-
Заморозьте аппаратные средства и остановите драйвер.
Объявление
C++
virtual void handleStop( IOService *provider);Параметры
providerПараметр провайдера передал остановке ().
Обсуждение
IOHIDDevice вызовет этот метод от остановки (), чтобы сигнализировать, что аппаратные средства должны быть заморожены, и драйвер остановился. Подкласс, переопределяющий этот метод, должен закончить свою реализацию путем призыва версии супер.
-
Инициализируйте объект IOHIDDevice.
Объявление
C++
virtual bool init( OSDictionary *dictionary = 0 );Параметры
Aсловарь таблица свойства связался с этим экземпляром IOHIDDevice.
Возвращаемое значение
Истина на успехе или ложь иначе.
Обсуждение
Главный IOHIDDevice возражают и подготавливают его для поддержки зонда () или запуск () вызов. Эта реализация просто вызовет супер:: init ().
-
Вызванный провайдером во время соответствия
Объявление
C++
virtual bool matchPropertyTable( OSDictionary *table, SInt32 *score);Параметры
tableТаблица свойства, против которой будет соответствовать это устройство
Обсуждение
Сравните свойства в предоставленной таблице к свойствам этого объекта.
-
Получает сообщения, освобожденные от присоединенного провайдера.
Объявление
C++
virtual IOReturn message( UInt32type, IOService *provider, void *argument = 0 );Параметры
typeТип, определенный в
IOMessage.h.providerПровайдер, из которого происходит сообщение.
argumentПараметр определяется типом сообщения.
Возвращаемое значение
Код IOReturn определяется типом сообщения.
Обсуждение
Дескрипторы
kIOMessageDeviceSignaledWakeupсообщение от провайдера, идентифицирующего IOHIDDevice как источник пробуждения. -
Возвращает объект числа, описывающий код страны устройства HID.
Объявление
C++
virtual OSNumber * newCountryCodeNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает массив словарей использования. IOHIDDevice создает, создают это из фактического дескриптора отчета, и это должно быть основой для любого переопределения подкласса.
Объявление
C++
virtual OSArray * newDeviceUsagePairs();Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает объект числа, описывающий расположение ID устройства HID.
Объявление
C++
virtual OSNumber * newLocationIDNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает строковый объект, описывающий производителя устройства HID.
Объявление
C++
virtual OSString * newManufacturerString() const;Возвращаемое значение
Строковый объект. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает объект числа, описывающий основное использование устройства HID.
Объявление
C++
virtual OSNumber * newPrimaryUsageNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает объект числа, описывающий основную страницу использования устройства HID.
Объявление
C++
virtual OSNumber * newPrimaryUsagePageNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает объект числа, описывающий идентификатор продукта устройства HID.
Объявление
C++
virtual OSNumber * newProductIDNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает строковый объект, описывающий продукт устройства HID.
Объявление
C++
virtual OSString * newProductString() const;Возвращаемое значение
Строковый объект. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Создайте и возвратите новый дескриптор памяти, описывающий дескриптор отчета для устройства HID.
Объявление
C++
virtual IOReturn newReportDescriptor( IOMemoryDescriptor **descriptor) const = 0;Параметры
descriptorУказатель на дескриптор памяти возвратился. Этот дескриптор памяти будет выпущен вызывающей стороной.
Возвращаемое значение
kIOReturnSuccess на успехе или ошибка возвращаются иначе.
Обсуждение
Подкласс должен переопределить эту чистую виртуальную функцию и возвратить дескриптор памяти, описывающий дескриптор отчета HID, как определено Определением класса USB-устройства для спецификации Версии 1.1 Устройств Интерфейса пользователя.
-
Возвращает объект числа, описывающий фактический интервал опроса устройства HID в микросекундах.
Объявление
C++
virtual OSNumber * newReportIntervalNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает объект числа, описывающий фактический интервал опроса устройства HID в микросекундах.
Объявление
C++
virtual OSNumber * newReportIntervalNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
THIS HAS BEEN DEPRECATED. PLEASE USE newSerialNumberString.
Объявление
C++
virtual OSNumber * newSerialNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает строковый объект, описывающий порядковый номер устройства HID.
Объявление
C++
virtual OSString * newSerialNumberString() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает строковый объект, описывающий транспортный уровень, используемый устройством HID.
Объявление
C++
virtual OSString * newTransportString() const;Возвращаемое значение
Строковый объект. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Обработайте запрос для создания соединения для не клиента ядра.
Объявление
C++
virtual IOReturn newUserClient( task_towningTask, void *security_id, UInt32type, OSDictionary *properties, IOUserClient **handler);Параметры
owningTaskЗадача Маха, запрашивающая соединение.
security_idМаркер, представляющий уровень доступа для задачи.
typeПостоянное указание типа соединения, которое будет создаваться.
propertiesСловарь дополнительных свойств для соединения.
handlerОбъект IOUserClient возвратился.
Возвращаемое значение
Возврат из IOService:: newUserClient () возвращается.
Обсуждение
Создайте новый IOUserClient или подкласс IOUserClient, для обслуживания соединения с не клиентом ядра. Эта реализация просто вызовет реализацию в IOService для обработки вызова.
-
Возвращает объект числа, описывающий идентификатор поставщика устройства HID.
Объявление
C++
virtual OSNumber * newVendorIDNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает объект числа, описывающий источник идентификатора поставщика устройства HID.
Объявление
C++
virtual OSNumber * newVendorIDSourceNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Возвращает объект числа, описывающий номер версии устройства HID.
Объявление
C++
virtual OSNumber * newVersionNumber() const;Возвращаемое значение
Объект числа. Вызывающая сторона должна постепенно уменьшиться, сохранение рассчитывают на возвращенный объект.
-
Элемент сообщений оценивает устройству HID через setReport.
Объявление
C++
virtual IOReturn postElementValues( IOHIDElementCookie *cookies, UInt32 cookieCount = 1);Параметры
cookiesСписок cookie элемента, кто значения, должен быть установлен на устройстве.
cookieCountЧисло cookie элемента.
Возвращаемое значение
kIOReturnSuccess на успехе или ошибка возвращаются иначе.
Обсуждение
Параметр завершения может быть добавлен в будущем.
-
Опубликуйте свойства HID к реестру Набора I/O.
Объявление
C++
virtual bool publishProperties( IOService *provider);Параметры
providerПараметр провайдера передал для запуска ().
Возвращаемое значение
Истина, чтобы указать, что все свойства были обнаружены и опубликованы к реестру, ложь иначе. Возвращение false вызовет, начинают () приводить к сбою и возвращать false.
Обсуждение
Вызванный запуском () метод, чтобы выбрать и опубликовать все свойства HID к реестру Набора I/O. Эти свойства позволят менеджеру по HID идентифицировать все устройство (а) HID в системе путем итерации через объекты, которые являются подклассами IOHIDDevice, и затем выбирают их опубликованные значения свойств. Реализация в IOHIDDevice вызовет методы для получения каждого отдельного свойства HID, и подклассы не должны будут обычно переопределять этот метод.
-
Регистрационная функция, вызванная элементом HID, чтобы зарегистрировать себя, и также получить уникальный идентификатор cookie (уникальный для каждого устройства, не уникальный в масштабе всей системы).
Объявление
C++
virtual bool registerElement( IOHIDElementPrivate *element, IOHIDElementCookie *cookie);Параметры
elementЭлемент, запрашивающий регистрацию с ее владельцем.
cookieУказатель на возвращенный cookie присвоился к этому элементу.
Возвращаемое значение
Истина на успехе или ложь иначе.
Обсуждение
Внутренний тип данных, IOHIDElementPrivate, создается для представления каждого элемента HID, обнаруженного путем парсинга дескриптора отчета HID. Каждый создаваемый элемент вызовет этот метод, чтобы зарегистрировать себя в его владельце (IOHIDDevice), и также получить cookie элемента, использующийся менеджером по HID, чтобы указать и идентифицировать элемент. Подклассы не должны переопределять этот метод.
-
setReport (IOMemoryDescriptor *, IOHIDReportType, IOOptionBits) - setReport (IOMemoryDescriptor *, IOHIDReportType, IOOptionBits)Отправьте отчет в устройство HID.
Объявление
C++
virtual IOReturn setReport( IOMemoryDescriptor *report, IOHIDReportTypereportType, IOOptionBits options = 0 );Параметры
reportДескриптор памяти, описывающий отчет отправить к устройству HID.
reportTypeТип отчета.
optionsБолее низкие 8 битов будут представлять Идентификатор отчета. Другие 24 бита являются опциями указать запрос.
Возвращаемое значение
kIOReturnSuccess на успехе или ошибка возвращаются иначе.
Обсуждение
Параметр завершения может быть добавлен в будущем.
-
setReport (IOMemoryDescriptor *, IOHIDReportType, IOOptionBits, UInt32, IOHIDCompletion *) - setReport (IOMemoryDescriptor *, IOHIDReportType, IOOptionBits, UInt32, IOHIDCompletion *)Отправьте отчет в устройство HID.
Объявление
C++
virtual IOReturn setReport( IOMemoryDescriptor *report, IOHIDReportTypereportType, IOOptionBitsoptions, UInt32completionTimeout, IOHIDCompletion *completion = 0);Параметры
reportДескриптор памяти, описывающий отчет отправить к устройству HID.
reportTypeТип отчета.
optionsБолее низкие 8 битов будут представлять Идентификатор отчета. Другие 24 бита являются опциями указать запрос.
completionTimeoutУказывает количество времени (в мс), после которого будет прервана команда, если не была завершена вся команда.
completionФункция для вызова, когда завершается запрос. Если опущено тогда setReport () выполняется синхронно, блокируя, пока запрос не завершен.
Возвращаемое значение
kIOReturnSuccess на успехе или ошибка возвращаются иначе.
Обсуждение
Параметр завершения может быть добавлен в будущем.
-
Запустите драйвер с помощью данного провайдера.
Объявление
C++
virtual bool start( IOService *provider);Параметры
providerПровайдер, который драйвер был соответствующим к и выбран для выполнения с.
Возвращаемое значение
Истина на успехе или ложь иначе.
Обсуждение
IOHIDDevice выделит ресурсы, затем вызвать handleStart () прежде, чем выбрать дескриптор отчета через newReportDescriptor () и опубликовать свойства HID к реестру. Прежде, чем возвратить true для указания успеха, registerService () вызывают для инициирования клиентского соответствия. Подклассам рекомендуют переопределить handleStart ().
-
Начните освобождать события от элемента HID до указанной очереди событий.
Объявление
C++
virtual IOReturn startEventDelivery( IOHIDEventQueue *queue, IOHIDElementCookiecookie, IOOptionBits options = 0 );Параметры
queueОчередь событий, интересующаяся получением событий, сгенерированных указанным элементом HID. Сохранение рассчитывает на очередь, будет постепенно увеличен одним.
cookieCookie для элемента HID опубликован устройством HID.
optionsОпции указать запрос. Никакие опции в настоящее время не определяются, и значение по умолчанию является нулем.
Возвращаемое значение
kIOReturnSuccess на успехе или kIOReturnBadArgument, если очередь или указанный параметр cookie недопустимы, или kIOReturnNoMemory, если встретились с дефицитом ресурсов.
Обсуждение
Клиенты IOHIDDevice могут создать IOHIDEventQueue, и затем вызвать этот метод для регистрации для поставки событий, сгенерированных одним или более элементами HID к той очереди событий. Подклассы не должны переопределять этот метод.
-
Вызванный провайдером (во время его завершения) прежде, чем отсоединить все его клиенты.
Объявление
C++
virtual void stop( IOService *provider);Параметры
providerПровайдер, на котором был запущен драйвер.
Обсуждение
IOHIDDevice вызовет handleStop (), затем высвободит выделенные средства. Подклассам рекомендуют переопределить handleStop ().
-
Прекратите освобождать события от одного или более элементов HID до указанной очереди событий.
Объявление
C++
virtual IOReturn stopEventDelivery( IOHIDEventQueue *queue, IOHIDElementCookie cookie = 0 );Параметры
queueОчередь событий, больше не хотящая получить события, сгенерированные указанным элементом HID.
cookieCookie для элемента HID опубликован устройством HID. Значение по умолчанию нуля указывает, что очередь должна быть удалена из списка отгрузки события всех элементов HID, опубликованных устройством HID. Подклассы не должны переопределять этот метод.
Возвращаемое значение
kIOReturnSuccess, если очередь была удалена из списка отгрузки события для одного или более элементов HID или kIOReturnBadArgument, если очередь или указанный параметр cookie недопустимы, или kIOReturnNotFound, если не была найдена очередь.
Обсуждение
Клиенты, которые названный startEventDelivery () должен в конечном счете вызвать этот метод для остановки поставки события ее очереди от одного или более элементов HID.
-
Элемент обновлений оценивает от устройства HID через getReport.
Объявление
C++
virtual IOReturn updateElementValues( IOHIDElementCookie *cookies, UInt32 cookieCount = 1);Параметры
cookiesСписок cookie элемента, кто значения, должен быть установлен на устройстве.
cookieCountЧисло cookie элемента.
Возвращаемое значение
kIOReturnSuccess на успехе или ошибка возвращаются иначе.
Обсуждение
Параметр завершения может быть добавлен в будущем.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData * _reserved; -
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData * _reserved;
