Функция 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

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

Значение Значение
NTMS_MOUNT_SPECIFIC_DRIVE
Подключите носитель к определенным дискам, указанным в параметре lpDriveId .
NTMS_MOUNT_READ
Подключите носитель для доступа на чтение. Используйте это значение для подключения носителя, доступного только для чтения.
NTMS_MOUNT_WRITE
Подключите носитель для доступа на запись. Используйте этот флаг, чтобы запретить RSM подключать завершенный носитель. Это значение можно объединить с NTMS_MOUNT_READ для доступа на чтение и запись.

RsM не может подключить завершенный носитель, если выбран этот флаг.

NTMS_MOUNT_ERROR_NOT_AVAILABLE
Это значение возвращает ошибку, если носитель или диск недоступны.
NTMS_MOUNT_ERROR_OFFLINE
Не выделяйте запрос оператора на подключение автономного носителя. Возвращает ошибку, если указанный носитель в настоящее время не находится в библиотеке.

[in] dwPriority

Приоритет подключения, используемого RSM для предоставления доступа к дискам. Приоритеты варьируются от -15 до 15, при этом 15 является наивысшим приоритетом, а 0 — по умолчанию. Этот параметр также может принимать одну из следующих констант. Приложение должно передавать NTMS_PRIORITY_NORMAL, если не требуется особый приоритет подключения.

Значение Значение
NTMS_PRIORITY_NORMAL
Подключения, которые не являются критически важными по времени.
NTMS_PRIORITY_LOW
Подключения, выполняемые в качестве фонового действия.
NTMS_PRIORITY_HIGH
Подключения, которые являются критически важными по времени.
NTMS_PRIORITY_LOWEST
Подключение с наименьшим приоритетом.
NTMS_PRIORITY_HIGHEST
Подключение с наивысшим приоритетом.

[in] dwTimeout

Максимальное время подключения указанного носителя в миллисекундах. Задайте для этого параметра значение INFINITE, чтобы дождаться завершения подключения.

lpMountInformation

Этот параметр зарезервирован и должен иметь значение NULL.

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

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

Значение Значение
ERROR_ACCESS_DENIED
NTMS_USE_ACCESS к пулу носителей или библиотеке, содержащей носитель, запрещено; Возможны и другие ошибки безопасности, но они указывают на ошибку подсистемы безопасности.
ERROR_BUSY
Носитель или диски заняты.
ERROR_CANCELLED
Запрос был отменен функцией CloseNtmsSession .
ERROR_DATABASE_FAILURE
База данных недоступна или повреждена.
ERROR_DATABASE_FULL
База данных заполнена.
ERROR_DRIVE_MEDIA_MISMATCH
Указанные носители и диск находятся в разных библиотеках.
ERROR_INVALID_DRIVE
По крайней мере один из указанных дисков является недопустимым.
ERROR_INVALID_LIBRARY
Недопустимая библиотека, содержащая диски или носители.
ERROR_INVALID_MEDIA
Один или несколько указанных носителей являются недопустимыми или в списке носителей есть дублирующиеся идентификаторы носителей.
ERROR_INVALID_STATE
Во время подключения произошло непредвиденное состояние носителя или устройства.
ERROR_MEDIA_OFFLINE
Носитель находится в автономном режиме и не может быть подключен.
ERROR_NOT_ENOUGH_MEMORY
Во время обработки произошел сбой выделения памяти.
ERROR_REQUEST_REFUSED
Пользователь отменил запрос через пользовательский интерфейс.
ERROR_RESOURCE_DISABLED
Один или несколько ресурсов, необходимых для подключения, отключены.
ERROR_SUCCESS
Носитель подключен и готов к использованию.
ERROR_TIMEOUT
Истекло время ожидания при попытке получить один или несколько необходимых ресурсов. Запрос на подключение отменен.
ERROR_WRITE_PROTECT
Для состояния носителя задано значение Завершено и указано значение 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
Header ntmsapi.h
Библиотека Ntmsapi.lib
DLL Ntmsapi.dll

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

Функции служб мультимедиа