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


Функция WriteTapemark (winbase.h)

Функция WriteTapemark записывает указанное количество меток, меток setmark, коротких или длинных меток на ленточное устройство. Эти ленточные знаки разделяют ленточный раздел на более мелкие участки.

Синтаксис

DWORD WriteTapemark(
  [in] HANDLE hDevice,
  [in] DWORD  dwTapemarkType,
  [in] DWORD  dwTapemarkCount,
  [in] BOOL   bImmediate
);

Параметры

[in] hDevice

Дескриптор устройства, на котором нужно записать ленточные знаки. Этот дескриптор создается с помощью функции CreateFile .

[in] dwTapemarkType

Тип ленточных меток для записи. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
TAPE_FILEMARKS
1L
Записывает количество меток файлов, указанное параметром dwTapemarkCount .
TAPE_LONG_FILEMARKS
3l
Записывает число длинных меток, указанное dwTapemarkCount.
TAPE_SETMARKS
0L
Записывает количество меток, заданных dwTapemarkCount.
TAPE_SHORT_FILEMARKS
2L
Записывает количество коротких меток, указанных dwTapemarkCount.

[in] dwTapemarkCount

Число записываемых ленточных знаков.

[in] bImmediate

Если этот параметр имеет значение TRUE, функция возвращает немедленно; Если значение равно FALSE, функция не возвращается, пока операция не будет завершена.

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

Если функция выполняется успешно, возвращаемое значение будет NO_ERROR.

Если функция завершается сбоем, она может вернуть один из следующих кодов ошибок.

Ошибка Описание
ERROR_BEGINNING_OF_MEDIA
1102L
Попытка получить доступ к данным до начала среднего маркера завершилась сбоем.
ERROR_BUS_RESET
1111L
В шине обнаружено условие сброса.
ERROR_DEVICE_NOT_PARTITIONED
1107L
Не удалось найти сведения о секции при загрузке ленты.
ERROR_END_OF_MEDIA
1100L
Маркер конца ленты был достигнут во время операции.
ERROR_FILEMARK_DETECTED
1101L
Метка файла была достигнута во время операции.
ERROR_INVALID_BLOCK_LENGTH
1106L
Неправильный размер блока на новой ленте в многотомном разделе.
ERROR_MEDIA_CHANGED
1110L
Лента, которая находилась в диске, была заменена или удалена.
ERROR_NO_DATA_DETECTED
1104L
Маркер конца данных был достигнут во время операции.
ERROR_NO_MEDIA_IN_DRIVE
1112L
На диске нет носителя.
ERROR_NOT_SUPPORTED
50L
Драйвер ленты не поддерживает запрошенную функцию.
ERROR_PARTITION_FAILURE
1105L
Не удалось секционировать ленту.
ERROR_SETMARK_DETECTED
1103L
Метка была достигнута во время операции.
ERROR_UNABLE_TO_LOCK_MEDIA
1108L
Не удалось заблокировать механизм извлечения.
ERROR_UNABLE_TO_UNLOAD_MEDIA
1109L
Попытка выгрузить ленту завершилась сбоем.
ERROR_WRITE_PROTECT
19L
Носитель защищен от записи.

Комментарии

Filemarks, setmarks, short filemarks и long filemarks — это специальные записанные элементы, обозначающие линейную организацию ленты. Ни одна из этих меток не содержит пользовательские данные. Метки файлов являются наиболее общими метками; Метки setmark предоставляют иерархию, недоступная с метками файлов.

Короткая метка файла содержит короткий разрыв стирания, который нельзя перезаписать, если только операция записи не выполняется с начала раздела или из более ранней длинной метки файла.

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CreateFile