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

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

Разработчик

Ссылка класса IOFireWireAVCLibUnitInterface

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

На этой странице

IOFireWireAVCLibUnitInterface

Начальный интерфейс обнаружен для всех драйверов Модуля AVC.

IOFireWireAVCLibUnitInterface является начальным интерфейсом, обнаруженным большинством драйверов. Это предоставляет методы, управляющие работой модуля AVC в целом. Наконец, Модуль может предоставить ссылку на IOFireWireUnit. Если драйвер хочет получить доступ к стандартному FireWire APIs, это может быть полезно.

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Не применимый не применимый
  • Добавляет диспетчер для обратных вызовов ядра к указанному runloop.

    Объявление

    C++

    IOReturn ( *addCallbackDispatcherToRunLoop)( void *self, CFRunLoopRef cfRunLoopRef );

    Параметры

    self

    Указатель на IOFireWireAVCLibUnitInterface.

    cfRunLoopRef

    Ссылка на цикл выполнения.

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

    Возвраты kIOReturnSuccess на успехе.

    Обсуждение

    Части пространства пользователя AVC API связываются со службами в ядре путем обмена сообщениями ядра. Точно так же ядро передает службы пространства пользователя в ответ. Эти ответы должны быть взяты частью кода. Этот вызов добавляет что код к указанному циклу выполнения. Большинство драйверов вызовет этот метод на цикле выполнения, создававшемся, когда создавалась Ваша задача. Для предотвращения мертвой блокировки, необходимо избежать спать (или ожидание вращения) цикл выполнения для ожидания ответа AVC. Если Вы сделаете это, то диспетчер никогда не будет добираться для выполнения, и Вы будете ожидать навсегда.

  • Объявление

    C++

    IOReturn ( *AVCAsynchronousCommandCancel)( void *self, IOFireWireAVCLibAsynchronousCommand *pCommandObject);

  • Объявление

    C++

    IOReturn ( *AVCAsynchronousCommandReinit)( void *self, IOFireWireAVCLibAsynchronousCommand *pCommandObject);

  • Объявление

    C++

    IOReturn ( *AVCAsynchronousCommandReinitWithCommandBytes)( void *self, IOFireWireAVCLibAsynchronousCommand *pCommandObject, const UInt8 *command, UInt32 cmdLen);

  • Объявление

    C++

    IOReturn ( *AVCAsynchronousCommandRelease)( void *self, IOFireWireAVCLibAsynchronousCommand *pCommandObject);

  • Объявление

    C++

    IOReturn ( *AVCAsynchronousCommandSubmit)( void *self, IOFireWireAVCLibAsynchronousCommand *pCommandObject);

  • Отправляет команду AVC в устройство и возвращает ответ.

    Объявление

    C++

    IOReturn ( *AVCCommand)( void *self, const UInt8 *command, UInt32 cmdLen, UInt8 *response, UInt32 *responseLen);

    Параметры

    self

    Указатель на IOFireWireAVCLibUnitInterface.

    command

    Указатель на команду для отправки.

    cmdLen

    Длина (в байтах) команды.

    response

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

    responseLen

    Указатель для размещения для хранения продолжительности ответа.

    Обсуждение

    Эта функция блокирует, пока устройство не возвратит ответ, или драйвер ядра испытывает таймаут.

  • Отправляет команду AVC в устройство и возвращает ответ.

    Объявление

    C++

    IOReturn ( *AVCCommandInGeneration)( void *self, UInt32 busGeneration, const UInt8 *command, UInt32 cmdLen, UInt8 *response, UInt32 *responseLen);

    Параметры

    self

    Указатель на IOFireWireAVCLibUnitInterface.

    busGeneration

    FireWire соединяют шиной генерацию, в которой команда допустима.

    command

    Указатель на команду для отправки.

    cmdLen

    Длина (в байтах) команды.

    response

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

    responseLen

    Указатель для размещения для хранения продолжительности ответа.

    Обсуждение

    Отправляет команду AVC в устройство и возвращает ответ. Команда должна завершиться в указанной генерации шины. Эта функция только доступна, если версия интерфейса> 1 (МАКОСКС 10.2.0 или позже?). Эта функция блокирует, пока устройство не возвратит ответ, или драйвер ядра испытывает таймаут.

  • Постепенно уменьшает количество двухточечного соединения входного разъема модуля.

    Объявление

    C++

    IOReturn ( *breakP2PInputConnection)( void *self, UInt32 inputPlug);

    Обсуждение

    Если версия интерфейса> 3, эта функция только доступна.

  • Постепенно уменьшает количество двухточечного соединения выходного разъема модуля.

    Объявление

    C++

    IOReturn ( *breakP2POutputConnection)( void *self, UInt32 outputPlug);

    Обсуждение

    Если версия интерфейса> 3, эта функция только доступна.

  • Закрывает эксклюзивный доступ к устройству.

    Объявление

    C++

    void ( *close)( void *self );

    Параметры

    self

    Указатель на IOFireWireAVCLibUnitInterface.

    Обсуждение

    Закрывает эксклюзивный доступ к устройству. Когда устройство закрывается, оно может быть разгружено ядром. Если это будет разгружено и затем позже вновь появится, то это будет представлено различным объектом. Вы не будете в состоянии использовать этот пользовательский клиент на новом объекте. Новый объект должен будет искаться в Реестре I/O, и новый пользовательский клиент должен будет быть открыт на нем.

  • Объявление

    C++

    IOReturn ( *createAVCAsynchronousCommand)( void *self, const UInt8 *command, UInt32 cmdLen, IOFireWireAVCLibAsynchronousCommandCallback completionCallback, void *pRefCon, IOFireWireAVCLibAsynchronousCommand **ppCommandObject);

  • Создает сменный объект для наследователя (в Реестре I/O) модуля AVC и возвращает интерфейс ему.

    Объявление

    C++

    void * ( *getAncestorInterface)( void *self, char *object_class, REFIID pluginType, REFIID iid);

    Параметры

    self

    Указатель на IOFireWireAVCLibUnitInterface.

    object_class

    Имя класса наследователя устройства для получения интерфейса для.

    pluginType

    Идентификационный номер, типа CFUUIDBytes (см. CFUUID.h), идентифицируя тип сменной службы, которая будет возвращена для наследователя.

    iid

    Идентификационный номер, типа CFUUIDBytes (см. CFUUID.h), идентифицируя тип интерфейса, который будет возвращен для создаваемого сменного объекта.

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

    Возвращает указатель на интерфейс COM-стиля. Возвраты 0 на отказ.

    Обсуждение

    Эта функция только доступна, если версия интерфейса> 1 (МАКОСКС 10.2.0 или позже?).

  • Создает сменный объект для драйвера протокола для шины FireWire, с которой модуль AVC подключен и возвращает интерфейс ему.

    Объявление

    C++

    void * ( *getProtocolInterface)( void *self, REFIID pluginType, REFIID iid);

    Параметры

    self

    Указатель на IOFireWireAVCLibUnitInterface.

    pluginType

    Идентификационный номер, типа CFUUIDBytes (см. CFUUID.h), идентифицируя тип сменной службы, которая будет возвращена для создаваемого объекта протокола.

    iid

    Идентификационный номер, типа CFUUIDBytes (см. CFUUID.h), идентифицируя тип интерфейса, который будет возвращен для создаваемого объекта устройства протокола.

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

    Возвращает указатель на интерфейс COM-стиля. Возвраты 0 на отказ.

    Обсуждение

    Эта функция только доступна, если версия интерфейса> 1 (МАКОСКС 10.2.0 или позже?).

  • Получите ссылку сеанса.

    Объявление

    C++

    IOFireWireSessionRef ( *getSessionRef)( void *self);

    Параметры

    self

    Указатель на IOFireWireAVCLibUnitInterface.

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

    Возвращает sessionRef на успехе.

    Обсуждение

    Заставляет sessionRef использоваться с openWithSessionRef.

  • Постепенно увеличивает количество двухточечного соединения входного разъема модуля.

    Объявление

    C++

    IOReturn ( *makeP2PInputConnection)( void *self, UInt32 inputPlug, UInt32 chan);

    Обсуждение

    Если версия интерфейса> 3, эта функция только доступна.

  • Постепенно увеличивает количество двухточечного соединения выходного разъема модуля.

    Объявление

    C++

    IOReturn ( *makeP2POutputConnection)( void *self, UInt32 outputPlug, UInt32 chan, IOFWSpeed speed);

    Обсуждение

    Если версия интерфейса> 3, эта функция только доступна.

  • Исключительно открывает соединение с устройством в ядре.

    Объявление

    C++

    IOReturn ( *open)( void *self );

    Параметры

    self

    Указатель на IOFireWireAVCLibUnitInterface.

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

    Возвраты kIOReturnSuccess на успехе.

    Обсуждение

    Исключительно открывает соединение с устройством в ядре. Пока объект устройства в ядре открыт, никакие другие драйверы не будут в состоянии открыть соединение с устройством. Когда открытый, устройство на шине может исчезнуть, но представление в объекте ядра его останется инстанцированным и может начать связываться с устройством снова, если это когда-нибудь вновь появится.

  • Открывает соединение с устройством, которое не уже открыто.

    Объявление

    C++

    IOReturn ( *openWithSessionRef)( void *self, IOFireWireSessionRef sessionRef );

    Параметры

    sessionRef

    SessionRef возвратился из вызова getSessionRef.

    self

    Указатель на IOFireWireAVCLibUnitInterface.

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

    Возвраты kIOReturnSuccess на успехе.

    Обсуждение

    Иногда желательно открыть многопользовательские клиенты на устройстве. В случае FireWire иногда мы хотим иметь и Пользовательский Клиент FireWire и Пользовательский Клиент AVC, открытый одновременно. Метод для решения в арбитражном порядке этого следующие:

    Сначала открывайте обычно устройство дальше всего от корня в Реестре I/O.

    Во-вторых, получите его sessionRef с вызовом getSessionRef.

    В-третьих, откройте устройство далее, цепочка путем вызова этого метода и передачи sessionRef возвратилась из вызова на шаге 2.

  • Удаляет диспетчера для обратных вызовов ядра к указанному циклу выполнения.

    Объявление

    C++

    void ( *removeCallbackDispatcherFromRunLoop)( void *self );

    Параметры

    self

    Указатель на IOFireWireAVCLibUnitInterface.

    Обсуждение

    Отменяет работу addCallbackDispatcherToRunLoop.

  • Обратный вызов наборов для пространства пользователя передает подпрограмму.

    Объявление

    C++

    void ( *setMessageCallback)( void *self, void *refCon, IOFWAVCMessageCallback callback);

    Параметры

    self

    Указатель на IOFireWireAVCLibUnitInterface.

    refCon

    RefCon, который будет возвращен как первый параметр подпрограммы завершения.

    callback

    Адрес подпрограммы завершения.

    Обсуждение

    В FireWire и AVC, сообщения о состоянии шины поставлены через подпрограмму сообщения IOKIT. Эта подпрограмма эмулирована в пространстве пользователя для AVC и сообщений FireWire через этот обратный вызов. Необходимо зарегистрироваться здесь для сброса шины и сообщений переподключения.

  • Обновляет тайм-аут AVCCOMMAND назад к 10 секундам.

    Объявление

    C++

    IOReturn ( *updateAVCCommandTimeout)( void *self);

    Обсуждение

    После 10 секунд испытает таймаут AVCCommands, если эта функция не вызвана (от другого потока) для обновления тайм-аута команды назад к 10 секундам. Если версия интерфейса> 2, эта функция только доступна.