Condividi tramite


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

Vedere anche

TapeClassPhysicalBlockToLogicalBlock