GetTapePosition function (winbase.h)
The GetTapePosition function retrieves the current address of the tape, in logical or absolute blocks.
Syntax
DWORD GetTapePosition(
[in] HANDLE hDevice,
[in] DWORD dwPositionType,
[out] LPDWORD lpdwPartition,
[out] LPDWORD lpdwOffsetLow,
[out] LPDWORD lpdwOffsetHigh
);
Parameters
[in] hDevice
Handle to the device on which to get the tape position. This handle is created by using CreateFile.
[in] dwPositionType
Type of address to obtain. This parameter can be one of the following values.
[out] lpdwPartition
Pointer to a variable that receives the number of the current tape partition. Partitions are numbered logically from 1 through n, where 1 is the first partition on the tape and n is the last. When a device-specific block address is retrieved, or if the device supports only one partition, this parameter receives zero.
[out] lpdwOffsetLow
Pointer to a variable that receives the low-order bits of the current tape position.
[out] lpdwOffsetHigh
Pointer to a variable that receives the high-order bits of the current tape position. This parameter can be NULL if the high-order bits are not required.
Return value
If the function succeeds, the return value is NO_ERROR.
If the function fails, it can return one of the following error codes.
Error code | Description |
---|---|
|
An attempt to access data before the beginning-of-medium marker failed. |
|
A reset condition was detected on the bus. |
|
The partition information could not be found when a tape was being loaded. |
|
The end-of-tape marker was reached during an operation. |
|
A filemark was reached during an operation. |
|
The block size is incorrect on a new tape in a multivolume partition. |
|
The tape that was in the drive has been replaced or removed. |
|
The end-of-data marker was reached during an operation. |
|
There is no media in the drive. |
|
The tape driver does not support a requested function. |
|
The tape could not be partitioned. |
|
A setmark was reached during an operation. |
|
An attempt to lock the ejection mechanism failed. |
|
An attempt to unload the tape failed. |
|
The media is write protected. |
Remarks
A logical block address is relative to a partition. The first logical block address on each partition is zero.
Call the GetTapeParameters function to obtain information about the status, capabilities, and capacities of tape drives and media.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows XP [desktop apps only] |
Minimum supported server | Windows Server 2003 [desktop apps only] |
Target Platform | Windows |
Header | winbase.h (include Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |