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


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

Функция GetTapeParameters извлекает сведения, описывающие ленту или ленточный накопитель.

Синтаксис

DWORD GetTapeParameters(
  [in]  HANDLE  hDevice,
  [in]  DWORD   dwOperation,
  [out] LPDWORD lpdwSize,
  [out] LPVOID  lpTapeInformation
);

Параметры

[in] hDevice

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

[in] dwOperation

Тип запрашиваемой информации. Этот параметр должен иметь одно из следующих значений.

Значение Значение
GET_TAPE_DRIVE_INFORMATION
1
Извлекает сведения о ленточных устройствах.
GET_TAPE_MEDIA_INFORMATION
0
Извлекает сведения о ленте на ленточное устройство.

[out] lpdwSize

Указатель на переменную, которая получает размер (в байтах) буфера, заданного параметром lpTapeInformation . Если буфер слишком мал, этот параметр получает требуемый размер.

[out] lpTapeInformation

Указатель на структуру, содержащую запрошенные сведения. Если параметр dwOperation имеет значение GET_TAPE_MEDIA_INFORMATION, lpTapeInformation указывает на TAPE_GET_MEDIA_PARAMETERS структуру.

Если dwOperationGET_TAPE_DRIVE_INFORMATION, lpTapeInformation указывает на TAPE_GET_DRIVE_PARAMETERS структуру.

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

Если функция выполнена успешно, возвращаемое значение будет 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, вызываемой с параметром dwOperation , равным значению GET_TAPE_DRIVE_INFORMATION , будут указывать ограничения системы, а не ограничения дисков. Однако именно ленточный накопитель и носитель, присутствующие на диске, определяют истинные ограничения размера блока. Таким образом, приложение может не задать все размеры блоков, указанные в диапазоне, полученном путем указания GET_TAPE_DRIVE_INFORMATION в dwOperation.

Требования

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

См. также

CreateFile

SetTapeParameters

TAPE_GET_DRIVE_PARAMETERS

TAPE_GET_MEDIA_PARAMETERS