Функция 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_CONTROL_ACCESS в библиотеку запрещено. Возможны и другие ошибки безопасности, но они указывают на ошибку подсистемы безопасности. |
|
В очереди было больше носителей, чем слотов, доступных в объекте NTMS_IEPORT. |
|
База данных недоступна или повреждена. |
|
База данных заполнена. |
|
Библиотека отключена. |
|
Идентификатор сеанса отсутствует или недопустим. |
|
Для недопустимого идентификатора операции была выполнена остановка. |
|
Отсутствует указатель идентификатора библиотеки или идентификатора операции. |
|
Идентификатор библиотеки относится к автономной библиотеке, которая не может извлечь носитель. |
|
Носитель отключен. |
|
Во время обработки произошел сбой выделения. |
|
Извлечение помещается в очередь. |
Комментарии
Функция 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 |