IOInterleavedMemoryDescriptor
Объект IOInterleavedMemoryDescriptor описывает область памяти, составленную из частей нескольких других IOMemoryDescriptors.
Объект IOInterleavedMemoryDescriptor представляет чередованные диапазоны памяти, указанной как упорядоченный список частей отдельного IOMemoryDescriptors. Части объединены в цепочку от начала до конца для составления единственного непрерывного буфера.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.5 и позже.
-
Очистите все IOMemoryDescriptors, в настоящее время содержавшиеся в, и сбросьте IOInterleavedMemoryDescriptor.
Объявление
C++
virtual void clearMemoryDescriptors( IODirection direction =
direction
);Параметры
direction
Направление I/O, которое будет связано с дескриптором, который может влиять на работу того, чтобы подготавливать и завершить методы на некоторой архитектуре.
Обсуждение
Очищает каждый IOMemoryDescriptor путем завершения (в случае необходимости) и выпуская. IOInterleavedMemoryDescriptor тогда сбрасывается и может признать, что новые дескрипторы до способности указали, когда это создавалось.
-
Полная обработка памяти после передачи I/O заканчивается.
Объявление
C++
virtual IOReturn complete( IODirection forDirection =
forDirection
);Параметры
forDirection
Направление I/O просто завершилось, или kIODirectionNone для направления, указанного дескриптором памяти.
Возвращаемое значение
Код IOReturn.
Обсуждение
Этот метод нельзя вызвать, если не было ранее выпущено подготавливать; подготавливать () и завершенный () должно произойти в парах, прежде и после передачи I/O, включающей листаемую память.
-
Повредите дескриптор памяти в его физически непрерывные сегменты.
Объявление
C++
virtual addr64_t getPhysicalSegment( IOByteCount
offset
, IOByteCount *length
, IOOptionBits options = 0 );Параметры
offset
Байтовое смещение в память, чей физический адрес для возврата.
length
Если ненулевой, getPhysicalSegment сохранит здесь длину физически непрерывного segement при данном смещении.
Возвращаемое значение
Физический адрес или нуль, если смещение вне длины памяти.
Обсуждение
Этот метод возвращает физический адрес байта при данном смещении в память, и дополнительно длины физически непрерывного сегмента от того смещения.
-
Инициализируйте IOInterleavedMemoryDescriptor для описания области памяти, составленной из нескольких других IOMemoryDescriptors.
Объявление
C++
virtual bool initWithCapacity( IOByteCount
capacity
, IODirectiondirection
);Параметры
capacity
Максимальное количество IOMemoryDescriptors, который может быть впоследствии добавлен к этому IOInterleavedMemoryDescriptor.
direction
Направление I/O, которое будет связано с дескриптором, который может влиять на работу того, чтобы подготавливать и завершить методы на некоторой архитектуре.
Возвращаемое значение
Создаваемый IOInterleavedMemoryDescriptor на успехе, чтобы быть выпущенным вызывающей стороной или нулем при отказе.
Обсуждение
Этот метод инициализирует IOInterleavedMemoryDescriptor для памяти, состоящей из частей многих других IOMemoryDescriptors, объединенных в цепочку от начала до конца (в порядке, они появляются в массиве) представлять единственный непрерывный буфер памяти.
-
Подготовьте память к передаче I/O.
Объявление
C++
virtual IOReturn prepare( IODirection forDirection =
forDirection
);Параметры
forDirection
Направление I/O, который будет выполняться, или kIODirectionNone для направления, указанного дескриптором памяти.
Возвращаемое значение
Код IOReturn.
Обсуждение
Это вовлекает разбивку на страницы в память, при необходимости, и проводное соединение его вниз на время передачи. Полное () метод завершает обработку памяти после того, как закончится передача I/O. Этому методу нужно не, потребовал нелистаемую память.
-
Добавьте часть IOMemoryDescriptor к IOInterleavedMemoryDescriptor.
Объявление
C++
virtual bool setMemoryDescriptor( IOMemoryDescriptor *
descriptor
, IOByteCountoffset
, IOByteCountlength
);Параметры
descriptor
IOMemoryDescriptor, который будет добавлен к IOInterleavedMemoryDescriptor. Его направление должно быть совместимо с тем из IOInterleavedMemoryDescriptor.
offset
Смещение в IOMemoryDescriptor части, которая будет добавлена к виртуализированному буферу.
length
Длина части IOMemoryDescriptor, который будет добавлен к виртуализированному буферу.
Возвращаемое значение
Возвращает true, часть была успешно добавлена.
Обсуждение
Этот метод добавляет часть IOMemoryDescriptor, описанного смещением и параметрами длины до конца IOInterleavedMemoryDescriptor. Единственный IOMemoryDescriptor может быть добавлен так же много раз, как существует комната для него. Смещение и длина должны описать часть полностью в IOMemoryDescriptor.
-
Создайте IOInterleavedMemoryDescriptor для описания области памяти, составленной из нескольких других IOMemoryDescriptors.
Объявление
C++
static IOInterleavedMemoryDescriptor * withCapacity( IOByteCount
capacity
, IODirectiondirection
);Параметры
capacity
Максимальное количество IOMemoryDescriptors, который может быть впоследствии добавлен к этому IOInterleavedMemoryDescriptor.
direction
Направление I/O, которое будет связано с дескриптором, который может влиять на работу того, чтобы подготавливать и завершить методы на некоторой архитектуре.
Возвращаемое значение
Создаваемый IOInterleavedMemoryDescriptor на успехе, чтобы быть выпущенным вызывающей стороной или нулем при отказе.
Обсуждение
Этот метод создает и инициализирует IOInterleavedMemoryDescriptor для памяти, состоящей из частей многих других IOMemoryDescriptors, объединенных в цепочку от начала до конца (в порядке, они появляются в массиве) представлять единственный непрерывный буфер памяти.