Función TapeClassLogicalBlockToPhysicalBlock (minitape.h)

La rutina TapeClassLogicalBlockToPhysicalBlock traduce una dirección de bloque pseudológica a una dirección de bloque físico. Esta rutina es para dispositivos SCSI-1.

Sintaxis

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

Parámetros

[in] DensityCode

Especifica el código de densidad de medios de cinta. Esta rutina admite cintas con los siguientes códigos de densidad: QIC_24, QIC_120, QIC_150, QIC_525, QIC_1000, QIC_2GB, QIC_1350 y QIC_2100.

[in] LogicalBlockAddress

Especifica una dirección de bloque pseudológica.

[in] BlockLength

Especifica el tamaño del bloque lógico, en bytes.

[in] FromBOT

TRUE indica que el cálculo del bloque físico debe comenzar al principio de la cinta y tener en cuenta el encabezado del dispositivo físico. FALSE indica que la cinta tiene dos particiones, que la dirección de bloque está en la partición de directorio y, por lo tanto, no es necesario tener en cuenta ningún encabezado de dispositivo físico en el cálculo.

Valor devuelto

TapeClassLogicalBlockToPhysicalBlock devuelve una estructura que contiene la dirección de bloque físico:

struct typedef _TAPE_PHYS_POSITION {

ULONG SeekBlockAddress;

ULONG SpaceBlockCount;

} TAPE_PHYS_POSITION, PTAPE_PHYS_POSITION;

Comentarios

Un controlador de miniclase de cinta llama a TapeClassLogicalBlockToPhysicalBlock para traducir una dirección de bloque lógico de una aplicación a una dirección de bloque físico para un dispositivo de cinta. TapeClassLogicalBlockToPhysicalBlock no es necesario para controladores SCSI-2 o posteriores porque los dispositivos que cumplen con los estándares SCSI-2 o posteriores admiten el direccionamiento de bloques lógicos.

Para colocar una cinta en la dirección de bloque físico devuelta por esta rutina, un controlador de miniclase de cinta emite dos comandos SCSI: un comando LOCATE para colocar la cinta en SeekBlockAddress y, a continuación, un comando SPACE para avanzar en la cinta SpaceBlockCount. El valor spaceBlockCount es necesario si los bloques pseudológicos de la cinta son más pequeños que los bloques físicos; en ese caso, es posible que el límite del bloque lógico no se alinee con un límite de bloque físico.

Si un controlador de miniclase de cinta llama a esta rutina con un código de densidad de cinta no compatible, TapeClassLogicalBlockToPhysicalBlock no realiza ninguna traducción. Devuelve la dirección de bloque lógico en SeekBlockAddress y devuelve cero en SpaceBlockCount.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado minitape.h (incluya Minitape.h)
Library Tape.lib

Consulte también

TapeClassPhysicalBlockToLogicalBlock