Функция CreateAppContainerProfile (userenv.h)

Создает профиль для каждого пользователя и приложения для AppContainer.

Синтаксис

USERENVAPI HRESULT CreateAppContainerProfile(
  [in]  PCWSTR              pszAppContainerName,
  [in]  PCWSTR              pszDisplayName,
  [in]  PCWSTR              pszDescription,
  [in]  PSID_AND_ATTRIBUTES pCapabilities,
  [in]  DWORD               dwCapabilityCount,
  [out] PSID                *ppSidAppContainerSid
);

Параметры

[in] pszAppContainerName

Имя контейнера приложения. Чтобы обеспечить уникальность, эта строка в идеале должна содержать имя приложения и издателя. Длина этой строки может составлять до 64 символов. Кроме того, он должен соответствовать шаблону, описанному регулярным выражением "[-_. A-Za-z0-9]+".

[in] pszDisplayName

Отображаемое имя. Длина этой строки может составлять до 512 символов.

[in] pszDescription

Описание контейнера приложения. Эта строка может содержать до 2048 символов.

[in] pCapabilities

Идентификаторы безопасности, определяющие запрошенные возможности UWP (если применимо).

[in] dwCapabilityCount

Количество идентификаторов безопасности в pCapabilities.

[out] ppSidAppContainerSid

Идентификатор безопасности для профиля. Этот буфер должен быть освобожден с помощью функции FreeSid.

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

Если эта функция завершается успешно, она возвращает стандартный код HRESULT, включая следующее:

Код возврата Описание
S_OK
Хранилище данных создано успешно.
E_ACCESSDENIED
Вызывающий объект не имеет разрешения на создание профиля.
HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS)
Хранилище данных приложения уже существует.
E_INVALIDARG
Имя контейнера равно NULL или имя контейнера, отображаемое имя или строки описания превышают указанные ограничения по длине.

Комментарии

Профиль содержит папки и хранилище реестра для каждого пользователя и приложения. В папках есть списки управления доступом, которые запрещают доступ к ним другим пользователям и приложениям. Доступ к этим папкам можно получить, вызвав SHGetKnownFolderPath.

Функция создает профиль для текущего пользователя. Чтобы создать профиль от имени другого пользователя, необходимо олицетворить этого пользователя. Чтобы создать профили для нескольких пользователей одного приложения, необходимо вызвать CreateAppContainerProfile для каждого пользователя.

Требования

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

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