Función SetTapePosition (winbase.h)

La función SetTapePosition establece la posición de cinta en el dispositivo especificado.

Sintaxis

DWORD SetTapePosition(
  [in] HANDLE hDevice,
  [in] DWORD  dwPositionMethod,
  [in] DWORD  dwPartition,
  [in] DWORD  dwOffsetLow,
  [in] DWORD  dwOffsetHigh,
  [in] BOOL   bImmediate
);

Parámetros

[in] hDevice

Controla el dispositivo en el que se va a establecer la posición de la cinta. Este identificador se crea mediante la función CreateFile .

[in] dwPositionMethod

Tipo de posicionamiento que se va a realizar. Este parámetro puede ser uno de los siguientes valores.

Value Significado
TAPE_ABSOLUTE_BLOCK
1 L
Mueve la cinta a la dirección de bloque específica del dispositivo especificada por los parámetros dwOffsetLow y dwOffsetHigh . Se omite el parámetro dwPartition .
TAPE_LOGICAL_BLOCK
T2l
Mueve la cinta a la dirección de bloque especificada por dwOffsetLow y dwOffsetHigh en la partición especificada por dwPartition.
TAPE_REWIND
0L
Mueve la cinta al principio de la partición actual. Se omiten los parámetros dwPartition, dwOffsetLow y dwOffsetHigh .
TAPE_SPACE_END_OF_DATA
4L
Mueve la cinta al final de los datos de la partición especificada por dwPartition.
TAPE_SPACE_FILEMARKS
6L
Mueve la cinta hacia delante (o hacia atrás) el número de marcas de archivo especificadas por dwOffsetLow y dwOffsetHigh en la partición actual. Se omite el parámetro dwPartition .
TAPE_SPACE_RELATIVE_BLOCKS
5L
Mueve la cinta hacia delante (o hacia atrás) el número de bloques especificados por dwOffsetLow y dwOffsetHigh en la partición actual. Se omite el parámetro dwPartition .
TAPE_SPACE_SEQUENTIAL_FMKS
7L
Mueve la cinta hacia delante (o hacia atrás) a la primera aparición de n marcas de archivo en la partición actual, donde n es el número especificado por dwOffsetLow y dwOffsetHigh. Se omite el parámetro dwPartition .
TAPE_SPACE_SEQUENTIAL_SMKS
9L
Mueve la cinta hacia delante (o hacia atrás) a la primera aparición de n setmarks en la partición actual, donde n es el número especificado por dwOffsetLow y dwOffsetHigh. Se omite el parámetro dwPartition .
TAPE_SPACE_SETMARKS
8L
Mueve la cinta hacia delante (o hacia atrás) el número de marcas de conjunto especificadas por dwOffsetLow y dwOffsetHigh en la partición actual. Se omite el parámetro dwPartition .

[in] dwPartition

Partición en la que se va a colocar. Si dwPartition es cero, se usa la partición actual. Las particiones se numeran lógicamente de 1 a n, donde 1 es la primera partición de la cinta y n es la última.

[in] dwOffsetLow

Bits de orden bajo de la dirección de bloque o recuento de la operación de posición especificada por el parámetro dwPositionMethod .

[in] dwOffsetHigh

Bits de orden superior de la dirección de bloque o recuento de la operación de posición especificada por el parámetro dwPositionMethod . Si no se requieren los bits de orden superior, este parámetro debe ser cero.

[in] bImmediate

Indica si se va a devolver en cuanto comienza la operación de movimiento. Si este parámetro es TRUE, la función devuelve inmediatamente; si es FALSE, la función no devuelve hasta que se haya completado la operación de movimiento.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es NO_ERROR.

Si se produce un error en la función, puede devolver uno de los siguientes códigos de error.

Error Descripción
ERROR_BEGINNING_OF_MEDIA
1102L
Error al intentar acceder a los datos antes del marcador inicial de medio.
ERROR_BUS_RESET
1111L
Se detectó una condición de restablecimiento en el bus.
ERROR_DEVICE_NOT_PARTITIONED
1107L
No se encontró la información de partición cuando se cargaba una cinta.
ERROR_END_OF_MEDIA
1100L
El marcador de fin de cinta se alcanzó durante una operación.
ERROR_FILEMARK_DETECTED
1101L
Se alcanzó una marca de archivo durante una operación.
ERROR_INVALID_BLOCK_LENGTH
1106L
El tamaño del bloque es incorrecto en una nueva cinta en una partición multivolumen.
ERROR_MEDIA_CHANGED
1110L
La cinta que estaba en la unidad se ha reemplazado o quitado.
ERROR_NO_DATA_DETECTED
1104L
Se alcanzó el marcador de fin de datos durante una operación.
ERROR_NO_MEDIA_IN_DRIVE
1112L
No hay ningún medio en la unidad.
ERROR_NOT_SUPPORTED
50L
El controlador de cinta no admite una función solicitada.
ERROR_PARTITION_FAILURE
1105L
No se pudo crear particiones en la cinta.
ERROR_SETMARK_DETECTED
1103L
Se alcanzó una marca de establecimiento durante una operación.
ERROR_UNABLE_TO_LOCK_MEDIA
1108L
Error al intentar bloquear el mecanismo de expulsión.
ERROR_UNABLE_TO_UNLOAD_MEDIA
1109L
Error al intentar descargar la cinta.
ERROR_WRITE_PROTECT
19L
El medio está protegido contra escritura.

Comentarios

Si el desplazamiento especificado por dwOffsetLow y dwOffsetHigh especifica el número de bloques, marcas de archivo o marcas de establecimiento que se van a mover, un desplazamiento positivo mueve la cinta hacia delante al final del último bloque, marca de archivo o marca de establecimiento. Un desplazamiento negativo mueve la cinta hacia atrás al principio del último bloque, marca de archivo o marca de establecimiento. Si el desplazamiento es cero, la cinta no se mueve.

Para obtener información sobre el estado, las funcionalidades y las capacidades de las unidades de cinta y los medios, llame a la función GetTapeParameters .

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winbase.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

CreateFile

GetTapeParameters

GetTapePosition