Condividi tramite


Funzione SetTapePosition (winbase.h)

La funzione SetTapePosition imposta la posizione del nastro sul dispositivo specificato.

Sintassi

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

Parametri

[in] hDevice

Gestire il dispositivo su cui impostare la posizione del nastro. Questo handle viene creato usando la funzione CreateFile .

[in] dwPositionMethod

Tipo di posizionamento da eseguire. Questo parametro deve essere uno dei valori seguenti.

Valore Significato
TAPE_ABSOLUTE_BLOCK
1L
Sposta il nastro nell'indirizzo del blocco specifico del dispositivo specificato dai parametri dwOffsetLow e dwOffsetHigh . Il parametro dwPartition viene ignorato.
TAPE_LOGICAL_BLOCK
2L
Sposta il nastro nell'indirizzo a blocchi specificato da dwOffsetLow e dwOffsetHigh nella partizione specificata da dwPartition.
TAPE_REWIND
0L
Sposta il nastro all'inizio della partizione corrente. I parametri dwPartition, dwOffsetLow e dwOffsetHigh vengono ignorati.
TAPE_SPACE_END_OF_DATA
4L
Sposta il nastro alla fine dei dati nella partizione specificata da dwPartition.
TAPE_SPACE_FILEMARKS
6L
Sposta il nastro avanti (o indietro) il numero di contrassegni di file specificati da dwOffsetLow e dwOffsetHigh nella partizione corrente. Il parametro dwPartition viene ignorato.
TAPE_SPACE_RELATIVE_BLOCKS
5L
Sposta il nastro avanti (o indietro) il numero di blocchi specificati da dwOffsetLow e dwOffsetHigh nella partizione corrente. Il parametro dwPartition viene ignorato.
TAPE_SPACE_SEQUENTIAL_FMKS
7L
Sposta il nastro avanti (o indietro) alla prima occorrenza di n contrassegni nella partizione corrente, dove n è il numero specificato da dwOffsetLow e dwOffsetHigh. Il parametro dwPartition viene ignorato.
TAPE_SPACE_SEQUENTIAL_SMKS
9L
Sposta il nastro avanti (o indietro) alla prima occorrenza di n setmarks nella partizione corrente, dove n è il numero specificato da dwOffsetLow e dwOffsetHigh. Il parametro dwPartition viene ignorato.
TAPE_SPACE_SETMARKS
8L
Sposta il nastro avanti (o indietro) il numero di setmark specificati da dwOffsetLow e dwOffsetHigh nella partizione corrente. Il parametro dwPartition viene ignorato.

[in] dwPartition

Partizionamento da posizionare all'interno. Se dwPartition è zero, viene usata la partizione corrente. Le partizioni vengono numerate logicamente da 1 a n, dove 1 è la prima partizione sul nastro e n è l'ultima.

[in] dwOffsetLow

Bit di ordine basso dell'indirizzo del blocco o del conteggio per l'operazione di posizione specificata dal parametro dwPositionMethod .

[in] dwOffsetHigh

Bit di ordine elevato dell'indirizzo del blocco o del conteggio per l'operazione di posizione specificata dal parametro dwPositionMethod . Se i bit di ordine elevato non sono necessari, questo parametro deve essere zero.

[in] bImmediate

Indica se restituire non appena inizia l'operazione di spostamento. Se questo parametro è TRUE, la funzione restituisce immediatamente; se FALSE, la funzione non restituisce fino al completamento dell'operazione di spostamento.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è NO_ERROR.

Se la funzione ha esito negativo, può restituire uno dei codici di errore seguenti.

Errore Descrizione
ERROR_BEGINNING_OF_MEDIA
1102L
Tentativo di accesso ai dati prima dell'inizio del marcatore medio non riuscito.
ERROR_BUS_RESET
1111L
È stata rilevata una condizione di reimpostazione sul bus.
ERROR_DEVICE_NOT_PARTITIONED
1107L
Impossibile trovare le informazioni sulla partizione quando è stato caricato un nastro.
ERROR_END_OF_MEDIA
1100L
Il marcatore finale del nastro è stato raggiunto durante un'operazione.
ERROR_FILEMARK_DETECTED
1101L
Un segno di file è stato raggiunto durante un'operazione.
ERROR_INVALID_BLOCK_LENGTH
1106L
Le dimensioni del blocco non sono corrette su un nuovo nastro in una partizione multivolume.
ERROR_MEDIA_CHANGED
1110L
Il nastro che era nell'unità è stato sostituito o rimosso.
ERROR_NO_DATA_DETECTED
1104L
Il marcatore end-of-data è stato raggiunto durante un'operazione.
ERROR_NO_MEDIA_IN_DRIVE
1112L
Non sono presenti supporti nell'unità.
ERROR_NOT_SUPPORTED
50L
Il driver di nastro non supporta una funzione richiesta.
ERROR_PARTITION_FAILURE
1105L
Impossibile partizionare il nastro.
ERROR_SETMARK_DETECTED
1103L
Un segno di impostazione è stato raggiunto durante un'operazione.
ERROR_UNABLE_TO_LOCK_MEDIA
1108L
Tentativo di bloccare il meccanismo di espulsione non riuscito.
ERROR_UNABLE_TO_UNLOAD_MEDIA
1109L
Tentativo di scaricare il nastro non riuscito.
ERROR_WRITE_PROTECT
19L
Il supporto è protetto da scrittura.

Commenti

Se l'offset specificato da dwOffsetLow e dwOffsetHigh specifica il numero di blocchi, segni di file o segni di impostazione da spostare, un offset positivo sposta il nastro verso la fine dell'ultimo blocco, il segno di file o il segno di set. Un offset negativo sposta il nastro indietro all'inizio dell'ultimo blocco, del segno di file o del segno di set. Se l'offset è zero, il nastro non viene spostato.

Per ottenere informazioni sullo stato, le funzionalità e le capacità delle unità nastro e dei supporti, chiamare la funzione GetTapeParameters .

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

CreateFile

GetTapeParameters

GetTapePosition