MountNtmsMedia 函数 (ntmsapi.h)
[从 Windows 7 和 Windows Server 2008 R2 起,可移动存储管理器 不再可用。]
MountNtmsMedia 函数同步装载一个或多个媒体片段。
语法
DWORD MountNtmsMedia(
[in] HANDLE hSession,
[in] LPNTMS_GUID lpMediaId,
[in, out] LPNTMS_GUID lpDriveId,
[in] DWORD dwCount,
[in] DWORD dwOptions,
[in] int dwPriority,
[in] DWORD dwTimeout,
LPNTMS_MOUNT_INFORMATION lpMountInformation
);
参数
[in] hSession
OpenNtmsSession 函数返回的会话的句柄。
[in] lpMediaId
逻辑介质或侧的唯一标识符数组。
[in, out] lpDriveId
对应于 lpMediaId 参数中的媒体列表的驱动器标识符数组。 此数组指定要将媒体装载到的驱动器列表,或接收操作完成后媒体装载到的驱动器的列表。 请参阅下面的NTMS_MOUNT_SPECIFIC_DRIVE值。 如果在装载完成之前 MountNtmsMedia 函数超时,RSM 不会返回驱动器列表。
[in] dwCount
在 lpMediaId 和 lpDriveId 参数中传递的媒体标识符和驱动器标识符的数目。 请注意, lpMediaId 和 lpDriveId 必须指向长度相等的数组的第一个元素。
[in] dwOptions
选项。 此参数可使用以下一个或多个值。
[in] dwPriority
RSM 用于允许访问驱动器的装载的优先级。 优先级范围为 -15 到 15,最高优先级为 15,默认值为 0。 此参数还可以采用以下常量之一。 除非需要特殊的装载优先级,否则应用程序应通过NTMS_PRIORITY_NORMAL。
值 | 含义 |
---|---|
|
不是时间关键型的装载。 |
|
作为后台活动执行的装载。 |
|
时间关键型装载。 |
|
最低优先级装载。 |
|
最高优先级装载。 |
[in] dwTimeout
允许装载指定媒体的最长时间(以毫秒为单位)。 将此参数设置为 INFINITE 以等待装载完成。
lpMountInformation
此参数为保留参数,应为 NULL。
返回值
此函数返回以下值之一。
值 | 含义 |
---|---|
|
NTMS_USE_ACCESS包含媒体的媒体池或库被拒绝;也可能出现其他安全错误,但它们表示存在安全子系统错误。 |
|
媒体或驱动器正忙。 |
|
CloseNtmsSession 函数取消了请求。 |
|
数据库不可访问或已损坏。 |
|
数据库已满。 |
|
指定的媒体和驱动器不在同一库中。 |
|
至少一个指定的驱动器无效。 |
|
包含驱动器或媒体的库无效。 |
|
指定的一个或多个介质无效,或者媒体列表中存在重复的媒体 ID。 |
|
装载期间出现意外的媒体或设备状态。 |
|
媒体处于脱机状态,无法装载。 |
|
处理期间发生内存分配失败。 |
|
用户通过用户界面取消了请求。 |
|
将禁用执行装载所需的一个或多个资源。 |
|
媒体已装载,可供使用。 |
|
尝试获取一个或多个所需资源时超时事件已过期。 装载请求已取消。 |
|
媒体状态设置为 Completed,并且指定了NTMS_MOUNT_WRITE值。 |
注解
MountNtmsMedia 函数将装载指定媒体的请求排队,然后等待 dwTimeout 参数中指定的毫秒数,以便装载完成或检测到错误。 如果 RSM 无法在 dwTimeout 过期之前完成装载操作,NTMS 将取消请求并返回错误。 如果指定的媒体位于脱机库中,则应用程序可能会长时间被阻止。 可以使用 GetNtmsObjectInformation 函数确定指定介质的当前位置。 还可以使用 NTMS_MOUNT_ERROR_OFFLINE 值在媒体脱机时生成即时错误而不是操作员请求。
如果指定的介质正在使用或驱动器不可用,则进程将阻止超时值,并返回ERROR_BUSY。 如果指定了NTMS_MOUNT_ERROR_NOT_AVAILABLE值,则当资源 (媒体或驱动器) 不可用时,函数将立即返回错误。
INFINITE 的超时值可用于使函数等待而不会超时。在 dwTimeout 参数中指定非零超时值时,RSM 将等待 lpMediaId 中指定的所有媒体装载。 如果指定的时间在装载所有媒体之前已过, 则 MountNtmsMedia 函数将返回错误并取消请求。 应用程序可以检查返回的状态,并根据需要重新提交请求。
使用单个调用指定要装载的多个媒体时,所有指定的媒体都必须位于单个库中。 如果任何指定的介质处于脱机状态,则不会装载任何介质,直到所有媒体都处于联机状态。
例如,装载完成后,驱动器状态 (未定义修复模式或可变模式) 。 应用程序必须设置驱动器。
CloseNtmsSession 函数可用于取消挂起的装载。 默认行为是:
- 如果指定的媒体处于脱机状态,RSM 会发布操作员请求来装载媒体, 而 MountNtmsMedia 函数将等待 dwTimeout 参数中指定的时间段。
- 如果指定的介质处于联机状态,RSM 会请求装载。
- 如果驱动器或媒体不可用,RSM 将发送请求, 而 MountNtmsMedia 函数将等待 dwTimeout 参数中指定的时间段。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | ntmsapi.h |
Library | Ntmsapi.lib |
DLL | Ntmsapi.dll |