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


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

Функция WlanSetProfilePosition задает позицию одного указанного профиля в списке предпочтений.

Синтаксис

DWORD WlanSetProfilePosition(
  [in] HANDLE     hClientHandle,
  [in] const GUID *pInterfaceGuid,
  [in] LPCWSTR    strProfileName,
  [in] DWORD      dwPosition,
       PVOID      pReserved
);

Параметры

[in] hClientHandle

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

[in] pInterfaceGuid

Идентификатор GUID интерфейса.

[in] strProfileName

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

Windows XP с пакетом обновления 3 (SP3) и API беспроводной локальной сети для Windows XP с пакетом обновления 2 (SP2): Указанное имя должно совпадать с именем профиля, автоматически производным от SSID сети. Для сетевого профиля инфраструктуры необходимо указать SSID для имени профиля. Для нерегламентированного сетевого профиля предоставленным именем должен быть идентификатор SSID нерегламентированной сети, за которым следует -adhoc.

[in] dwPosition

Указывает позицию в списке предпочтений, на которую следует сместить профиль. 0 (ноль) соответствует первому профилю в списке, возвращаемому функцией WlanGetProfileList .

pReserved

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

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

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

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

Код возврата Описание
ERROR_ACCESS_DENIED
Вызывающий объект не имеет достаточных разрешений для изменения положения профиля.

Перед тем как WlanSetProfilePosition выполнит операцию, которая изменяет относительный порядок профилей всех пользователей в списке профилей или перемещает профиль всех пользователей на более низкую позицию в списке профилей, WlanSetProfilePosition извлекает список управления доступом на уровне пользователей (DACL), хранящийся в объекте wlan_secure_all_user_profiles_order . Если DACL не содержит запись управления доступом (ACE), которая предоставляет WLAN_WRITE_ACCESS разрешение маркеру доступа вызывающего потока, WlanSetProfilePosition возвращает ERROR_ACCESS_DENIED.

ERROR_INVALID_PARAMETER
hClientHandle имеет значение NULL или недопустимо, pInterfaceGuidNULL, strProfileNameNULL или pReserved — не NULL.
ERROR_INVALID_HANDLE
Дескриптор hClientHandle не найден в таблице дескрипторов.
RPC_STATUS
Различные коды ошибок.

Комментарии

Положение профилей групповой политики изменить нельзя.

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

Чтобы задать позицию профиля в командной строке, используйте команду netsh wlan set profileorder . Дополнительные сведения см. в разделе Команды Netsh для беспроводной локальной сети (wlan).

Windows XP с пакетом обновления 3 (SP3) и API беспроводной локальной сети для Windows XP с пакетом обновления 2 (SP2): Нерегламентированные профили отображаются после профилей инфраструктуры в списке профилей. Если вы попытаетесь разместить нерегламентированный профиль перед профилем инфраструктуры с помощью WlanSetProfilePosition, вызов WlanSetProfilePosition будет выполнен успешно, но служба беспроводной конфигурации изменит порядок списка профилей таким образом, чтобы нерегламентированный профиль располагался после всех профилей сети инфраструктуры.

Гостевые профили, профили с проверкой подлинности службы беспроводной подготовки (WPS) и профили с проверкой подлинности Wi-Fi защищенных Access-None (WPA-None) не поддерживаются. Любой такой профиль, который отображается в списке предпочтительных профилей, имеет фиксированную позицию в списке профилей. Это означает, что его положение не может быть изменено с помощью WlanSetProfilePosition и что его положение не зависит от изменений положения других профилей.

Для всех функций беспроводной локальной сети требуется guid интерфейса для беспроводного интерфейса при выполнении операций с профилем. При удалении беспроводного интерфейса его состояние удаляется из службы беспроводной локальной сети (WLANSVC) и операции с профилем невозможны.

Функция WlanSetProfilePosition может завершиться сбоем с ERROR_INVALID_PARAMETER , если беспроводной интерфейс, указанный в параметре pInterfaceGuid , был удален из системы (например, беспроводной адаптер USB, который был удален).

Требования

Требование Значение
Минимальная версия клиента Windows Vista, Windows XP с пакетом обновления 3 (SP3) [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header wlanapi.h (включая Wlanapi.h)
Библиотека Wlanapi.lib
DLL Wlanapi.dll
Распространяемые компоненты API беспроводной локальной сети для Windows XP с пакетом обновления 2 (SP2)

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

WlanGetProfile

WlanGetProfileList

WlanSetProfile

WlanSetProfileList