弹出NtmsMedia 函数 (ntmsapi.h)

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

弹出媒体函数从当前库的端口弹出指定的介质。 如果库正忙,RSM 会排队 弹出NtmsMedia 并返回成功。

语法

DWORD EjectNtmsMedia(
  [in]      HANDLE      hSession,
  [in]      LPNTMS_GUID lpMediaId,
  [in, out] LPNTMS_GUID lpEjectOperation,
  [in]      DWORD       dwAction
);

参数

[in] hSession

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

[in] lpMediaId

PMID) (一段物理介质的唯一标识符。

[in, out] lpEjectOperation

弹出进程库请求的 GUID。 如果 dwAction 是NTMS_EJECT_START,则此参数接收操作的 GUID。 如果 dwAction 是NTMS_EJECT_STOP,则必须将此参数设置为 GUID 才能停止操作。 此参数不与 NTMS_EJECT_QUEUE 一起使用。

[in] dwAction

要执行的操作。 此参数的取值可为下列值之一:

含义
NTMS_EJECT_START
使用端口启动弹出操作。 将弹出指定的介质,直到发生超时事件或使用NTMS_EJECT_STOP再次调用函数。 超时值在库对象中指定,并应用于库中的所有弹出。
NTMS_EJECT_STOP
在超时事件失效之前终止 lpEjectOperation 指定的弹出进程。
NTMS_EJECT_QUEUE
将指定的媒体排队以用于弹出。 用于对多槽NTMS_IEPORT对象的媒体进行分组。

返回值

此函数返回以下值之一。

含义
ERROR_ACCESS_DENIED
拒绝NTMS_CONTROL_ACCESS库。 其他安全错误也可能存在,但它们表示存在安全子系统错误。
ERROR_BUSY
排队的媒体数超过 NTMS_IEPORT 对象中可用的槽数。
ERROR_DATABASE_FAILURE
数据库不可访问或已损坏。
ERROR_DATABASE_FULL
数据库已满。
ERROR_DEVICE_NOT_AVAILABLE
库已禁用。
ERROR_INVALID_HANDLE
会话 ID 缺失或无效。
ERROR_INVALID_OPERATION
对无效的操作 ID 执行了停止操作。
ERROR_INVALID_PARAMETER
缺少库 ID 或操作 ID 指针。
ERROR_LIBRARY_OFFLINE
库 ID 是指无法弹出媒体的脱机库。
ERROR_MEDIA_NOT_AVAILABLE
媒体已禁用。
ERROR_NOT_ENOUGH_MEMORY
处理期间发生分配失败。
ERROR_SUCCESS
弹出已排队。

注解

弹出请求排队后, EjectNtmsMedia 函数会立即返回到应用程序。

使用弹出的媒体函数 弹出的媒体 将移动到脱机库或从数据库中删除。 弹出时,将删除清洁盒、导入介质、无法识别的介质和不兼容的介质。

NTMS_EJECT_QUEUE标志用于将标记为弹出的介质捆绑或批处理到多槽库中。 当应用程序已将所有必要的媒体排队时,可以使用队列操作将媒体排在队列中以供弹出。 应用程序使用 start 命令开始物理弹出操作。 如果排队的媒体数超过NTMS_IEPORT对象中的槽数, 则弹出媒体 将返回ERROR_BUSY。 若要开始物理弹出操作,应用程序可以使用具有最后一个媒体 ID 或 NULL 的 NTMS_EJECT_START。

如果媒体当前正在使用 (装载或打开) ,则此函数将返回错误。

如果库没有端口,请使用 AccessNtmsLibraryDoor 函数插入和弹出媒体。

弹出媒体函数不适用于脱机库。

要求

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

另请参阅

InjectNtmsMedia

库控件函数