GetTapePosition 함수(winbase.h)
GetTapePosition 함수는 논리 또는 절대 블록에서 테이프의 현재 주소를 검색합니다.
구문
DWORD GetTapePosition(
[in] HANDLE hDevice,
[in] DWORD dwPositionType,
[out] LPDWORD lpdwPartition,
[out] LPDWORD lpdwOffsetLow,
[out] LPDWORD lpdwOffsetHigh
);
매개 변수
[in] hDevice
테이프 위치를 가져올 디바이스에 대한 핸들입니다. 이 핸들은 CreateFile을 사용하여 만들어집니다.
[in] dwPositionType
가져올 주소 유형입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
[out] lpdwPartition
현재 테이프 파티션의 수를 받는 변수에 대한 포인터입니다. 파티션은 논리적으로 1부터 n까지 번호가 매겨집니다. 여기서 1은 테이프의 첫 번째 파티션이고 n은 마지막 파티션입니다. 디바이스별 블록 주소를 검색하거나 디바이스가 하나의 파티션만 지원하는 경우 이 매개 변수는 0을 받습니다.
[out] lpdwOffsetLow
현재 테이프 위치의 하위 비트를 수신하는 변수에 대한 포인터입니다.
[out] lpdwOffsetHigh
현재 테이프 위치의 상위 비트를 수신하는 변수에 대한 포인터입니다. 상위 비트가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.
반환 값
함수가 성공하면 반환 값이 NO_ERROR.
함수가 실패하면 다음 오류 코드 중 하나를 반환할 수 있습니다.
오류 코드 | Description |
---|---|
|
중간 시작 표식이 실패하기 전에 데이터에 액세스하려는 시도가 실패했습니다. |
|
버스에서 재설정 조건이 감지되었습니다. |
|
테이프를 로드할 때 파티션 정보를 찾을 수 없습니다. |
|
작업 중에 테이프 끝 마커에 도달했습니다. |
|
작업 중에 파일 표시에 도달했습니다. |
|
블록 크기가 다발성 파티션의 새 테이프에서 올바르지 않습니다. |
|
드라이브에 있던 테이프가 교체되거나 제거되었습니다. |
|
작업 중에 데이터 끝 표식에 도달했습니다. |
|
드라이브에 미디어가 없습니다. |
|
테이프 드라이버는 요청된 함수를 지원하지 않습니다. |
|
테이프를 분할할 수 없습니다. |
|
작업 중에 setmark에 도달했습니다. |
|
배출 메커니즘을 잠그지 못했습니다. |
|
테이프를 언로드하지 못했습니다. |
|
미디어가 쓰기 보호되어 있습니다. |
설명
논리 블록 주소는 파티션을 기준으로 합니다. 각 파티션의 첫 번째 논리 블록 주소는 0입니다.
GetTapeParameters 함수를 호출하여 테이프 드라이브 및 미디어의 상태, 기능 및 용량에 대한 정보를 가져옵니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |