Condividi tramite


Funzione GetTapePosition (winbase.h)

La funzione GetTapePosition recupera l'indirizzo corrente del nastro, in blocchi logici o assoluti.

Sintassi

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

Parametri

[in] hDevice

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

[in] dwPositionType

Tipo di indirizzo da ottenere. Questo parametro può avere uno dei valori seguenti.

Valore Significato
TAPE_ABSOLUTE_POSITION
0L
I parametri lpdwOffsetLow e lpdwOffsetHigh ricevono l'indirizzo di blocco specifico del dispositivo. Il parametro dwPartition riceve zero.
TAPE_LOGICAL_POSITION
1L
I parametri lpdwOffsetLow e lpdwOffsetHigh ricevono l'indirizzo del blocco logico. Il parametro dwPartition riceve la partizione del nastro logico.

[out] lpdwPartition

Puntatore a una variabile che riceve il numero della partizione nastro corrente. Le partizioni vengono numerate logicamente da 1 a n, dove 1 è la prima partizione sul nastro e n è l'ultima. Quando viene recuperato un indirizzo di blocco specifico del dispositivo o se il dispositivo supporta una sola partizione, questo parametro riceve zero.

[out] lpdwOffsetLow

Puntatore a una variabile che riceve i bit a basso ordine della posizione corrente del nastro.

[out] lpdwOffsetHigh

Puntatore a una variabile che riceve i bit di ordine elevato della posizione del nastro corrente. Questo parametro può essere NULL se i bit ad ordine elevato non sono necessari.

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.

Codice di 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

Un indirizzo di blocco logico è relativo a una partizione. Il primo indirizzo di blocco logico in ogni partizione è zero.

Chiamare la funzione GetTapeParameters per ottenere informazioni sullo stato, sulle funzionalità e sulle capacità delle unità nastro e dei supporti.

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

SetTapePosition