Compartir a través de


Función GetTapePosition (winbase.h)

La función GetTapePosition recupera la dirección actual de la cinta, en bloques lógicos o absolutos.

Sintaxis

DWORD GetTapePosition(
  [in]  HANDLE  hDevice,
  [in]  DWORD   dwPositionType,
  [out] LPDWORD lpdwPartition,
  [out] LPDWORD lpdwOffsetLow,
  [out] LPDWORD lpdwOffsetHigh
);

Parámetros

[in] hDevice

Controle el dispositivo en el que se va a obtener la posición de la cinta. Este identificador se crea mediante CreateFile.

[in] dwPositionType

Tipo de dirección que se va a obtener. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
TAPE_ABSOLUTE_POSITION
0L
Los parámetros lpdwOffsetLow y lpdwOffsetHigh reciben la dirección de bloque específica del dispositivo. El parámetro dwPartition recibe cero.
TAPE_LOGICAL_POSITION
1 L
Los parámetros lpdwOffsetLow y lpdwOffsetHigh reciben la dirección del bloque lógico. El parámetro dwPartition recibe la partición de cinta lógica.

[out] lpdwPartition

Puntero a una variable que recibe el número de la partición de cinta 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. Cuando se recupera una dirección de bloque específica del dispositivo o si el dispositivo solo admite una partición, este parámetro recibe cero.

[out] lpdwOffsetLow

Puntero a una variable que recibe los bits de orden inferior de la posición actual de la cinta.

[out] lpdwOffsetHigh

Puntero a una variable que recibe los bits de orden superior de la posición actual de la cinta. Este parámetro puede ser NULL si no se requieren los bits de orden superior.

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.

Código de 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

Una dirección de bloque lógico es relativa a una partición. La primera dirección de bloque lógico de cada partición es cero.

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

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

SetTapePosition