Freigeben über


TapeClassLogicalBlockToPhysicalBlock-Funktion (minitape.h)

Die TapeClassLogicalBlockToPhysicalBlock Routine übersetzt eine pseudologische Blockadresse in eine physische Blockadresse. Diese Routine gilt für SCSI-1-Geräte.

Syntax

TAPE_PHYS_POSITION TapeClassLogicalBlockToPhysicalBlock(
  [in] UCHAR   DensityCode,
  [in] ULONG   LogicalBlockAddress,
  [in] ULONG   BlockLength,
  [in] BOOLEAN FromBOT
);

Parameter

[in] DensityCode

Gibt den Bandmediendichtecode an. Diese Routine unterstützt Bande mit den folgenden Dichtecodes: QIC_24, QIC_120, QIC_150, QIC_525, QIC_1000, QIC_2GB, QIC_1350 und QIC_2100.

[in] LogicalBlockAddress

Gibt eine pseudologische Blockadresse an.

[in] BlockLength

Gibt die logische Blockgröße in Byte an.

[in] FromBOT

TRUE gibt an, dass die Berechnung des physischen Blocks am Anfang des Bandes beginnen und den physischen Gerätekopf berücksichtigen soll. FALSE gibt an, dass das Band über zwei Partitionen verfügt, dass sich die Blockadresse auf der Verzeichnispartition befindet und daher kein physischer Geräteheader in die Berechnung berücksichtigt werden muss.

Rückgabewert

TapeClassLogicalBlockToPhysicalBlock gibt eine Struktur zurück, die die physische Blockadresse enthält:

typedef struct _TAPE_PHYS_POSITION {

ULONG SeekBlockAddress;

ULONG SpaceBlockCount;

} TAPE_PHYS_POSITION, PTAPE_PHYS_POSITION;

Bemerkungen

Ein Tape Miniclass-Treiber ruft TapeClassLogicalBlockToPhysicalBlock auf, um eine logische Blockadresse aus einer Anwendung in eine physische Blockadresse für ein Bandgerät zu übersetzen. TapeClassLogicalBlockToPhysicalBlock ist für SCSI-2- oder höher-Treiber nicht erforderlich, da Geräte, die SCSI-2- oder höher-Standards erfüllen, logische Blockadressierung unterstützen.

Um ein Band an die physische Blockadresse zu positionieren, die von dieser Routine zurückgegeben wird, gibt ein Band-Miniklassentreiber zwei SCSI-Befehle aus: einen LOCATE-Befehl, um das Band an die SeekBlockAddresszu positionieren, und dann ein SPACE-Befehl, um das Band SpaceBlockCount. Der SpaceBlockCount Wert ist erforderlich, wenn die pseudologischen Blöcke auf dem Band kleiner als die physischen Blöcke sind; in diesem Fall wird die logische Blockgrenze möglicherweise nicht an einer physischen Blockgrenze ausgerichtet.

Wenn ein Tape-Miniklassentreiber diese Routine mit einem nicht unterstützten Banddichtecode aufruft, führt TapeClassLogicalBlockToPhysicalBlock keine Übersetzung durch. Sie gibt die logische Blockadresse in SeekBlockAddress- zurück und gibt null in SpaceBlockCount-zurück.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- minitape.h (include Minitape.h)
Library Tape.lib

Siehe auch

TapeClassPhysicalBlockToLogicalBlock