CreateNtmsMediaW 函数 (ntmsapi.h)

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

CreateNtmsMedia 函数为新脱机媒体创建 PMID 和侧(或侧)。 媒体放置在为 lpPhysicalMedia指定的媒体池中。

语法

DWORD CreateNtmsMediaW(
  [in] HANDLE                    hSession,
  [in] LPNTMS_OBJECTINFORMATIONW lpMedia,
  [in] LPNTMS_OBJECTINFORMATIONW lpList,
  [in] DWORD                     dwOptions
);

参数

[in] hSession

OpenNtmsSession 函数返回的会话句柄。

[in] lpMedia

指向包含要创建的介质信息的 NTMS_OBJECTINFORMATION 结构的指针。 有关适用成员的说明,请参阅“备注”。

[in] lpList

指向 NTMS_OBJECTINFORMATION 结构的指针,该结构指定与介质关联的侧的数组。 有关适用成员的说明,请参阅“备注”。

[in] dwOptions

选项。 此参数可以是下列值之一。

价值 意义
0
默认值。 允许创建具有重复 OMID 的重复介质。
NTMS_ERROR_ON_DUPLICATE
返回错误,如果系统上已存在具有指定 OMID 的介质,则不会创建介质。

返回值

此函数返回以下值之一。

价值 意义
ERROR_ACCESS_DENIED
NTMS_MODIFY_ACCESS计算机或媒体的媒体池被拒绝。 其他安全错误是可能的,但指示安全子系统错误。

Windows XP:NTMS_CONTROL_ACCESS 媒体池或NTMS_MODIFY_ACCESS脱机库被拒绝。 其他安全错误是可能的,但指示安全子系统错误。

ERROR_DATABASE_FAILURE
数据库不可访问或损坏。
ERROR_DATABASE_FULL
数据库已满。
ERROR_DUPLICATE_OMID
提供了NTMS_ERROR_ON_DUPLICATE选项,并且此 OMID 已存在介质。
ERROR_INVALID_HANDLE
会话句柄缺失或无效。
ERROR_INVALID_MEDIA
此条形码的介质已存在条目。
ERROR_INVALID_MEDIA_POOL
指定的媒体池不存在,或者不是有效的导入池或应用程序池。
ERROR_INVALID_PARAMETER
缺少参数,或者对象信息大小或对象类型无效。
ERROR_MEDIA_INCOMPATIBLE
指定的侧数与与媒体池的媒体类型关联的侧数不匹配。
ERROR_NOT_ENOUGH_MEMORY
处理期间内存分配失败。
ERROR_SUCCESS
函数已成功执行。

言论

lpMedia 参数必须指向 NTMS_OBJECTINFORMATION 结构,其 dwType 参数NTMS_PHYSICAL_MEDIA。 下面是 NTMS_OBJECTINFORMATION 结构的成员和说明的列表。

成员 描述
dwSize [in] CreateNtmsMedia 验证此大小是否等于包含 NTMS_PMIDINFORMATION 结构的 NTMS_OBJECTINFORMATION 结构的长度。 如果大小不正确,它将返回ERROR_INVALID_PARAMETER。
dwType [in] CreateNtmsMedia 验证是否提供了值NTMS_PHYSICAL_MEDIA。 如果提供的类型不正确,它将返回ERROR_INVALID_PARAMETER。
已创建 [out]指示物理媒体对象进入 NTMS 数据库的时间。
修改 [out]指示物理媒体对象进入 NTMS 数据库的时间。
ObjectGuid [in/out]物理媒体对象的唯一标识符(PMID)。 如果提供了非NULL 值,则该值用作物理介质的 GUID,否则将生成 GUID。
已启用 [in]指示是否应启用物理介质。
dwOperationalState [out]必须NTMS_READY。
szName [in/out] CreateNtmsMedia 允许应用程序指定新物理介质的名称。 这使应用程序能够在将媒体从一台 RSM 计算机移动到另一台计算机后继续使用介质的名称。 RSM 默认命名选择是:对于单面:条形码,然后选择标签信息值或序列号;。 对于多面媒体条形码,则为序列号。

请注意,分区的 RSM 用户界面中显示的名称是此名称(分配给物理媒体对象的名称)。

szDescription [in]可以使用 CreateNtmsMedia设置的可选参数。 提供空字符串(“\0”),以避免为说明传入值。
 

下面是 NTMS_PMIDINFORMATION 结构的成员和说明的列表。

成员 描述
CurrentLibrary [in]必须是NULL_GUID或脱机库的 GUID。
MediaPool [in]必须是有效导入池或应用程序池的 GUID。

