Поделиться через


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

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

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

Синтаксис

DWORD InjectNtmsMedia(
  [in]  HANDLE      hSession,
  [in]  LPNTMS_GUID lpLibraryId,
  [out] LPNTMS_GUID lpInjectOperation,
  [in]  DWORD       dwAction
);

Параметры

[in] hSession

Дескриптор сеанса, возвращаемого функцией OpenNtmsSession .

[in] lpLibraryId

Уникальный идентификатор объекта библиотеки.

[out] lpInjectOperation

GUID операции вставки библиотеки. Если параметр dwAction имеет NTMS_INJECT_START, этот параметр получает GUID для операции. Если параметр dwAction NTMS_INJECT_STOP, для этого параметра необходимо задать идентификатор GUID, чтобы операция была остановлена.

[in] dwAction

Этот параметр может принимать одно из указанных ниже значений.

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

Возвращаемое значение

Эта функция возвращает одно из следующих значений.

Значение Значение
ERROR_ACCESS_DENIED
NTMS_CONTROL_ACCESS в библиотеку запрещено. Возможны и другие ошибки безопасности, но они указывают на ошибку подсистемы безопасности.
ERROR_DATABASE_FAILURE
База данных недоступна или повреждена.
ERROR_DATABASE_FULL
База данных заполнена.
ERROR_DEVICE_NOT_AVAILABLE
Библиотека отключена.
ERROR_INVALID_HANDLE
Идентификатор сеанса отсутствует или недопустим.
ERROR_INVALID_OPERATION
Действие Остановить было выполнено с недопустимым идентификатором операции.
ERROR_INVALID_PARAMETER
Отсутствует указатель идентификатора библиотеки или идентификатора операции.
ERROR_LIBRARY_OFFLINE
Идентификатор библиотеки относится к автономной библиотеке, которая не может извлечь носитель.
ERROR_NOT_ENOUGH_MEMORY
Во время обработки произошел сбой выделения.
ERROR_SUCCESS
Вставка поставлена в очередь.

Комментарии

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

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

Эту функцию нельзя использовать с автономной библиотекой.

Вставка начинает процесс вставки мультимедиа в библиотеку. Поскольку библиотеки зависят от функциональности объекта NTMS_IEPORT, каждое устройство может работать немного по-разному. Ниже описано, как RSM обычно обрабатывает внедрение.

Вставка мультимедиа в библиотеку

  1. Разрешить, разблокировать или расширить NTMS_IEPORT.
  2. Выполните опрос на наличие полного NTMS_IEPORT, отозваемого NTMS_IEPORT, команды Остановить внедрение или значения времени ожидания. Если ни одного из них не произошло, продолжайте ждать. (Порты вставки и извлечения с несколькими патронами не проверяются на наличие полного состояния.)
  3. При возникновении одного из предыдущих событий NTMS_IEPORT блокируется, каждый носитель в NTMS_IEPORT перемещается в слот, а команда идентифицировать среду помещается в очередь для каждого носителя.
Если в объекте NTMS_IEPORT недостаточно слотов для носителя, носитель остается в объекте NTMS_IEPORT и отправляется запрос оператора на удаление носителя из библиотеки.

Если свободных слотов нет, функция InjectNtmsMedia получает сообщение об ошибке.

Требования

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

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

EjectNtmsMedia

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