getTapeParameters 函数 (winbase.h)

GetTapeParameters 函数检索描述磁带或磁带驱动器的信息。

语法

DWORD GetTapeParameters(
  [in]  HANDLE  hDevice,
  [in]  DWORD   dwOperation,
  [out] LPDWORD lpdwSize,
  [out] LPVOID  lpTapeInformation
);

参数

[in] hDevice

要获取其相关信息的设备的句柄。 此句柄是使用 CreateFile 函数创建的。

[in] dwOperation

请求的信息类型。 此参数须为下列值之一。

含义
GET_TAPE_DRIVE_INFORMATION
1
检索有关磁带设备的信息。
GET_TAPE_MEDIA_INFORMATION
0
检索有关磁带设备中磁带的信息。

[out] lpdwSize

指向一个变量的指针,该变量接收 由 lpTapeInformation 参数指定的缓冲区的大小(以字节为单位)。 如果缓冲区太小,此参数将接收所需的大小。

[out] lpTapeInformation

指向包含所请求信息的 结构的指针。 如果 dwOperation 参数 GET_TAPE_MEDIA_INFORMATION则 lpTapeInformation 指向 TAPE_GET_MEDIA_PARAMETERS 结构。

如果 dwOperationGET_TAPE_DRIVE_INFORMATION则 lpTapeInformation 指向 TAPE_GET_DRIVE_PARAMETERS 结构。

返回值

如果函数成功,则返回值 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
介质受写入保护。

注解

块大小范围值 (最大和最小) 由调用的 GetTapeParameters 函数返回,并将 dwOperation 参数设置为 GET_TAPE_DRIVE_INFORMATION 值将指示系统限制,而不是驱动器限制。 但是,磁带驱动器设备和驱动器中存在的介质决定了真正的块大小限制。 因此,应用程序可能无法设置通过在 dwOperation 中指定GET_TAPE_DRIVE_INFORMATION获取的范围中提到的所有块大小。

要求

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

另请参阅

CreateFile

SetTapeParameters

TAPE_GET_DRIVE_PARAMETERS

TAPE_GET_MEDIA_PARAMETERS