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

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

[in] lpPoolName

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

[in] lpMediaType

Идентификатор типа носителя в этом пуле носителей. Используйте функцию EnumerateNtmsObject , чтобы получить список доступных типов мультимедиа и их атрибутов. Приложение может передать указатель 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
Функция выполнена успешно.

Комментарии

Пулы мультимедиа Free, Unrecognized и Import создаются RSM и не могут быть созданы с помощью функции CreateNtmsMediaPool .

Пулы мультимедиа RSM организованы в виде иерархии, разделенной символом "". Пулы мультимедиа Application, Free, Unrecognized и Import находятся в корне иерархии. RSM создает пулы Free, Unrecognized и Import и управляет ими. RSM создает бесплатный пул носителей для каждого доступного типа носителей.

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

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

Примечание

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

Требования

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

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

AllocateNtmsMedia

DeleteNtmsMediaPool

GetNtmsObjectSecurity

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

SetNtmsObjectSecurity