Функция EjectNtmsMedia (ntmsapi.h)

[Диспетчер съемных носителей больше недоступен в Windows 7 и Windows Server 2008 R2.]

Функция EjectNtmsMedia извлекает указанный носитель из порта текущей библиотеки. Если библиотека занята, RSM помещает в очередь EjectNtmsMedia и возвращает успешное выполнение.

Синтаксис

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
Идентификатор сеанса отсутствует или недопустим.
ERROR_INVALID_OPERATION
Для недопустимого идентификатора операции была выполнена остановка.
ERROR_INVALID_PARAMETER
Отсутствует указатель идентификатора библиотеки или идентификатора операции.
ERROR_LIBRARY_OFFLINE
Идентификатор библиотеки относится к автономной библиотеке, которая не может извлечь носитель.
ERROR_MEDIA_NOT_AVAILABLE
Носитель отключен.
ERROR_NOT_ENOUGH_MEMORY
Во время обработки произошел сбой выделения.
ERROR_SUCCESS
Извлечение помещается в очередь.

Комментарии

Функция EjectNtmsMedia возвращается в приложение сразу после постановки запроса на извлечение в очередь.

Носитель, выброшенный с помощью функции EjectNtmsMedia , перемещается в автономную библиотеку или удаляется из базы данных. При извлечении удаляются более чистые кассеты, носители импорта, нераспознанные носители и несовместимые носители.

Флаг NTMS_EJECT_QUEUE используется для пакетного или пакетного носителя, помеченного для извлечения в библиотеку с несколькими слотами. Вы можете ставить носитель в очередь для извлечения с помощью действия очереди, когда приложение поставило в очередь все необходимые носители. Приложение использует команду start, чтобы начать операцию физического извлечения. Если в очереди больше носителей, чем слотов в объекте NTMS_IEPORT, EjectNtmsMedia возвращает ERROR_BUSY. Чтобы начать операцию физического извлечения, приложение может использовать NTMS_EJECT_START с последним идентификатором носителя или NULL.

Если носитель в данный момент используется (подключен или открыт), эта функция возвращает ошибку.

Если у библиотеки нет порта, используйте функцию AccessNtmsLibraryDoor для вставки и извлечения носителя.

Функция EjectNtmsMedia не работает с автономной библиотекой.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header ntmsapi.h
Библиотека Ntmsapi.lib
DLL Ntmsapi.dll

См. также раздел

InjectNtmsMedia

Функции управления библиотекой