Funzione TapeClassLogicalBlockToPhysicalBlock (minitape.h)
La routine TapeClassLogicalBlockToPhysicalBlock converte un indirizzo di blocco pseudologico in un indirizzo di blocco fisico. Questa routine è per i dispositivi SCSI-1.
Sintassi
TAPE_PHYS_POSITION TapeClassLogicalBlockToPhysicalBlock(
[in] UCHAR DensityCode,
[in] ULONG LogicalBlockAddress,
[in] ULONG BlockLength,
[in] BOOLEAN FromBOT
);
Parametri
[in] DensityCode
Specifica il codice di densità dei supporti nastro. Questa routine supporta i nastri con i codici di densità seguenti: QIC_24, QIC_120, QIC_150, QIC_525, QIC_1000, QIC_2GB, QIC_1350 e QIC_2100.
[in] LogicalBlockAddress
Specifica un indirizzo di blocco pseudologico.
[in] BlockLength
Specifica le dimensioni del blocco logico, in byte.
[in] FromBOT
TRUE indica che il calcolo del blocco fisico deve iniziare all'inizio del nastro e tenere conto dell'intestazione del dispositivo fisico. FALSE indica che il nastro dispone di due partizioni, che l'indirizzo del blocco si trova nella partizione di directory e pertanto non è necessario inserire nel calcolo alcuna intestazione del dispositivo fisico.
Valore restituito
TapeClassLogicalBlockToPhysicalBlock restituisce una struttura contenente l'indirizzo del blocco fisico:
struct typedef _TAPE_PHYS_POSITION {
ULONG SeekBlockAddress;
ULONG SpaceBlockCount;
} TAPE_PHYS_POSITION, PTAPE_PHYS_POSITION;
Osservazioni
Un driver di miniclasse su nastro chiama TapeClassLogicalBlockToPhysicalBlock per convertire un indirizzo di blocco logico da un'applicazione a un indirizzo di blocco fisico per un dispositivo nastro. l' TapeClassLogicalBlockToPhysicalBlock non è necessario per i driver SCSI-2 o versioni successive perché i dispositivi conformi agli standard SCSI-2 o versioni successive supportano l'indirizzamento a blocchi logici.
Per posizionare un nastro sull'indirizzo del blocco fisico restituito da questa routine, un driver miniclasse su nastro emette due comandi SCSI: un comando LOCATE per posizionare il nastro sul SeekBlockAddresse quindi un comando SPACE per far avanzare il nastro SpaceBlockCount. Il valore SpaceBlockCount è necessario se i blocchi pseudologici sul nastro sono più piccoli dei blocchi fisici; in tal caso, il limite del blocco logico potrebbe non essere allineato con un limite di blocco fisico.
Se un driver di miniclasse nastro chiama questa routine con un codice di densità di nastro non supportato, TapeClassLogicalBlockToPhysicalBlock non esegue alcuna traduzione. Restituisce l'indirizzo del blocco logico in SeekBlockAddress e restituisce zero in SpaceBlockCount.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | minitape.h (include Minitape.h) |
libreria | Tape.lib |