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


Функция WlanSaveTemporaryProfile (wlanapi.h)

Функция WlanSaveTemporaryProfile сохраняет временный профиль в хранилище профилей.

Синтаксис

DWORD WlanSaveTemporaryProfile(
  [in]           HANDLE     hClientHandle,
  [in]           const GUID *pInterfaceGuid,
  [in]           LPCWSTR    strProfileName,
  [in, optional] LPCWSTR    strAllUserProfileSecurity,
  [in]           DWORD      dwFlags,
  [in]           BOOL       bOverWrite,
                 PVOID      pReserved
);

Параметры

[in] hClientHandle

Дескриптор сеанса клиента, полученный при предыдущем вызове функции WlanOpenHandle .

[in] pInterfaceGuid

GUID интерфейса.

[in] strProfileName

Имя сохраняемого профиля. В именах профилей учитывается регистр. Эта строка должна быть завершена null.

[in, optional] strAllUserProfileSecurity

Задает строку дескриптора безопасности для профиля всех пользователей. По умолчанию для нового профиля всех пользователей все пользователи имеют доступ на запись в профиль. Дополнительные сведения о разрешениях профиля см. в разделе Примечания.

Если параметр dwFlags имеет значение WLAN_PROFILE_USER, этот параметр игнорируется.

Если этот параметр имеет значение NULL для профиля всех пользователей, используются разрешения по умолчанию.

Если этот параметр не имеет значение NULL для профиля всех пользователей, строка дескриптора безопасности, связанная с профилем, создается или изменяется после создания и анализа объекта дескриптора безопасности в виде строки.

[in] dwFlags

Указывает флаги, устанавливаемые в профиле. Флаги можно объединять.

Значение Значение
0
Профиль является профилем всех пользователей.
WLAN_PROFILE_USER
0x00000002
Профиль является профилем для каждого пользователя.
WLAN_PROFILE_CONNECTION_MODE_SET_BY_CLIENT
0x00010000
Профиль был создан клиентом.
WLAN_PROFILE_CONNECTION_MODE_AUTO
0x00020000
Профиль был создан модулем автоматической настройки.

[in] bOverWrite

Указывает, перезаписывает ли этот профиль существующий профиль. Если этот параметр имеет значение FALSE и профиль уже существует, существующий профиль не будет перезаписан и будет возвращена ошибка.

pReserved

Зарезервировано для последующего использования. Необходимо задать значение NULL.

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

Если функция выполнена успешно, возвращаемое значение будет ERROR_SUCCESS.

Если функция завершается сбоем, возвращаемое значение может быть одним из следующих кодов возврата.

Код возврата Описание
ERROR_INVALID_PARAMETER
Произошло одно из следующих условий:
  • hClientHandle имеет значение NULL или недопустимо.
  • pInterfaceGuid имеет значение NULL.
  • pReserved не имеет значение NULL.
  • Для dwFlags не задано сочетание одного или нескольких значений, указанных в таблице выше.
  • DwFlags имеет значение WLAN_PROFILE_CONNECTION_MODE_AUTO, а strProfileNameNULL.
ERROR_INVALID_HANDLE
Дескриптор hClientHandle не найден в таблице дескрипторов.
ERROR_NOT_SUPPORTED
Эта функция была вызвана из неподдерживаемой платформы. Это значение будет возвращено, если эта функция была вызвана из клиента Windows XP с пакетом обновления 3 (SP3) или API беспроводной локальной сети для Windows XP с пакетом обновления 2 (SP2).
RPC_STATUS
Различные коды ошибок.
ERROR_INVALID_STATE
Интерфейс в настоящее время не подключен с помощью временного профиля.

Комментарии

Временный профиль — это профиль, передаваемый в WlanConnect или созданный подсистемой обнаружения. Сетевое подключение можно установить с помощью временного профиля. При использовании этого API временный профиль и связанные данные пользователя сохраняются в хранилище профилей.

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

Профили всех пользователей имеют три связанных разрешения: чтение, запись и выполнение. Если у пользователя есть доступ на чтение, он может просматривать разрешения профиля. Если у пользователя есть доступ на выполнение, у него есть доступ на чтение, и пользователь также может подключаться к сети и отключаться от нее с помощью профиля. Если у пользователя есть доступ на запись, он имеет доступ на выполнение, а пользователь также может изменять и удалять разрешения, связанные с профилем.

Ниже описана процедура создания объекта дескриптора безопасности и его анализа в виде строки.

  1. Вызовите InitializeSecurityDescriptor , чтобы создать дескриптор безопасности в памяти.
  2. Вызовите SetSecurityDescriptorOwner.
  3. Вызовите Метод InitializeAcl , чтобы создать список управления доступом на уровне пользователей (DACL) в памяти.
  4. Вызовите Метод AddAccessAllowedAce или AddAccessDeniedAce , чтобы добавить записи управления доступом (ACE) в DACL. Задайте для параметра AccessMask одно из следующих побитовых сочетаний OR соответствующим образом:
    • WLAN_READ_ACCESS
    • WLAN_READ_ACCESS | WLAN_EXECUTE_ACCESS
    • WLAN_READ_ACCESS | WLAN_EXECUTE_ACCESS | WLAN_WRITE_ACCESS
  5. Вызовите Метод SetSecurityDescriptorDacl , чтобы добавить DACL в дескриптор безопасности.
  6. Вызовите ConvertSecurityDescriptorToStringSecurityDescriptor , чтобы преобразовать дескриптор в строку.
Строка, возвращаемая ConvertSecurityDescriptorToStringSecurityDescriptor , затем может использоваться в качестве значения параметра strAllUserProfileSecurity при вызове WlanSaveTemporaryProfile.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header wlanapi.h (включая Wlanapi.h)
Библиотека Wlanapi.lib
DLL Wlanapi.dll

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

Собственные разрешения API Wi-Fi