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
要获取的地址类型。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
lpdwOffsetLow 和 lpdwOffsetHigh 参数接收特定于设备的块地址。 dwPartition 参数接收零。 |
|
lpdwOffsetLow 和 lpdwOffsetHigh 参数接收逻辑块地址。 dwPartition 参数接收逻辑磁带分区。 |
[out] lpdwPartition
指向接收当前磁带分区编号的变量的指针。 分区按逻辑从 1 到 n 进行编号,其中 1 是磁带上的第一个分区,n 是最后一个分区。 当检索到特定于设备的块地址时,或者如果设备仅支持一个分区,则此参数接收零。
[out] lpdwOffsetLow
指向接收当前磁带位置的低序位的变量的指针。
[out] lpdwOffsetHigh
指向接收当前磁带位置的高阶位的变量的指针。 如果不需要高阶位,此参数可以为 NULL 。
返回值
如果函数成功,则返回值NO_ERROR。
如果函数失败,可能会返回以下错误代码之一。
错误代码 | 说明 |
---|---|
|
在中度起始标记失败之前尝试访问数据。 |
|
在总线上检测到重置条件。 |
|
加载磁带时找不到分区信息。 |
|
操作期间已到达磁带结束标记。 |
|
操作期间已达到文件标记。 |
|
多卷分区中新磁带上的块大小不正确。 |
|
驱动器中的磁带已被更换或删除。 |
|
操作期间已到达数据结束标记。 |
|
驱动器中没有媒体。 |
|
磁带驱动程序不支持请求的函数。 |
|
无法对磁带进行分区。 |
|
操作期间已达到 setmark。 |
|
尝试锁定弹出机制失败。 |
|
尝试卸载磁带失败。 |
|
介质受写入保护。 |
注解
逻辑块地址相对于分区。 每个分区上的第一个逻辑块地址为零。
调用 GetTapeParameters 函数以获取有关磁带驱动器和介质的状态、功能和容量的信息。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |