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

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

Разработчик

Ссылка класса SCSITaskDeviceInterface

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

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

SCSITaskDeviceInterface

Основной интерфейс для Устройства SCSITask.

После рандеву с Устройством SCSITask в IORegistry можно создать экземпляр этого интерфейса как прокси к IOService. Как только у Вас есть этот интерфейс или один из его подклассов, можно создать SCSITasks для отправки к устройству. Используйте метод CreateSCSITask для создания новых экземпляров SCSITask для этого устройства.

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


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

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


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

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


Не применимый не применимый
  • Удобный метод добавить асинхронные механизмы обратного вызова к предпочтительному CFRunLoop.

    Объявление

    C++

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

    Параметры

    self

    Указатель на экземпляр SCSITaskDeviceInterface.

    cfRunLoopRef

    CFRunLoop, к которому должны быть присоединены асинхронные уведомления об обратном вызове.

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

    Возвраты kIOReturnSuccess в случае успеха, kIOReturnNoDevice, если нет никакого соединения с IOService или kIOReturnNoMemory, если порт Маха не мог бы быть выделен и инициализирован должным образом.

    Обсуждение

    Как только SCSITaskDeviceInterface открыт, клиент может выполнить синхронные или асинхронные запросы к устройству. Этот метод создает и инициализирует mach_port_t для получения асинхронных уведомлений об обратном вызове через механизм CFRunLoop.

  • Метод для создания SCSITasks.

    Объявление

    C++

    SCSITaskInterface ** ( *CreateSCSITask )( void *self );

    Параметры

    self

    Указатель на экземпляр SCSITaskDeviceInterface.

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

    Возвращает дескриптор экземпляру SCSITaskInterface или NULL, если нельзя было бы быть выделены.

    Обсуждение

    Как только SCSITaskDeviceInterface открыт, клиент может запросить эксклюзивный доступ к устройству. Как только клиент успешно получил эксклюзивный доступ, это становится Драйвером Логической единицы. Это тогда может использовать этот метод для выделения SCSITasks, который будет отправлен в устройство.

  • Метод, чтобы узнать, может ли устройство быть открыто исключительно вызывающей стороной.

    Объявление

    C++

    Boolean ( *IsExclusiveAccessAvailable ) ( void *self );

    Параметры

    self

    Указатель на экземпляр SCSITaskDeviceInterface.

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

    Если устройство было открыто для эксклюзивного доступа, иначе истина, возвращает false.

    Обсуждение

    Метод, чтобы узнать, может ли устройство быть открыто исключительно вызывающей стороной.

  • Метод для получения эксклюзивного доступа к устройству так, чтобы SCSITasks мог быть отправлен в него.

    Объявление

    C++

    IOReturn ( *ObtainExclusiveAccess ) ( void *self );

    Параметры

    self

    Указатель на экземпляр SCSITaskDeviceInterface.

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

    Возвраты kIOReturnSuccess, если эксклюзивный доступ был предоставлен, еще если носители все еще смонтирован, это возвращает kIOReturnBusy. Если у другого клиента уже есть эксклюзивный доступ, kIOReturnExclusiveAccess возвращается.

    Обсуждение

    Как только SCSITaskDeviceInterface открыт, клиент может запросить эксклюзивный доступ к устройству. Как только клиент успешно получил эксклюзивный доступ, это становится Драйвером Логической единицы, и все Драйверы Логической единицы в ядре замораживаются.

  • Метод для выпуска эксклюзивного доступа к устройству так, чтобы другие клиенты могли отправить команды в него.

    Объявление

    C++

    IOReturn ( *ReleaseExclusiveAccess ) ( void *self );

    Параметры

    self

    Указатель на экземпляр SCSITaskDeviceInterface.

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

    Возвраты kIOReturnSuccess, если эксклюзивный доступ был выпущен, еще некоторая надлежащая ошибка.

    Обсуждение

    Как только SCSITaskDeviceInterface открыт, клиент может запросить эксклюзивный доступ к устройству. Как только клиент успешно получил эксклюзивный доступ, это становится Драйвером Логической единицы и всеми Драйверами Логической единицы в ядре (если кто-либо является соответствующим на устройстве), замораживаются. Этот метод выпускает этот доступ и не замораживает в драйверах ядра (если таковые имеются).

  • Удобный метод удалить асинхронные механизмы обратного вызова из CFRunLoop.

    Объявление

    C++

    void ( *RemoveCallbackDispatcherFromRunLoop ) ( void *self );

    Параметры

    self

    Указатель на экземпляр SCSITaskDeviceInterface.

    Обсуждение

    Как только SCSITaskDeviceInterface открыт, клиент может выполнить синхронные или асинхронные запросы к устройству. Этот метод удаляет асинхронные уведомления, поставленные через CFRunLoop. Это нужно вызвать только после вызова AddCallbackDispatcherToRunLoop.

Переменные экземпляра

  • Версия интерфейса

    Объявление

    C++

    UInt16 version;

  • Интерфейсная версия

    Объявление

    C++

    UInt16 revision;