writeTapemark 函数 (winbase.h)

WriteTapemark 函数将指定数量的文件标记、设置标记、短文件标记或长文件标记写入磁带设备。 这些磁带标记将磁带分区划分为较小的区域。

语法

DWORD WriteTapemark(
  [in] HANDLE hDevice,
  [in] DWORD  dwTapemarkType,
  [in] DWORD  dwTapemarkCount,
  [in] BOOL   bImmediate
);

参数

[in] hDevice

要写入磁带标记的设备的句柄。 此句柄是使用 CreateFile 函数创建的。

[in] dwTapemarkType

要写入的磁带标记的类型。 此参数的取值可为下列值之一:

含义
TAPE_FILEMARKS
1L
写入 dwTapemarkCount 参数指定的文件标记数。
TAPE_LONG_FILEMARKS
3L
写入 由 dwTapemarkCount 指定的长文件标记数。
TAPE_SETMARKS
0L
写入 由 dwTapemarkCount 指定的 setmark 数
TAPE_SHORT_FILEMARKS
2L
写入 由 dwTapemarkCount 指定的短文件标记数。

[in] dwTapemarkCount

要写入的磁带标记数。

[in] bImmediate

如果此参数为 TRUE,则函数将立即返回;如果为 FALSE,则函数在操作完成之前不会返回。

返回值

如果函数成功,则返回值NO_ERROR。

如果函数失败,它可以返回以下错误代码之一。

错误 说明
ERROR_BEGINNING_OF_MEDIA
1102L
尝试在中开始标记之前访问数据失败。
ERROR_BUS_RESET
1111L
在总线上检测到重置条件。
ERROR_DEVICE_NOT_PARTITIONED
1107L
加载磁带时找不到分区信息。
ERROR_END_OF_MEDIA
1100L
操作期间到达了磁带结束标记。
ERROR_FILEMARK_DETECTED
1101L
操作期间已达到文件标记。
ERROR_INVALID_BLOCK_LENGTH
1106L
在多卷分区中的新磁带上,块大小不正确。
ERROR_MEDIA_CHANGED
1110L
已更换或删除驱动器中的磁带。
ERROR_NO_DATA_DETECTED
1104L
操作期间到达了数据结束标记。
ERROR_NO_MEDIA_IN_DRIVE
1112L
驱动器中没有媒体。
ERROR_NOT_SUPPORTED
50L
磁带驱动程序不支持请求的函数。
ERROR_PARTITION_FAILURE
1105L
无法对磁带进行分区。
ERROR_SETMARK_DETECTED
1103L
操作期间已达到设置标记。
ERROR_UNABLE_TO_LOCK_MEDIA
1108L
尝试锁定弹出机制失败。
ERROR_UNABLE_TO_UNLOAD_MEDIA
1109L
尝试卸载磁带失败。
ERROR_WRITE_PROTECT
19L
介质受写入保护。

注解

文件标记、集标、短文件标记和长文件标记是特殊记录的元素,表示磁带的线性组织。 这些标记均不包含用户数据。 文件标记是最通用的标记;setmarks 提供的层次结构不适用于文件标记。

短文件标记包含一个短的擦除间隙,除非从分区的开头或从较早的长文件标记执行写入操作,否则无法覆盖该间隙。

长文件标记包含长擦除间隙,允许应用程序将磁带置于文件标记的开头,并覆盖文件标记和擦除间隙。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CreateFile