IOMedia
Абстракция дискового устройства произвольного доступа.
Класс IOMedia является абстракцией дискового устройства произвольного доступа. Это обеспечивает непротиворечивый интерфейс и для устройств реального и для виртуального диска, для подразделений дисков, таких как разделы, для надмножеств дисков, таких как объемы RAID, и т.д. Это расширяет класс IOStorage путем реализации надлежащего открытого, близко, чтения, запишите, и соответствуя семантику для мультимедийных объектов. Свойства, которые это имеет, отражают свойства реальных дисковых устройств, такие как ejectability и writability.
Чтение и доступ уровня байта поддержки интерфейсов записи к пространству памяти, с надлежащим разблокированием, обработанным драйвером блочной системы хранения, однако, типичный клиент захочет привести естественный размер блока в порядок для оптимизации доступа к реальному дисковому устройству. Чтение или запись приняты, пока доступ клиента допустим, носители отформатирован, и передача в границах носителей. Дополнительная ненулевая основа (смещение) тогда применяется перед чтением или записью передается объекту провайдера.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.6 и позже.
-
Объявление
C++
virtual IOStorage * copyPhysicalExtent( IOService *
client
, UInt64 *byteStart
, UInt64 *byteCount
);Параметры
client
Клиент, запрашивающий работу.
byteStart
Запуск байтового смещения для работы. Возвращает физическое байтовое смещение, относительно физического объекта хранения, на успехе.
byteCount
Размер работы. Возвращает фактическое число байтов, которые могут быть переданы, относительно физического объекта хранения, на успехе.
Возвращаемое значение
Ссылка на физический объект хранения, который должен быть выпущен вызывающей стороной или нулем на ошибке.
Обсуждение
Преобразуйте указанное байтовое смещение в физическое байтовое смещение относительно физического объекта хранения. Этот вызов должен только быть выполнен в контексте lockPhysicalExtents ().
-
Объявление
C++
virtual IOMediaAttributeMask getAttributes() const;
Возвращаемое значение
Атрибуты носителей, такие как ejectability и сменяемость. Посмотрите IOMediaAttributeMask.
Обсуждение
Попросите у мультимедийного объекта его атрибутов.
-
Объявление
C++
virtual UInt64 getBase() const;
Обсуждение
Попросите у мультимедийного объекта его байтового смещения относительно его мультимедийного объекта провайдера ниже его в иерархии хранения. Смещение носителей, в байтах.
-
Объявление
C++
virtual const char * getContent() const;
Возвращаемое значение
Описание содержания носителей.
Обсуждение
Попросите у мультимедийного объекта описания его содержания. Описание совпадает с подсказкой во время создания объекта, но возможно, что описание было переопределено клиентом (который зондировал носители и идентифицировал содержание правильно) мультимедийного объекта. Это более точно, чем подсказка поэтому. Строка формируется в сходстве строк «Apple_HFS» Apple или в сходстве UUID.
Описание содержания может быть переопределено любым клиентом, соответствующим на этот мультимедийный объект с категорией соответствия kIOStorageCategory. Мультимедийный объект проверяет на kIOMediaContentMaskKey свойство в клиенте, и если он находит один, он копирует его в kIOMediaContentKey свойство.
-
Объявление
C++
virtual const char * getContentHint() const;
Возвращаемое значение
Подсказка содержания носителей.
Обсуждение
Попросите у мультимедийного объекта подсказки его содержания. Подсказка установлена во время создания объекта, должен создатель иметь подсказку относительно того, что это может содержать. Строка подсказки не изменяется для времени жизни объекта и также формируется в сходстве строк «Apple_HFS» Apple или в сходстве UUID.
-
Объявление
C++
virtual UInt64 getPreferredBlockSize() const;
Возвращаемое значение
Естественный размер блока, в байтах.
Обсуждение
Попросите у мультимедийного объекта его естественного размера блока. Эта информация полезна для клиентов, хотящих оптимизировать доступ к носителям.
-
Объявление
C++
virtual UInt64 getSize() const;
Возвращаемое значение
Размер носителей, в байтах.
Обсуждение
Попросите у мультимедийного объекта его общей длины в байтах.
-
Объявление
C++
virtual void handleClose( IOService *
client
, IOOptionBitsoptions
);Параметры
client
Клиент, запрашивающий завершение.
options
Опции для завершения. Обнулить.
Обсуждение
handleClose метод закрывает доступ клиента к этому объекту.
Эта реализация заменяет определение IOService handleClose ().
-
Объявление
C++
virtual bool handleIsOpen( const IOService *
client
) const;Параметры
client
Клиент для проверки открытого состояния. Обнуленный для проверки открытого состояния всех клиентов.
Возвращаемое значение
Возвращает true, если клиент был (или клиенты были), открытый, ложный иначе.
Обсуждение
handleIsOpen метод определяет, есть ли у указанного клиента или какого-либо клиента, если ни один не указан, в настоящее время открытое на этом объекте.
Эта реализация заменяет определение IOService handleIsOpen ().
-
Объявление
C++
virtual bool handleOpen( IOService *
client
, IOOptionBitsoptions
, void *access
);Параметры
client
Клиент, запрашивающий открытое.
options
Опции для открытого. Обнулить.
access
Уровень доступа для открытого. Набор к kIOStorageAccessReader или kIOStorageAccessReaderWriter.
Возвращаемое значение
Если открытое было успешным, ложным иначе, возвращает true.
Обсуждение
handleOpen метод предоставляет или отклоняет разрешение получить доступ к этому объекту заинтересованному клиенту. Параметром является значение IOStorageAccess, указывающее уровень желаемого доступа - читатель или читатель-писатель.
Этот метод может быть вызван, чтобы обновить или понизить уровень доступа для существующего клиента также. Предыдущий уровень доступа будет преобладать для обновлений тот сбой, конечно. Снижение никогда не должно перестать работать. Если новый уровень доступа должен совпасть со старым для данного клиента, этот метод ничего не сделает и возвратит успех. Во всех случаях, один, исключительное завершение на клиент ожидается для всех, открывается на клиент полученный.
Эта реализация заменяет определение IOService handleOpen ().
-
Объявление
C++
virtual bool init( UInt64
base
, UInt64size
, UInt64preferredBlockSize
, IOMediaAttributeMaskattributes
, boolisWhole
, boolisWritable
, const char *contentHint = 0, OSDictionary *properties = 0);Параметры
base
Смещение носителей, в байтах.
size
Размер носителей, в байтах.
preferredBlockSize
Естественный размер блока, в байтах.
attributes
Атрибуты носителей, такие как ejectability и сменяемость. Посмотрите IOMediaAttributeMask.
isWhole
Указывает, представляют ли носители целый диск.
isWritable
Указывает, перезаписываемы ли носители.
contentHint
Подсказка (дополнительного) содержания носителей. См. getContentHint ().
properties
Таблица свойства замены для этого (дополнительного) объекта.
Возвращаемое значение
Возвращает true на успехе, ложь иначе.
Обсуждение
Инициализируйте минимальное состояние этого объекта.
-
Объявление
C++
virtual bool isEjectable() const;
Возвращаемое значение
Если носители являются выбрасываемыми, ложными иначе, возвращает true.
Обсуждение
Спросите мультимедийный объект, выбрасываемо ли это.
-
Объявление
C++
virtual bool isFormatted() const;
Возвращаемое значение
Если носители отформатированы, ложь иначе, возвращает true.
Обсуждение
Спросите мультимедийный объект, отформатирован ли он.
-
Объявление
C++
virtual bool isWhole() const;
Возвращаемое значение
Если носители представляют целый диск, ложь иначе, возвращает true.
Обсуждение
Спросите мультимедийный объект, представляет ли он целый диск.
-
Объявление
C++
virtual bool isWritable() const;
Возвращаемое значение
Если носители являются перезаписываемыми, ложными иначе, возвращает true.
Обсуждение
Спросите мультимедийный объект, перезаписываемо ли это.
-
Объявление
C++
virtual bool lockPhysicalExtents( IOService *
client
);Параметры
client
Клиент, запрашивающий работу.
Возвращаемое значение
Если блокировка была успешной, ложной иначе, возвращает true.
Обсуждение
Заблокируйте содержание объекта хранения против перемещения временно, в целях получения физических степеней.
-
Объявление
C++
virtual void read( IOService *
client
, UInt64byteStart
, IOMemoryDescriptor *buffer
, IOStorageAttributes *attributes
, IOStorageCompletion *completion
);Параметры
client
Клиент, запрашивающий чтение.
byteStart
Запуск байтового смещения для передачи данных.
buffer
Буфер для передачи данных. Размер буфера подразумевает размер передачи данных.
attributes
Атрибуты передачи данных. Посмотрите IOStorageAttributes. Это - ответственность вызываемого поддержать информацию на время передачи данных по мере необходимости.
completion
Подпрограмма завершения для вызова один раз передача данных завершена. Это - ответственность вызываемого поддержать информацию на время передачи данных по мере необходимости.
Обсуждение
Считайте данные из объекта хранения при указанном байтовом смещении в указанный буфер, асинхронно. Когда чтение завершится, вызывающая сторона будет уведомлена через указанное действие завершения.
Буфер будет сохранен на время чтения.
-
Объявление
C++
virtual IOReturn synchronizeCache( IOService *
client
);Параметры
client
Клиент, запрашивающий синхронизацию кэша.
Возвращаемое значение
Возвращает состояние синхронизации кэша.
Обсуждение
Сбросьте кэшированные данные в объекте хранения, если таковые имеются, синхронно.
-
Объявление
C++
virtual void unlockPhysicalExtents( IOService *
client
);Параметры
client
Клиент, запрашивающий работу.
Обсуждение
Разблокируйте содержание объекта хранения для перемещения снова. Этот вызов должен сбалансировать успешный вызов к lockPhysicalExtents ().
-
Объявление
C++
virtual IOReturn unmap( IOService *
client
, IOStorageExtent *extents
, UInt32extentsCount
, UInt32 options = 0);Параметры
client
Клиент, запрашивающий работу.
extents
Список степеней. Посмотрите IOStorageExtent. Законно для вызываемого перезаписать содержание этого буфера для удовлетворения запроса.
extentsCount
Число степеней.
Возвращаемое значение
Возвращает состояние работы.
Обсуждение
Удалите неиспользованные данные из объекта хранения при указанных байтовых смещениях, синхронно.
-
Объявление
C++
virtual void write( IOService *
client
, UInt64byteStart
, IOMemoryDescriptor *buffer
, IOStorageAttributes *attributes
, IOStorageCompletion *completion
);Параметры
client
Клиент, запрашивающий запись.
byteStart
Запуск байтового смещения для передачи данных.
buffer
Буфер для передачи данных. Размер буфера подразумевает размер передачи данных.
attributes
Атрибуты передачи данных. Посмотрите IOStorageAttributes. Это - ответственность вызываемого поддержать информацию на время передачи данных по мере необходимости.
completion
Подпрограмма завершения для вызова один раз передача данных завершена. Это - ответственность вызываемого поддержать информацию на время передачи данных по мере необходимости.
Обсуждение
Запишите данные в объект хранения при указанном байтовом смещении от указанного буфера, асинхронно. Когда запись завершится, вызывающая сторона будет уведомлена через указанное действие завершения.
Буфер будет сохранен на время записи.