updateNtmsOmidInfo 函数 (ntmsapi.h)

[从 Windows 7 和 Windows Server 2008 R2 起,可移动存储管理器 不再可用。]

UpdateNtmsOmidInfo 函数在写入新分配的介质后立即使用标签信息更新 RSM 数据库。

语法

DWORD UpdateNtmsOmidInfo(
  [in] HANDLE      hSession,
  [in] LPNTMS_GUID lpMediaId,
  [in] DWORD       labelType,
  [in] DWORD       numberOfBytes,
  [in] LPVOID      lpBuffer
);

参数

[in] hSession

OpenNtmsSession 函数返回的会话的句柄。

[in] lpMediaId

逻辑介质片段的唯一标识符。

[in] labelType

标签类型。 此参数的取值可为下列值之一:

含义
NTMS_OMID_TYPE_FILESYSTEM_INFO
lpBuffer 参数包含NTMS_FILESYSTEM_INFO结构。 此标志用于包含文件系统的媒体。
NTMS_OMID_TYPE_RAW_LABEL
lpBuffer 参数包含应用程序标签的原始字节。 此标志用于包含应用程序写入标签的媒体。

[in] numberOfBytes

在 lpBuffer 参数中发送的字节数。

[in] lpBuffer

标签信息。 此参数的格式取决于 labelType 参数的值。

返回值

此函数返回以下值之一。

含义
ERROR_ACCESS_DENIED
拒绝访问一个或多个 RSM 对象。
ERROR_DATABASE_FAILURE
数据库查询或更新失败。
ERROR_INVALID_HANDLE
hSession 参数中指定的值无效。
ERROR_INVALID_MEDIA
无法从数据库检索逻辑媒体定义。
ERROR_INVALID_PARTITION
无法从数据库检索侧定义。
ERROR_INVALID_PARAMETER
lpMediaId 参数为 NULL
ERROR_NOT_CONNECTED
无法连接到 RSM 服务。
ERROR_SUCCESS
函数成功。

注解

应用程序使用 UpdateNtmsOmidInfo 函数提供的信息更新 RSM,RSM 验证数据库中的信息。 标签信息存储在与此 LMID 关联的端的 RSM 数据库中。

必须在 RSM 服务器上执行 UpdateNtmsOmidInfo 函数。 远程执行此函数会导致错误。

对于磁带介质 ,lpBuffer 必须指向保存刚刚写入磁带上的标签的缓冲区。 此缓冲区中的数据直接传递到每个 MLL 的 ClaimMediaLabel 入口点。 其中一个已安装的 MRL 必须识别此数据中的有效标签。

对于具有文件系统的媒体, lpBuffer 必须是指向包含以下结构的缓冲区的指针:


typedef struct {
    WCHAR   FileSystemType[64];
    WCHAR   VolumeName[256];
    DWORD   SerialNumber;
} NTMS_FILESYSTEM_INFO;

RSM 使用此文件系统信息作为 OMID。 格式实用工具 (LDM、资源管理器、format.com 等) 有效地执行与此调用相同的功能。 使用第三方文件系统类型执行其自己的格式设置或格式的应用程序应只需为文件系统媒体调用 UpdateNtmsOmidInfo

要求

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

另请参阅

媒体标识符管理功能