Функция 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
Параметры. Этот параметр может иметь одно или несколько из следующих значений.
[in] dwPriority
Приоритет подключения, используемого RSM для предоставления доступа к дискам. Приоритеты варьируются от -15 до 15, при этом 15 является наивысшим приоритетом, а 0 — по умолчанию. Этот параметр также может принимать одну из следующих констант. Приложение должно передавать NTMS_PRIORITY_NORMAL, если не требуется особый приоритет подключения.
[in] dwTimeout
Максимальное время подключения указанного носителя в миллисекундах. Задайте для этого параметра значение INFINITE, чтобы дождаться завершения подключения.
lpMountInformation
Этот параметр зарезервирован и должен иметь значение NULL.
Возвращаемое значение
Эта функция возвращает одно из следующих значений.
Значение | Значение |
---|---|
|
NTMS_USE_ACCESS к пулу носителей или библиотеке, содержащей носитель, запрещено; Возможны и другие ошибки безопасности, но они указывают на ошибку подсистемы безопасности. |
|
Носитель или диски заняты. |
|
Запрос был отменен функцией CloseNtmsSession . |
|
База данных недоступна или повреждена. |
|
База данных заполнена. |
|
Указанные носители и диск находятся в разных библиотеках. |
|
По крайней мере один из указанных дисков является недопустимым. |
|
Недопустимая библиотека, содержащая диски или носители. |
|
Один или несколько указанных носителей являются недопустимыми или в списке носителей есть дублирующиеся идентификаторы носителей. |
|
Во время подключения произошло непредвиденное состояние носителя или устройства. |
|
Носитель находится в автономном режиме и не может быть подключен. |
|
Во время обработки произошел сбой выделения памяти. |
|
Пользователь отменил запрос через пользовательский интерфейс. |
|
Один или несколько ресурсов, необходимых для подключения, отключены. |
|
Носитель подключен и готов к использованию. |
|
Истекло время ожидания при попытке получить один или несколько необходимых ресурсов. Запрос на подключение отменен. |
|
Для состояния носителя задано значение Завершено и указано значение 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 |