Compartilhar via


Função TapeClassLogicalBlockToPhysicalBlock (minitape.h)

A rotina TapeClassLogicalBlockToPhysicalBlock converte um endereço de bloco pseudológico em um endereço de bloco físico. Essa rotina é para dispositivos SCSI-1.

Sintaxe

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

Parâmetros

[in] DensityCode

Especifica o código de densidade de mídia de fita. Essa rotina dá suporte a fitas com os seguintes códigos de densidade: QIC_24, QIC_120, QIC_150, QIC_525, QIC_1000, QIC_2GB, QIC_1350 e QIC_2100.

[in] LogicalBlockAddress

Especifica um endereço de bloco pseudológico.

[in] BlockLength

Especifica o tamanho do bloco lógico, em bytes.

[in] FromBOT

TRUE indica que o cálculo de bloco físico deve começar no início da fita e considerar o cabeçalho do dispositivo físico. FALSE indica que a fita tem duas partições, que o endereço do bloco está na partição de diretório e, portanto, nenhum cabeçalho de dispositivo físico precisa ser fatorado no cálculo.

Retornar valor

TapeClassLogicalBlockToPhysicalBlock retorna uma estrutura que contém o endereço de bloco físico:

typedef struct _TAPE_PHYS_POSITION {

ULONG SeekBlockAddress;

ULONG SpaceBlockCount;

} TAPE_PHYS_POSITION, PTAPE_PHYS_POSITION;

Comentários

Um driver de miniclasse de fita chama TapeClassLogicalBlockToPhysicalBlock para traduzir um endereço de bloco lógico de um aplicativo para um endereço de bloco físico para um dispositivo de fita. TapeClassLogicalBlockToPhysicalBlock não é necessário para drivers SCSI-2 ou posteriores porque os dispositivos que estão em conformidade com os padrões SCSI-2 ou posteriores dão suporte ao endereçamento de bloco lógico.

Para posicionar uma fita no endereço de bloco físico retornado por essa rotina, um driver de miniclasse de fita emite dois comandos SCSI: um comando LOCATE para posicionar a fita no SeekBlockAddress e, em seguida, um comando SPACE para avançar a fita SpaceBlockCount. O valor SpaceBlockCount será necessário se os blocos pseudológicos na fita forem menores que os blocos físicos; Nesse caso, o limite de bloco lógico pode não se alinhar com um limite de bloco físico.

Se um driver de miniclasse de fita chamar essa rotina com um código de densidade de fita sem suporte, TapeClassLogicalBlockToPhysicalBlock não executará nenhuma tradução. Ele retorna o endereço de bloco lógico em SeekBlockAddress e retorna zero em SpaceBlockCount.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho minitape.h (inclua Minitape.h)
Biblioteca Tape.lib

Confira também

TapeClassPhysicalBlockToLogicalBlock