다음을 통해 공유


TapeClassLogicalBlockToPhysicalBlock 함수(minitape.h)

TapeClassLogicalBlockToPhysicalBlock 루틴은 pseudological 블록 주소를 실제 블록 주소로 변환합니다. 이 루틴은 SCSI-1 디바이스용입니다.

구문

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

매개 변수

[in] DensityCode

테이프 미디어 밀도 코드를 지정합니다. 이 루틴은 QIC_24, QIC_120, QIC_150, QIC_525, QIC_1000, QIC_2GB, QIC_1350 및 QIC_2100 포함된 테이프를 지원합니다.

[in] LogicalBlockAddress

pseudological 블록 주소를 지정합니다.

[in] BlockLength

논리 블록 크기(바이트)를 지정합니다.

[in] FromBOT

TRUE 는 물리적 블록 계산이 테이프의 시작 부분에서 시작되고 물리적 디바이스 헤더를 고려해야 했음을 나타냅니다. FALSE 는 테이프에 두 개의 파티션이 있음을 나타내며, 블록 주소가 디렉터리 파티션에 있으므로 실제 디바이스 헤더를 계산에 포함할 필요가 없습니다.

반환 값

TapeClassLogicalBlockToPhysicalBlock 은 물리적 블록 주소를 포함하는 구조를 반환합니다.

typedef 구조체 _TAPE_PHYS_POSITION {

ULONG SeekBlockAddress;

ULONG SpaceBlockCount;

} TAPE_PHYS_POSITION, PTAPE_PHYS_POSITION;

설명

테이프 미니클래스 드라이버는 TapeClassLogicalBlockToPhysicalBlock 을 호출하여 논리 블록 주소를 애플리케이션에서 테이프 디바이스의 실제 블록 주소로 변환합니다. SCSI-2 이상 표준을 준수하는 디바이스는 논리적 블록 주소 지정을 지원하기 때문에 SCSI-2 이상 드라이버에는 TapeClassLogicalBlockToPhysicalBlock이 필요하지 않습니다.

이 루틴에서 반환된 물리적 블록 주소에 테이프를 배치하기 위해 테이프 미니클래스 드라이버는 두 개의 SCSI 명령을 실행합니다. 즉, SEEKBlockAddress에 테이프를 배치하는 LOCATE 명령과 SPACE 명령을 실행하여 테이프 SpaceBlockCount를 진행합니다. 테이프의 pseudological 블록이 실제 블록보다 작은 경우 SpaceBlockCount 값이 필요합니다. 이 경우 논리 블록 경계가 실제 블록 경계와 일치하지 않을 수 있습니다.

테이프 미니클래스 드라이버가 지원되지 않는 테이프 밀도 코드를 사용하여 이 루틴을 호출하는 경우 TapeClassLogicalBlockToPhysicalBlock 은 변환을 수행하지 않습니다. SeekBlockAddress에서 논리 블록 주소를 반환하고 SpaceBlockCount에서 0을 반환합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 minitape.h(Minitape.h 포함)
라이브러리 Tape.lib

추가 정보

TapeClassPhysicalBlockToLogicalBlock