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


Метод IDiscFormat2Data::Write (imapi2.h)

Записывает поток данных на устройство.

Примечание Для успешной записи размер переданного потока должен быть кратным размеру сектора 2048. Сюда входят операции, использующие потоки, связанные с ISO-образами, не созданными IMAPI.

 

Синтаксис

HRESULT Write(
  [in] IStream *data
);

Параметры

[in] data

Интерфейс IStream потока данных для записи.

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

S_OK возвращается при успешном выполнении, но в результате реализации могут быть возвращены другие коды успешного выполнения. Следующие коды ошибок обычно возвращаются при сбое операции, но не представляют единственные возможные значения ошибок:

Код возврата Описание
E_IMAPI_RECORDER_COMMAND_TIMEOUT
Устройству не удалось принять команду в течение периода ожидания. Это может быть вызвано тем, что устройство перешло в несогласованное состояние, или может потребоваться увеличить время ожидания для команды.

Значение: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
Устройство сообщило о непредвиденных или недопустимых данных для команды.

Значение: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
Носитель вставляется вверх ногами.

Значение: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
Диск сообщил, что он находится в процессе подготовки. Повторите запрос позже.

Значение: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
На устройстве нет носителя.

Значение: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
В настоящее время форматируется носитель. Дождитесь завершения форматирования, прежде чем пытаться использовать носитель.

Значение: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
Диск сообщил, что он выполняет длительную операцию, например завершает запись. Диск может быть непригодным для использования в течение длительного периода времени.

Значение: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
Не удалось выполнить запись, так как диск не получил данные достаточно быстро, чтобы продолжить запись. Перемещение исходных данных на локальный компьютер, снижение скорости записи или включение параметра "буфер недостаточной свободы" может устранить эту проблему.

Значение: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
Носитель несовместим или имеет неизвестный физический формат.

Значение: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
Структура DVD отсутствует. Это может быть вызвано несовместимыми дисками и носителями.

Значение: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
Устройство сообщило, что запрошенная страница режима (и тип) отсутствует.

Значение: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
Диск сообщил, что сочетание параметров, предоставленных на странице режима для команды MODE SELECT, не поддерживается.

Значение: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
Диск сообщил, что носитель защищен от записи.

Значение: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
Скорость носителя несовместима с устройством. Это может быть вызвано использованием носителя с более высокой или низкой скоростью, чем диапазон скоростей, поддерживаемый устройством.

Значение: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
Указанный дескриптор недопустим.

Значение: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
Указанный сетевой ресурс или устройство больше не доступны.

Значение: 55

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

Значение: 0xC0AA0210

E_IMAPI_UNEXPECTED_RESPONSE_FROM_DEVICE
Не удалось выполнить запись, так как диск вернул сведения об ошибке, которые не удалось восстановить.

Значение: 0xC0AA0301

E_IMAPI_RECORDER_REQUIRED
Для запроса требуется выбрать текущее средство записи дисков.

Значение: 0xC0AA0003

S_IMAPI_ROTATIONADJUSTED
Требуемый тип поворота не поддерживался диском, и тип поворота был скорректирован.

Значение: 0x00AA0005

S_IMAPI_SPEEDADJUSTED
Запрошенная скорость записи не поддерживается диском, и скорость была скорректирована.

Значение: 0x00AA0004

S_IMAPI_BOTHADJUSTED
Запрошенная скорость записи и тип поворота не поддерживаются диском, и оба они были скорректированы.

Значение: 0x00AA0006

E_IMAPI_DF2DATA_RECORDER_NOT_SUPPORTED
Это устройство не поддерживает операции, необходимые для этого формата диска.

Значение: 0xC0AA0407

E_IMAPI_REQUEST_CANCELLED
Запрос отменен.

Значение: 0xC0AA0002

E_IMAPI_DF2DATA_WRITE_IN_PROGRESS
В настоящее время выполняется операция записи.

Значение: 0xC0AA0400

E_IMAPI_DF2DATA_STREAM_NOT_SUPPORTED
Недопустимый размер предоставленного объекта IStream . Размер должен быть кратным размеру сектора 2048.

Значение: 0xC0AA0403

E_IMAPI_DF2DATA_MEDIA_IS_NOT_SUPPORTED
Текущий тип мультимедиа не поддерживается.

Значение: (HRESULT)0xC0AA0406

E_INVALIDARG
Один или несколько аргументов недопустимы.

Значение: 0x80070057

E_POINTER
Недопустимый указатель.

Значение: 0x80004003

E_FAIL
Неуказанным сбоем.

Значение: 0x80004005

E_OUTOFMEMORY
Не удалось выделить необходимую память.

Значение: 0x8007000E

E_NOTIMPL
Не реализован.

Значение: 0x80004001

Комментарии

Перед вызовом этого метода необходимо вызвать следующие методы:

Кроме того, следует рассмотреть возможность вызова следующих методов, если их значения по умолчанию не подходят для вашего приложения: Этот метод является синхронным, то есть элемент управления не возвращается до тех пор, пока предоставленный IStream не будет записан на носитель. Чтобы определить ход выполнения операции записи, необходимо реализовать интерфейс DDiscFormat2DataEvents . Примеры реализации обработчика событий в скрипте см. в разделе Мониторинг хода выполнения с помощью событий.

На последовательно записанных дисках предоставленный IStream записывается как новый сеанс. На перезаписываемых дисках предоставленный IStream всегда записывается начиная с сектора 0, но объект, предоставляющий интерфейс IStream , также может предоставить интерфейс IBlockRangeList со списком секторов, которые необходимо записать. Интерфейс IBlockRangeList используется, чтобы избежать перезаписи секторов, которые не изменились в сценариях с многосессией. Если объект, предоставляющий IStream , не предоставляет IBlockRangeList, предполагается, что необходимо записать весь IStream .

Требования

   
Минимальная версия клиента Windows Vista, Windows XP с пакетом обновления 2 (SP2) [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header imapi2.h

См. также раздел

DDiscFormat2DataEvents

IDiscFormat2Data

IDiscFormat2Data::CancelWrite