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 |