IOStorage
Общий базовый класс для объектов массового хранения.
Класс IOStorage является общим базовым классом для объектов массового хранения. Это - абстрактный класс, определяющий открывать/закрывать/читать/писать APIs, который должен быть реализован в данном подклассе. Синхронные версии чтения-записи, APIs предоставлен здесь - они кодируются таким способом как для обертывания асинхронных версий, реализованных в подкласс.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.6 и позже.
-
Объявление
C++
static void complete( IOStorageCompletion *completion, IOReturnstatus, UInt64 actualByteCount = 0);Параметры
completionИнформация о завершении для передачи данных.
statusСостояние передачи данных.
actualByteCountФактическое число байтов передается в передаче данных.
Обсуждение
Вызывает указанное действие завершения запроса чтения-записи. Если действие завершения является неуказанным, никакие меры не приняты. Этот метод подачи просто как удобство к хранению разделяет разработчиков на подклассы.
-
Объявление
C++
virtual IOStorage * copyPhysicalExtent( IOService *client, UInt64 *byteStart, UInt64 *byteCount);Параметры
clientКлиент, запрашивающий работу.
byteStartЗапуск байтового смещения для работы. Возвращает физическое байтовое смещение, относительно физического объекта хранения, на успехе.
byteCountРазмер работы. Возвращает фактическое число байтов, которые могут быть переданы, относительно физического объекта хранения, на успехе.
Возвращаемое значение
Ссылка на физический объект хранения, который должен быть выпущен вызывающей стороной или нулем на ошибке.
Обсуждение
Преобразуйте указанное байтовое смещение в физическое байтовое смещение относительно физического объекта хранения. Этот вызов должен только быть выполнен в контексте lockPhysicalExtents ().
-
Объявление
C++
virtual void handleClose( IOService *client, IOOptionBitsoptions) = 0;Параметры
clientКлиент, запрашивающий завершение.
optionsОпции для завершения. Обнулить.
Обсуждение
handleClose метод закрывает доступ клиента к этому объекту.
-
Объявление
C++
virtual bool handleIsOpen( const IOService *client) const = 0;Параметры
clientКлиент для проверки открытого состояния. Обнуленный для проверки открытого состояния всех клиентов.
Возвращаемое значение
Возвращает true, если клиент был (или клиенты были), открытый, ложный иначе.
Обсуждение
handleIsOpen метод определяет, есть ли у указанного клиента или какого-либо клиента, если ни один не указан, в настоящее время открытое на этом объекте.
-
Объявление
C++
virtual bool handleOpen( IOService *client, IOOptionBitsoptions, void *access) = 0;Параметры
clientКлиент, запрашивающий открытое.
optionsОпции для открытого. Обнулить.
accessУровень доступа для открытого. Набор к kIOStorageAccessReader или kIOStorageAccessReaderWriter.
Возвращаемое значение
Если открытое было успешным, ложным иначе, возвращает true.
Обсуждение
handleOpen метод предоставляет или отклоняет разрешение получить доступ к этому объекту заинтересованному клиенту. Параметром является значение IOStorageAccess, указывающее уровень желаемого доступа - читатель или читатель-писатель.
Этот метод может быть вызван, чтобы обновить или понизить уровень доступа для существующего клиента также. Предыдущий уровень доступа будет преобладать для обновлений тот сбой, конечно. Снижение никогда не должно перестать работать. Если новый уровень доступа должен совпасть со старым для данного клиента, этот метод ничего не сделает и возвратит успех. Во всех случаях, один, исключительное завершение на клиент ожидается для всех, открывается на клиент полученный.
-
Объявление
C++
virtual bool lockPhysicalExtents( IOService *client);Параметры
clientКлиент, запрашивающий работу.
Возвращаемое значение
Если блокировка была успешной, ложной иначе, возвращает true.
Обсуждение
Заблокируйте содержание объекта хранения против перемещения временно, в целях получения физических степеней.
-
Объявление
C++
virtual bool open( IOService *client, IOOptionBitsoptions, IOStorageAccessaccess);Параметры
clientКлиент, запрашивающий открытое.
optionsОпции для открытого. Обнулить.
accessУровень доступа для открытого. Набор к kIOStorageAccessReader или kIOStorageAccessReaderWriter.
Возвращаемое значение
Если открытое было успешным, ложным иначе, возвращает true.
Обсуждение
Попросите у объекта хранения разрешения получить доступ к его содержанию; метод эквивалентен IOService:: открытый (), но с корректными типами параметра.
Этот метод может также быть вызван, чтобы обновить или понизить доступ существующего открытого (если это перестало работать, существующее открытое преобладает).
-
Объявление
C++
#ifdef __LP64__ virtual IOReturn read( IOService *client, UInt64byteStart, IOMemoryDescriptor *buffer, IOStorageAttributes *attributes = 0, UInt64 *actualByteCount = 0); #else /* !__LP64__ */ virtual IOReturn read( IOService *client, UInt64byteStart, IOMemoryDescriptor *buffer, UInt64 *actualByteCount = 0); #endif /* !__LP64__ */Параметры
clientКлиент, запрашивающий чтение.
byteStartЗапуск байтового смещения для передачи данных.
bufferБуфер для передачи данных. Размер буфера подразумевает размер передачи данных.
attributesАтрибуты передачи данных. Посмотрите IOStorageAttributes.
actualByteCountВозвращает фактическое число байтов, переданных в передаче данных.
Возвращаемое значение
Возвращает состояние передачи данных.
Обсуждение
Считайте данные из объекта хранения при указанном байтовом смещении в указанный буфер, синхронно. Когда чтение завершится, этот метод возвратится к вызывающей стороне. Фактическое поле количества байта является дополнительным.
-
Объявление
C++
#ifdef __LP64__ virtual void read( IOService *client, UInt64byteStart, IOMemoryDescriptor *buffer, IOStorageAttributes *attributes, IOStorageCompletion *completion) = 0; #else /* !__LP64__ */ virtual void read( IOService *client, UInt64byteStart, IOMemoryDescriptor *buffer, IOStorageAttributes *attributes, IOStorageCompletion *completion); #endif /* !__LP64__ */Параметры
clientКлиент, запрашивающий чтение.
byteStartЗапуск байтового смещения для передачи данных.
bufferБуфер для передачи данных. Размер буфера подразумевает размер передачи данных.
attributesАтрибуты передачи данных. Посмотрите IOStorageAttributes. Это - ответственность вызываемого поддержать информацию на время передачи данных по мере необходимости.
completionПодпрограмма завершения для вызова один раз передача данных завершена. Это - ответственность вызываемого поддержать информацию на время передачи данных по мере необходимости.
Обсуждение
Считайте данные из объекта хранения при указанном байтовом смещении в указанный буфер, асинхронно. Когда чтение завершится, вызывающая сторона будет уведомлена через указанное действие завершения.
Буфер будет сохранен на время чтения.
-
Объявление
C++
virtual IOReturn synchronizeCache( IOService *client) = 0;Параметры
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++
#ifdef __LP64__ virtual IOReturn write( IOService *client, UInt64byteStart, IOMemoryDescriptor *buffer, IOStorageAttributes *attributes = 0, UInt64 *actualByteCount = 0); #else /* !__LP64__ */ virtual IOReturn write( IOService *client, UInt64byteStart, IOMemoryDescriptor *buffer, UInt64 *actualByteCount = 0); #endif /* !__LP64__ */Параметры
clientКлиент, запрашивающий запись.
byteStartЗапуск байтового смещения для передачи данных.
bufferБуфер для передачи данных. Размер буфера подразумевает размер передачи данных.
attributesАтрибуты передачи данных. Посмотрите IOStorageAttributes.
actualByteCountВозвращает фактическое число байтов, переданных в передаче данных.
Возвращаемое значение
Возвращает состояние передачи данных.
Обсуждение
Запишите данные в объект хранения при указанном байтовом смещении от указанного буфера, синхронно. Когда запись завершится, этот метод возвратится к вызывающей стороне. Фактическое поле количества байта является дополнительным.
-
Объявление
C++
#ifdef __LP64__ virtual void write( IOService *client, UInt64byteStart, IOMemoryDescriptor *buffer, IOStorageAttributes *attributes, IOStorageCompletion *completion) = 0; #else /* !__LP64__ */ virtual void write( IOService *client, UInt64byteStart, IOMemoryDescriptor *buffer, IOStorageAttributes *attributes, IOStorageCompletion *completion); #endif /* !__LP64__ */Параметры
clientКлиент, запрашивающий запись.
byteStartЗапуск байтового смещения для передачи данных.
bufferБуфер для передачи данных. Размер буфера подразумевает размер передачи данных.
attributesАтрибуты передачи данных. Посмотрите IOStorageAttributes. Это - ответственность вызываемого поддержать информацию на время передачи данных по мере необходимости.
completionПодпрограмма завершения для вызова один раз передача данных завершена. Это - ответственность вызываемого поддержать информацию на время передачи данных по мере необходимости.
Обсуждение
Запишите данные в объект хранения при указанном байтовом смещении от указанного буфера, асинхронно. Когда запись завершится, вызывающая сторона будет уведомлена через указанное действие завершения.
Буфер будет сохранен на время записи.