CreateNtmsMedia 验证这是有效的导入池或应用程序池的 GUID。 它还验证提供的分区数对于与此媒体池关联的媒体类型是正确的。

位置 [out]必须是NULL_GUID。
LocationType [out]必须NTMS_STORAGESLOT。
HomeSlot [out]必须是NULL_GUID。
MediaType [out] CreateNtmsMedia 将媒体类型设置为与提供的媒体池关联的媒体类型。
szBarCode [in/out]条形码被去除任何结束空间。 CreateNtmsMedia 不会执行任何其他尝试来验证条形码的有效性。
BarCodeState [out]如果为 szBarCode 传入的值为空字符串,则 BarCodeState 设置为NTMS_BARCODESTATE_UNREADABLE,否则设置为NTMS_BARCODESTATE_OK。
szSequenceNumber [out] CreateNtmsMedia 为新创建的介质分配序列号,该序列号在此成员中返回。
MediaState [out] CreateNtmsMedia 将 MediaState 设置为 NTMS_MEDIASTATE_IDLE。
dwNumberOfPartitions [in]定义表示此介质两侧的 NTMS_OBJECTINFORMATION 结构数。 CreateNtmsMedia 检查,以确保指定的侧数与要向其分配的媒体池隐含的侧数匹配。 如果它们不匹配,则返回ERROR_MEDIA_INCOMPATIBLE。
dwMediaTypeCode [in]SCSI 媒体类型代码。

此成员不由 RSM 使用,但可由写入 RSM 的应用程序使用,以获取有关媒体的其他信息。 有关此成员应设置为的内容的说明,请参阅硬件制造商的 SCSI 规范以了解可能的设置。

RSM 首次装载新导入的介质时更新此成员。

dwDensityCode [in]SCSI 密度代码。

此成员不由 RSM 使用,但可由写入 RSM 的应用程序使用,以获取有关媒体的其他信息。 有关此成员应设置为的内容的说明,请参阅硬件制造商的 SCSI 规范以了解可能的设置。

RSM 首次装载新导入的介质时更新此成员

 

lpList 参数必须指向 dwType NTMS_PARTITION具有以下信息的 NTMS_OBJECTINFORMATION 结构。

成员 描述
dwSize [in] CreateNtmsMedia 验证所提供的大小是否与包含 NTMS_PARTITIONINFORMATION 结构的 NTMS_OBJECTINFORMATION 结构的预期长度匹配。 如果大小不正确,它将返回ERROR_INVALID_PARAMETER。
dwType [in] CreateNtmsMedia 验证是否提供了值NTMS_PARTITION。 如果提供的类型不正确,它将返回ERROR_INVALID_PARAMETER。
已创建 [out]指示将分区对象输入到 RSM 数据库中的时间。
修改 [out]指示将分区对象输入到 RSM 数据库中的时间。
ObjectGuid [in/out]侧的唯一标识符。 如果提供了非NULL 值,则该值用作侧的 GUID;否则,将生成 GUID。
已启用 [in]确定是否应启用侧。
dwOperationalState [out]必须NTMS_READY。
szName [in]新端的名称。
szDescription [in]可以使用 createNtmsMedia设置的可选参数。 提供空字符串(“\0”),以避免为说明传入值。
PhysicalMedia [out]新建的侧对象的 GUID。
LogicalMedia [in/out]可选输入参数以及输出参数。 如果提供了 GUID,CreateNtmsMedia 尝试使用预分配的 GUID 创建新的逻辑媒体对象。 如果 GUID 不唯一,CreateNtmsMedia 将返回错误。
状态 [in]任何有效的侧状态。
[out] CreateNtmsMedia 将边号设置为分区数组中的偏移量。
dwOmidLabelIdLength [in]必须是正值。

CreateNtmsMedia 使用 dwOmidLabelIdLength 来确定 OmidLabelId 成员中的有效字节数。 如果值不正确,则记录的 OmidLabelId 不正确。

OmidLabelId [in]必须是可由已安装的 MLL 识别的有效媒体标签。
szOmidLabelType [in]不能为空字符串。
szOmidLabelInfo [in]可以是空字符串。
dwMountCount [in]接受任何值。
dwAllocateCount [in]接受任何值。
容量 [in]SCSI 容量代码。

此成员不由 RSM 使用,但可由写入 RSM 的应用程序使用,以获取有关媒体的其他信息。 有关此成员应设置为的内容的说明,请参阅硬件制造商的 SCSI 规范以了解可能的设置。

RSM 首次装载新导入的介质时更新此成员。

 

注意

ntmsapi.h 标头将 CreateNtmsMedia 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

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

另请参阅

媒体服务函数