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

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

Разработчик

Ссылка класса IOHIDDevice

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

На этой странице
Язык:

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

    Очередь событий.

    cookie

    Cookie для элемента HID опубликован устройством HID.

    isActive

    Указатель на возвращаемое значение, установленное в истину, если события, сгенерированные элементом HID, будут поставлены очереди или лжи иначе. Это возвращаемое значение установлено, только если возвращается kIOReturnSuccess.

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

    kIOReturnSuccess на успехе или kIOReturnBadArgument, если один или больше предоставленных параметров недопустимы.

  • Освободите объект IOHIDDevice.

    Объявление

    C++

    virtual void free();

    Обсуждение

    Высвободите все средства, ранее выделенные, затем вызывающие супер:: свободный () для распространения вызова к нашему суперклассу.

  • Получите ссылку на дескриптор памяти, описывающий блок памяти, содержащий текущие значения элемента HID.

    Объявление

    C++

    virtual IOMemoryDescriptor * getMemoryWithCurrentElementValues() const;

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

    Ссылка на дескриптор памяти, описывающий значения элемента тока, или 0 для указания дефицита ресурсов.

    Обсуждение

    Каждый элемент HID, который может способствовать вводу, выведенному, или отчет функции, присваивается область памяти от блока общей памяти, выделенного IOHIDDevice. Каждый элемент будет использовать свою присвоенную область памяти для хранения его текущей стоимости, определенной структурой IOHIDElementValue. Память, описанная дескриптором памяти, может быть отображена на пространстве пользователя, чтобы позволить менеджеру по HID опрашивать значение элемента тока без стоимости перехода пользовательского ядра. Подклассы не должны переопределять этот метод.

  • Получите отчет от устройства HID.

    Объявление

    C++

    virtual IOReturn getReport( IOMemoryDescriptor *report, IOHIDReportTypereportType, IOOptionBitsoptions );

    Параметры

    report

    Дескриптор памяти, описывающий память для хранения отчета, считанного из устройства HID.

    reportType

    Тип отчета.

    options

    Более низкие 8 битов будут представлять Идентификатор отчета. Другие 24 бита являются опциями указать запрос.

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

    kIOReturnSuccess на успехе или ошибка возвращаются иначе.

    Обсуждение

    Параметр завершения может быть добавлен в будущем.

  • Получите отчет от устройства HID.

    Объявление

    C++

    virtual IOReturn getReport( IOMemoryDescriptor *report, IOHIDReportType reportType, IOOptionBits options, UInt32 completionTimeout, 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( AbsoluteTime timeStamp, 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( UInt32 type, 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, чтобы указать и идентифицировать элемент. Подклассы не должны переопределять этот метод.

  • Отправьте отчет в устройство HID.

    Объявление

    C++

    virtual IOReturn setReport( IOMemoryDescriptor *report, IOHIDReportType reportType, IOOptionBits options = 0 );

    Параметры

    report

    Дескриптор памяти, описывающий отчет отправить к устройству HID.

    reportType

    Тип отчета.

    options

    Более низкие 8 битов будут представлять Идентификатор отчета. Другие 24 бита являются опциями указать запрос.

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

    kIOReturnSuccess на успехе или ошибка возвращаются иначе.

    Обсуждение

    Параметр завершения может быть добавлен в будущем.

  • Отправьте отчет в устройство HID.

    Объявление

    C++

    virtual IOReturn setReport( IOMemoryDescriptor *report, IOHIDReportType reportType, IOOptionBits options, UInt32 completionTimeout, 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, IOHIDElementCookie cookie, IOOptionBits options = 0 );

    Параметры

    queue

    Очередь событий, интересующаяся получением событий, сгенерированных указанным элементом HID. Сохранение рассчитывает на очередь, будет постепенно увеличен одним.

    cookie

    Cookie для элемента 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.

    cookie

    Cookie для элемента 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;