Поделиться через


Многосессийный макет IMAPI

IMAPI предоставляет разработчикам приложений возможность создавать образы файловой системы ISO 9660 и UDF и записывать их на оптические носители CD, DVD и Blu-Ray™. В Windows 7 IMAPI обеспечивает дополнительную поддержку многосессийного записи на DVD-дисках и перезаписываемых носителях Blu-Ray™.

В следующей документации подробно описан макет диска, который IMAPI использует для реализации многосессии. Эти сведения следует использовать для обеспечения взаимодействия между IMAPI и другим программным обеспечением для записи, а также для того, чтобы разработчики этого программного обеспечения могли создавать многосессионные образы дисков, совместимые с IMAPI.

Примечание

Пример создания многосессийного диска см. в разделе Создание мультисессийного диска.

 

Многосессия на последовательных носителях

Реализация многосессии IMAPI на последовательных носителях поддерживается для использования с носителями CD-R, CD-RW, DVD-R, DVD+R и Blu-Ray™. IMAPI использует режим записи сеанса на один раз для CD-RW, и в результате в этом сценарии формат считается последовательным типом мультимедиа.

В сценарии с многосессией на последовательных носителях с использованием определяемой пользователем функции IMAPI записывает структуры привязки (указатель на дескриптор тома привязки UDF — AVDP), структуры томов (последовательность дескрипторов томов UDF — VDS) и структуры метаданных файловой системы (дескриптор набора файлов UDF — FSD) в начале каждого нового сеанса, как описано на следующей схеме:

Схема, демонстрирующая структуру метаданных файловой системы с точкой подключения Import/F S, обозначенной красной стрелкой в разделе Привязка физического сеанса 2.

Примечание

На этом рисунке показан макет диска IMAPI при использовании UDF 2.50 с избыточными метаданными.

 

Данные, хранящиеся на последовательно записываемом носителе, состоят из ряда физических сеансов. Каждый сеанс содержит полную файловую систему, представляющую данные пользователя в виде набора файлов, упорядоченных по каталогам. Метаданные файловой системы состоят из ряда иерархически упорядоченных структур данных. В верхней части иерархии находятся структуры привязки (AVDP), расположенные по предварительно определенным адресам логических блоков (LBA). Структуры привязки указывают расположения структур следующего уровня, у которых нет предопределенных адресов. Следующий уровень иерархии после структур привязки содержит структуры томов (VDS), описывающие свойства тома и ссылающиеся на структуры метаданных файловой системы (FSD), которые, в свою очередь, описывают отдельные файлы и каталоги.

Мультисессия на перезаписываемом носителе

Подход к последовательным носителям, описанный в предыдущем разделе, несовместим с перезаписываемым (не последовательным) носителем. К этим форматам мультимедиа относятся DVD-RW, DVD+RW, DVD-RAM, Blu-Ray™ с возможностью перезаписи и другие носители, доступные для произвольного записи, такие как диски Iomega REV. Перезаписываемый носитель не поддерживает концепцию физических сеансов, соответствующих логическим сеансам, которые представляют собой отдельные приращения, зафиксированные главным приложением. Предоставляется только один физический сеанс, который является областью, начинающейся с начала диска, представляющей всю адресуемую область, которая может содержать несколько логических сеансов.

Примечание

Хотя DVD-RW является исключением, так как поддерживает концепцию физического сеанса в последовательном режиме, в настоящее время эта возможность не поддерживается IMAPI.

 

Чтобы устранить отсутствие сопоставления "один к одному" между физическим и логическим сеансами в перезаписываемых форматах, IMAPI выборочно обновляет структуры привязки (AVDP) в первом логическом сеансе, указывая на новые структуры томов (VDS) и структуры метаданных файловой системы (FSD) в начале последнего логического сеанса, как показано на следующей схеме:

Схема, на которую показана структура метаданных файловой системы с точкой подключения Import/F S, обозначенная красной стрелкой в разделе Привязка логического сеанса 1.

Примечание

На этом рисунке показан макет диска IMAPI при использовании UDF 2.50 с избыточными метаданными.

 

При добавлении нового логического сеанса на перезаписываемый диск IMAPI сначала определяет конец последнего логического сеанса путем анализа метаданных тома (VDS). Затем IMAPI добавляет новый логический сеанс в комплекте с новой привязкой (AVDP), томом (VDS) и структурами метаданных файловой системы (FSD), физически смежными с ранее записанным логическим сеансом. Последний шаг требует, чтобы структуры привязки (AVDP) в начале первого логического сеанса обновлялись таким образом, чтобы они указывали на структуры томов (VDS) в новом логическом сеансе. Операционный результат тот же, что и при использовании последовательного носителя.

Дополнительные рекомендации

  • Макет секции

    Чтобы обеспечить совместимость IMAPI, рекомендуется, чтобы сторонние разработчики программного обеспечения для записи использовали макеты дисков, описанные в этой документации. Разработчикам следует избегать макетов с разделами файловой системы, занимающими весь диск, так как для этого требуется, чтобы приложения записи располагали свободное место в существующих разделах всякий раз, когда необходимо добавить данные на диск. Часто приложения для записи выполняют это, используя собственные маркеры на диске, чтобы указать, сколько места фактически занято пользовательскими данными. Такие макеты дисков несовместимы с IMAPI, так как собственные маркеры не распознаются за пределами приложения, для которых они были созданы.

  • Тип секции определяемой пользователем функции

    IMAPI использует тип секции UDF только для чтения в реализации многосессии на перезаписываемом носителе. Разработчики стороннего программного обеспечения для записи должны использовать тип раздела только для чтения , чтобы обеспечить совместимость с управляемым в Windows режимом записи с помощью IMAPI. Если используется другой тип секции UDF, например Переопределяемый , IMAPI не может обеспечить поддержку мастеринга.

Создание многосессийного диска

IMultisessionRandomWrite