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

Функция PrepareTape подготавливает ленту к доступу или удалению.

Синтаксис

DWORD PrepareTape(
  [in] HANDLE hDevice,
  [in] DWORD  dwOperation,
  [in] BOOL   bImmediate
);

Параметры

[in] hDevice

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

[in] dwOperation

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

Значение Значение
TAPE_FORMAT
5l
Выполняет низкоуровневый формат ленты. В настоящее время эту функцию поддерживает только устройство QIC117.
TAPE_LOAD
0L
Загружает ленту и перемещает ленту в начало.
TAPE_LOCK
3l
Блокирует механизм выброса ленты, чтобы лента не выбрасывалась случайно.
TAPE_TENSION
2L
Корректирует напряжение, перемещая ленту в конец ленты и обратно в начало. Этот параметр поддерживается не всеми устройствами. Это значение игнорируется, если оно не поддерживается.
TAPE_UNLOAD
1L
Перемещает ленту в начало для удаления с устройства. После успешной операции выгрузки устройство возвращает ошибки приложениям, которые пытаются получить доступ к ленте, пока лента не будет загружена снова.
TAPE_UNLOCK
4L
Разблокирует механизм выброса ленты.

[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
Носитель защищен от записи.

Комментарии

Некоторые ленточные устройства не поддерживают определенные операции с лентой. Ознакомьтесь с документацией по ленточным устройствам и используйте функцию GetTapeParameters , чтобы определить возможности ленточного устройства.

Требования

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

См. также

CreateFile

GetTapeParameters