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


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

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

Функция CreateNtmsMediaPool создает новый пул носителей приложений.

Синтаксис

DWORD CreateNtmsMediaPoolA(
  [in]  HANDLE                hSession,
  [in]  LPCSTR                lpPoolName,
  [in]  LPNTMS_GUID           lpMediaType,
  [in]  DWORD                 dwAction,
  [in]  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  [out] LPNTMS_GUID           lpPoolId
);

Параметры

[in] hSession

Обработка сеанса, возвращаемого функцией OpenNtmsSess ion.

[in] lpPoolName

Имя нового пула носителей. Имена пула мультимедиа должны быть уникальными в пределах одной базы данных RSM.

[in] lpMediaType

Идентификатор типа носителя в этом пуле носителей. Используйте функцию перечисления ListeNtmsObject, чтобы получить список доступных типов носителей и их атрибутов. Приложение может передать указатель NULL для создания пула носителей, содержащего только другие пулы носителей.

[in] dwAction

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

Ценность Значение
NTMS_OPEN_EXISTING
Открывает существующий пул мультимедиа по имени. Возвращает ERROR_OBJECT_NOT_FOUND, если пул не существует.
NTMS_OPEN_ALWAYS
Открывает существующий пул носителей или создает пул, если он не существует.
NTMS_CREATE_NEW
Создает новый пул носителей. Возвращает ERROR_ALREADY_EXISTS, если пул существует.

[in] lpSecurityAttributes

Необязательный дескриптор безопасности, используемый для ограничения доступа к пулу.

[out] lpPoolId

Указатель на переменную, которая получает уникальный идентификатор пула мультимедиа после успешного создания или открытия пула носителей.

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

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

Ценность Значение
ERROR_ACCESS_DENIED
NTMS_CONTROL_ACCESS корневому пулу или родительскому пулу носителей запрещено при попытке создать новый пул носителей. Другие ошибки безопасности также возможны, но они указывают на ошибку подсистемы безопасности.

Windows XP: NTMS_MODIFY_ACCESS родительскому пулу носителей запрещено при попытке создать новый пул носителей. Другие ошибки безопасности также возможны, но они указывают на ошибку подсистемы безопасности.

ERROR_ALREADY_EXISTS
Не удалось создать новый пул носителей, так как он уже существует с этим именем.
ERROR_DATABASE_FAILURE
База данных недоступна или повреждена.
ERROR_DATABASE_FULL
База данных заполнена. Другие ошибки безопасности также возможны, но они указывают на ошибку подсистемы безопасности.
ERROR_INVALID_HANDLE
Дескриптор сеанса отсутствует или недопустим.
ERROR_INVALID_MEDIA
Выбранный тип носителя недопустим.
ERROR_INVALID_NAME
Недопустимый синтаксис имени пула. (Имя слишком длинное.)
ERROR_INVALID_PARAMETER
Отсутствует указатель на имя пула мультимедиа или идентификатор пула мультимедиа.
ERROR_OBJECT_NOT_FOUND
Не удается открыть существующий пул носителей.
ERROR_SUCCESS
Функция была успешной.

Замечания

Бесплатные, неопознанные и импортированные пулы мультимедиа создаются RSM и не могут быть созданы с помощью функции CreateNtmsMediaPool.

Пулы мультимедиа RSM организованы в виде иерархии, разделенной символом "". Пулы носителей приложения, free, unrecognized и import существуют в корне иерархии. RSM создает и управляет бесплатными, неопознанными и импортируемыми пулами. RSM создает пул бесплатных носителей для каждого доступного типа носителей.

Пулы носителей для конкретных приложений создаются приложениями. Приложения создают пулы носителей для собственного использования в корневом пуле приложений. Эти пулы носителей имеют такие имена файловой системы. Только конечная точка имени содержит носитель и политику. Приложение может определять такие пулы, как \MyApp\Pool1 и \MyApp\Pool2. Это передает иерархию пользовательскому интерфейсу и избегает повторяющихся имен. Каждый уровень пула должен быть создан по отдельности; сначала MyApp, а затем Pool1 и Pool2, так же как папки и файлы.

Windows Server 2003: для создания пула носителей необходимо NTMS_CONTROL_ACCESS в корневом пуле и родительском пуле. Если дескриптор безопасности не указан, пул наследует acEs своего родительского пула (если родительский пул не является корневым пулом). Кроме того, у создателей и локальных системных учетных записей есть полный доступ к пулу. Если родительский пул является корневым пулом, его службы управления доступом не наследуются; Единственными acES в DACL являются полный доступ для учетных записей создателя и локальной системы.

Заметка

Заголовок ntmsapi.h определяет CreateNtmsMediaPool как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка ntmsapi.h
библиотеки Ntmsapi.lib
DLL Ntmsapi.dll

См. также

AllocateNtmsMedia

DeleteNtmsMediaPool

GetNtmsObjectSecurity

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

SetNtmsObjectSecurity