GetTapePosition功能以逻辑或绝对块取回磁带的当前地址。
DWORD GetTapePosition(
HANDLE 【hDevice】, | //打开设备的句柄 |
DWORD 【dwPositionType】, | //获取的地址类型 |
LPDWORD 【lpdwPartition】, | //当前磁带分区的地址 |
LPDWORD 【lpdwOffsetLow】, | //地址为低位32位磁带位置 |
LPDWORD 【lpdwOffsetHigh】 | //地址高位32位磁带位置 |
); |
参数
【hDevice】
标识要获取磁带位置的设备。该句柄是通过使用CreateFile创建的。
【dwPositionType】
指定要获取的地址类型。此参数可以是以下值之一:
值 | 描述 |
TAPE_ABSOLUTE_POSITION | 【lpdwOffsetLow】和【lpdwOffsetHigh】参数接收特定于设备的块地址。【dwPartition】参数接收零。 |
TAPE_LOGICAL_POSITION | 【lpdwOffsetLow】和【lpdwOffsetHigh】参数接收逻辑块地址。【dwPartition】参数接收逻辑磁带分区。 |
【lpdwPartition】
指向接收当前磁带分区号的变量。分区从1到【n】逻辑编号,其中1是磁带上的第一个分区,【n】是最后一个分区。当检索到特定于设备的块地址时,或者设备仅支持一个分区时,该参数将接收零。
【lpdwOffsetLow】
指向接收当前磁带位置的低位32位的变量。
【lpdwOffsetHigh】
指向接收当前磁带位置的高位32位的变量。如果不需要高位32位,则该参数可以为NULL。
返回值
如果函数成功,返回值为NO_ERROR。
如果函数失败,则返回值为以下错误代码之一:
错误代码 | 描述 |
ERROR_BEGINNING_OF_MEDIA | 在中间标记开始之前访问数据的尝试失败。 |
ERROR_BUS_RESET | 在总线上检测到复位条件。 |
ERROR_END_OF_MEDIA | 在操作期间到达磁带末端标记。 |
ERROR_FILEMARK_DETECTED | 在操作期间达到文件标记。 |
ERROR_SETMARK_DETECTED | 在操作期间达成了一个标记。 |
ERROR_NO_DATA_DETECTED | 在操作期间达到数据结尾标记。 |
ERROR_PARTITION_FAILURE | 磁带无法分区。 |
ERROR_INVALID_BLOCK_LENGTH | 多卷分区中的新磁带上的块大小不正确。 |
ERROR_DEVICE_NOT_PARTITIONED | 加载磁带时无法找到分区信息。 |
ERROR_MEDIA_CHANGED | 驱动器中的磁带已被更换或删除。 |
ERROR_NO_MEDIA_IN_DRIVE | 驱动器中没有媒体。 |
ERROR_NOT_SUPPORTED | 磁带驱动程序不支持所请求的功能。 |
ERROR_UNABLE_TO_LOCK_MEDIA | 试图锁定弹出机构失败。 |
ERROR_UNABLE_TO_UNLOAD_MEDIA | 尝试卸载磁带失败。 |
ERROR_WRITE_PROTECT | 媒体是写保护的。 |
备注
逻辑块地址是相对于分区。每个分区上的第一个逻辑块地址为零。
调用GetTapeParameters功能以获取有关磁带机和介质的状态,功能和容量的信息。
也可以看看