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


Функция WlxLoggedOutSAS (winwlx.h)

[Функция WlxLoggedOutSAS больше не доступна для использования с Windows Server 2008 и Windows Vista.]

Функция WlxLoggedOutSAS должна быть реализована с помощью замены библиотеки DLL GINA . Winlogon вызывает эту функцию, когда получает событие sas , когда пользователь не вошел в систему.

Примечание Библиотеки DLL GINA игнорируются в Windows Vista.
 

Синтаксис

int WlxLoggedOutSAS(
  [in]      PVOID                pWlxContext,
  [in]      DWORD                dwSasType,
  [out]     PLUID                pAuthenticationId,
  [in, out] PSID                 pLogonSid,
  [out]     PDWORD               pdwOptions,
  [out]     PHANDLE              phToken,
  [out]     PWLX_MPR_NOTIFY_INFO pNprNotifyInfo,
  [out]     PVOID                *pProfile
);

Параметры

[in] pWlxContext

Указатель на контекст GINA, связанный с этой станцией окна. GINA возвращает это значение контекста, когда Winlogon вызывает WlxInitialize для этой станции.

[in] dwSasType

Указывает тип возникного SAS. Значения от нуля до WLX_SAS_TYPE_MAX_MSFT_VALUE зарезервированы для определения стандартных типов SAS Майкрософт. Разработчики GINA могут определять дополнительные типы SAS, используя значения, превышающие WLX_SAS_TYPE_MAX_MSFT_VALUE.

Следующие типы SAS предопределяются.

Значение Значение
WLX_SAS_TYPE_CTRL_ALT_DEL
Указывает, что пользователь ввел стандартный SAS CTRL+ALT+DEL.
WLX_SAS_TYPE_SC_INSERT
Указывает, что смарт-карта была вставлена в совместимое устройство.
WLX_SAS_TYPE_SC_REMOVE
Указывает, что смарт-карта удалена с совместимого устройства.
WLX_SAS_TYPE_TIMEOUT
Указывает, что в течение указанного периода ожидания пользователь не получал никаких входных данных.

[out] pAuthenticationId

Указывает идентификатор проверки подлинности, связанный с текущим сеансом входа. Это значение можно получить, вызвав Метод GetTokenInformation , чтобы получить структуру TOKEN_STATISTICS для маркера, возвращаемого функцией LogonUser .

[in, out] pLogonSid

При входных данных этот параметр указывает на идентификатор безопасности (SID), уникальный для текущего сеанса входа. Winlogon использует этот идентификатор безопасности для изменения защиты на оконной станции и рабочем столе приложения, чтобы новый пользователь, выполнивший вход, смог получить к ним доступ.

В выходных данных Winlogon предоставляет идентификатор безопасности. Вы также можете получить идентификатор безопасности с помощью функции GetTokenInformation , чтобы получить структуру TOKEN_GROUPS для маркера, возвращаемого функцией LogonUser . Для этого выполните поиск в массиве, возвращенном в структуре TOKEN_GROUPS для группы, с помощью атрибута SE_GROUP_LOGON_ID.

[out] pdwOptions

Указатель на DWORD , содержащий набор параметров входа. Определен следующий параметр.

Значение Значение
WLX_LOGON_OPT_NO_PROFILE
Указывает, что Winlogon не должен загружать профиль для вошедшего в систему пользователя. Либо библиотека DLL GINA позаботится об этом действии, либо пользователю не нужен профиль.

[out] phToken

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

Если вам нужен этот дескриптор после вызова функции WlxLogoff , создайте дубликат дескриптора, прежде чем возвращать его в Winlogon.

[out] pNprNotifyInfo

Указатель на структуру WLX_MPR_NOTIFY_INFO , содержащую сведения о домене, имени пользователя и пароле для пользователя. Winlogon будет использовать эти сведения для предоставления сетевым поставщикам сведений об идентификации и проверке подлинности.

GINA не требуется для возврата сведений о пароле. Все поля NULL в структуре будут игнорироваться Winlogon. Используйте LocalAlloc для выделения каждой строки; Winlogon освободит их, когда они больше не нужны.

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

Сведения о защите паролей см. в разделе Обработка паролей.

[out] pProfile

После успешной проверки подлинности параметр pProfile указывает на WLX_PROFILE_V1_0 или структуру WLX_PROFILE_V2_0 . Первый параметр DWORD в структуре указывает, какая это структура. Winlogon использует эту структуру для загрузки профиля пользователя, вошедшего в систему, и освобождает память, связанную со структурой, когда она больше не нужна.

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

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

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

Код возврата Описание
WLX_SAS_ACTION_LOGON
Указывает, что пользователь вошел в систему.
WLX_SAS_ACTION_NONE
Указывает, что зарегистрированная попытка была неудачной или отмененной.
WLX_SAS_ACTION_SHUTDOWN
Указывает, что пользователь запросил завершение работы системы.

Комментарии

Перед вызовом WlxLoggedOutSAS Winlogon устанавливает состояние рабочего стола, чтобы текущий рабочий стол был рабочим столом Winlogon, а состояние рабочей станции — так, чтобы рабочий стол был заблокирован.

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

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winwlx.h

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

WlxActivateUserShell

WlxInitialize