Função SetTapePosition (winbase.h)

A função SetTapePosition define a posição da fita no dispositivo especificado.

Sintaxe

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

Parâmetros

[in] hDevice

Manipule para o dispositivo no qual definir a posição da fita. Esse identificador é criado usando a função CreateFile .

[in] dwPositionMethod

Tipo de posicionamento a ser executado. Esse parâmetro deve usar um dos valores a seguir.

Valor Significado
TAPE_ABSOLUTE_BLOCK
1L
Move a fita para o endereço de bloco específico do dispositivo especificado pelos parâmetros dwOffsetLow e dwOffsetHigh . O parâmetro dwPartition é ignorado.
TAPE_LOGICAL_BLOCK
2L
Move a fita para o endereço de bloco especificado por dwOffsetLow e dwOffsetHigh na partição especificada por dwPartition.
TAPE_REWIND
0L
Move a fita para o início da partição atual. Os parâmetros dwPartition, dwOffsetLow e dwOffsetHigh são ignorados.
TAPE_SPACE_END_OF_DATA
4L
Move a fita para o final dos dados na partição especificada por dwPartition.
TAPE_SPACE_FILEMARKS
6L
Move a fita para frente (ou para trás) o número de marcas de arquivo especificadas por dwOffsetLow e dwOffsetHigh na partição atual. O parâmetro dwPartition é ignorado.
TAPE_SPACE_RELATIVE_BLOCKS
5L
Move a fita para frente (ou para trás) o número de blocos especificados por dwOffsetLow e dwOffsetHigh na partição atual. O parâmetro dwPartition é ignorado.
TAPE_SPACE_SEQUENTIAL_FMKS
7L
Move a fita para frente (ou para trás) para a primeira ocorrência de n marcas de arquivo na partição atual, em que n é o número especificado por dwOffsetLow e dwOffsetHigh. O parâmetro dwPartition é ignorado.
TAPE_SPACE_SEQUENTIAL_SMKS
9L
Move a fita para frente (ou para trás) para a primeira ocorrência de n setmarks na partição atual, em que n é o número especificado por dwOffsetLow e dwOffsetHigh. O parâmetro dwPartition é ignorado.
TAPE_SPACE_SETMARKS
8L
Move a fita para frente (ou para trás) o número de setmarks especificado por dwOffsetLow e dwOffsetHigh na partição atual. O parâmetro dwPartition é ignorado.

[in] dwPartition

Partição para posição dentro. Se dwPartition for zero, a partição atual será usada. As partições são numeradas logicamente de 1 a n, em que 1 é a primeira partição na fita e n é a última.

[in] dwOffsetLow

Bits de baixa ordem do endereço de bloco ou contagem para a operação de posição especificada pelo parâmetro dwPositionMethod .

[in] dwOffsetHigh

Bits de alta ordem do endereço de bloco ou contagem para a operação de posição especificada pelo parâmetro dwPositionMethod . Se os bits de alta ordem não forem necessários, esse parâmetro deverá ser zero.

[in] bImmediate

Indica se a operação de movimentação será retornada assim que a operação de movimentação for iniciada. Se esse parâmetro for TRUE, a função retornará imediatamente; se FALSE, a função não retornará até que a operação de movimentação seja concluída.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NO_ERROR.

Se a função falhar, ela poderá retornar um dos seguintes códigos de erro.

Erro Descrição
ERROR_BEGINNING_OF_MEDIA
1102L
Uma tentativa de acessar dados antes do início do marcador médio falhar.
ERROR_BUS_RESET
1111L
Uma condição de redefinição foi detectada no barramento.
ERROR_DEVICE_NOT_PARTITIONED
1107L
Não foi possível encontrar as informações de partição quando uma fita estava sendo carregada.
ERROR_END_OF_MEDIA
1100L
O marcador de fim da fita foi atingido durante uma operação.
ERROR_FILEMARK_DETECTED
1101L
Uma marca de arquivo foi atingida durante uma operação.
ERROR_INVALID_BLOCK_LENGTH
1106L
O tamanho do bloco está incorreto em uma nova fita em uma partição multivolume.
ERROR_MEDIA_CHANGED
1110L
A fita que estava na unidade foi substituída ou removida.
ERROR_NO_DATA_DETECTED
1104L
O marcador de fim de dados foi atingido durante uma operação.
ERROR_NO_MEDIA_IN_DRIVE
1112L
Não há mídia na unidade.
ERROR_NOT_SUPPORTED
50L
O driver de fita não dá suporte a uma função solicitada.
ERROR_PARTITION_FAILURE
1105L
A fita não pôde ser particionada.
ERROR_SETMARK_DETECTED
1103L
Uma marca de definição foi atingida durante uma operação.
ERROR_UNABLE_TO_LOCK_MEDIA
1108L
Falha ao tentar bloquear o mecanismo de ejeção.
ERROR_UNABLE_TO_UNLOAD_MEDIA
1109L
Falha ao tentar descarregar a fita.
ERROR_WRITE_PROTECT
19L
A mídia está protegida contra gravação.

Comentários

Se o deslocamento especificado por dwOffsetLow e dwOffsetHigh especificar o número de blocos, marcas de arquivo ou setmarks a serem movidos, um deslocamento positivo moverá a fita para frente até o final do último bloco, marca de arquivo ou marca de definição. Um deslocamento negativo move a fita para trás até o início do último bloco, marca de arquivo ou marca de definição. Se o deslocamento for zero, a fita não se moverá.

Para obter informações sobre as status, funcionalidades e capacidades de unidades de fita e mídia, chame a função GetTapeParameters.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winbase.h (incluir Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

CreateFile

GetTapeParameters

GetTapePosition