Функции проверки подлинности

Функции проверки подлинности классифицируются в соответствии с использованием следующим образом:

Функции SSPI

Функции интерфейса поставщика поддержки безопасности (SSPI) делятся на следующие основные категории.

Управление пакетами

Функции управления пакетами SSPI инициируют пакет безопасности, перечисляют доступные пакеты и запрашивают атрибуты пакета безопасности. Следующие функции SSPI предоставляют службы управления для пакетов безопасности.

Компонент Описание
EnumerateSecurityPackages Список доступных пакетов безопасности и их возможностей.
InitSecurityInterface Извлекает указатель на таблицу диспетчеризации поставщика поддержки безопасности (SSP).
QuerySecurityPackageInfo Извлекает сведения об указанном пакете безопасности. Эти сведения включают границы размеров сведений о проверке подлинности, учетных данных и контекстов.

Управление учетными данными

Функции управления учетными данными SSPI предоставляют дескриптор учетных данных , ссылку на непрозрачный объект безопасности для доступа к субъекту. Объект безопасности непрозрачн, так как приложение имеет доступ только к дескриптору, а не к фактическому содержимому структуры.

Все ссылки на содержимое контекста учетных данных проходят через дескриптор объекта, а пакет безопасности разыменовывает дескриптор для доступа к конкретным учетным данным. Дескриптор учетных данных — это 64-разрядное значение между {0x00000000, 0x00000000} и {0xFFFFFFFF, 0xFFFFFFFE}.

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

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

Следующие функции используются с управлением учетными данными.

Компонент Описание
AcquireCredentialsHandle (Общие) Получает дескриптор для уже существующих учетных данных указанного участника.
ExportSecurityContext Экспортирует контекст безопасности в буфер контекста.
FreeCredentialsHandle Освобождает дескриптор учетных данных и связанные ресурсы.
ImportSecurityContext Импортирует контекст безопасности, экспортируемый с помощью ExportSecurityContext , в текущий процесс.
QueryCredentialsAttributes Извлекает атрибутыучетных данных, например имя, связанное с учетными данными.

Управление контекстом

Функции управления контекстом SSPI создают и используют контексты безопасности.

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

Контексты безопасности — это непрозрачные объекты безопасности. Сведения в контексте безопасности недоступны для приложения. Функции управления контекстом создают и используют маркеры контекста, а пакет безопасности разыменовывает дескриптор контекста для доступа к его содержимому безопасности.

Дескриптор контекста — это 64-разрядное значение между {0x00000000, 0x00000000} и {0xFFFFFFFF, 0xFFFFFFFE}.

Следующие функции используются с управлением контекстом.

Компонент Описание
AcceptSecurityContext (Общие) Используется сервером для создания контекста безопасности на основе непрозрачного сообщения, полученного от клиента.
ApplyControlToken Применяет дополнительное сообщение безопасности к существующему контексту безопасности.
CompleteAuthToken Завершает маркер проверки подлинности. Эта функция используется протоколами, такими как DCE, которые необходимо пересмотреть сведения о безопасности после того, как транспортное приложение обновило некоторые параметры сообщения.
DeleteSecurityContext Освобождает контекст безопасности и связанные ресурсы.
FreeContextBuffer Освобождает буфер памяти, выделенный пакетом безопасности.
ImpersonateSecurityContext Олицетворяет контекст безопасности, который отображается как клиент в системе.
InitializeSecurityContext (General) Используется клиентом для запуска контекста безопасности путем создания непрозрачного сообщения, передаваемого на сервер.
QueryContextAttributes (общие) Позволяет транспортному приложению запрашивать пакет безопасности для определенных атрибутовконтекста безопасности.
QuerySecurityContextToken Получает маркер доступа для контекста безопасности клиента и использует его напрямую.
SetContextAttributes Позволяет транспортному приложению задавать атрибутыконтекста безопасности для пакета безопасности. Эта функция поддерживается только пакетом безопасности Schannel.
RevertSecurityContext Позволяет пакету безопасности прекратить олицетворение вызывающего объекта и восстановить собственный контекст безопасности.

Поддержка сообщений

Функции поддержки сообщений SSPI позволяют приложению передавать и получать сообщения, устойчивые к незаконному применению, а также шифровать и расшифровывать сообщения. Эти функции работают с одним или несколькими буферами, содержащими сообщение и с контекстом безопасности , созданным функциями управления контекстом . Поведение функций зависит от того, используется ли контекст соединения, датаграммы или потока. Описание этих различий см. в разделе "Семантика контекста SSPI".

Следующие функции обеспечивают поддержку безопасности сообщений.

Компонент Описание
DecryptMessage (общие) Расшифровывает зашифрованное сообщение с помощью ключа сеанса из контекста безопасности.
EncryptMessage (общие) Шифрует сообщение с помощью ключа сеанса из контекста безопасности.
MakeSignature Создает криптографическую контрольную сумму сообщения, а также включает сведения о виртуализации для предотвращения потери или вставки сообщений.
VerifySignature Проверяет подпись полученного сообщения, подписанного отправителем с помощью функции MakeSignature .

Функции, реализованные поставщиком служб или поставщиком облачных решений

Следующие функции реализуются пакетами безопасности, содержащимися в пакетах поддержки безопасностиProviderAuthentication/ (SSP/APs).

В следующих таблицах первый набор функций реализуется с помощью пакетов безопасности Windows XP SSP/AP. Второй набор функций реализуется только пакетами безопасности SSP/AP.

Локальный центр безопасности (LSA) обращается к этим функциям с помощью структуры SECPKG_FUNCTION_TABLE, предоставляемой функцией SpLsaModeInitialize SSP/AP.

Следующие функции реализуются всеми пакетами проверки подлинности.

Компонент Описание
LsaApCallPackage Вызывается локальным центром безопасности (LSA), когда приложение входа с доверенным подключением к LSA вызывает функцию LsaCallAuthenticationPackage и указывает идентификатор пакета проверки подлинности.
LsaApCallPackagePassthrough Функция диспетчеризации для запросов сквозного входа, отправляемых в функцию LsaCallAuthenticationPackage .
LsaApCallPackageUntrusted Вызывается локальным центром безопасности (LSA), когда приложение с ненадежным подключением к LSA вызывает функцию LsaCallAuthenticationPackage и указывает идентификатор пакета проверки подлинности.
LsaApInitializePackage Вызывается один раз локальным центром безопасности (LSA) во время инициализации системы, чтобы предоставить пакет проверки подлинности возможность инициализировать себя.
LsaApLogonTerminated Используется для уведомления пакета проверки подлинности при завершении сеанса входа. Сеанс входа завершается, когда последний маркер, ссылающийся на сеанс входа, удаляется.
LsaApLogonUser Проверяет подлинность учетных данных для входа пользователя.
LsaApLogonUserEx Проверяет подлинность учетных данных для входа пользователя.
LsaApLogonUserEx2 Используется для проверки подлинности попытки входа пользователя в систему при первоначальном входе пользователя. Для пользователя устанавливается новый сеанс входа, и возвращаются сведения о проверке для пользователя.

Следующие дополнительные функции реализуются пакетами безопасности SSP/AP.

Компонент Описание
SpAcceptCredentials Вызывается локальным центром безопасности (LSA) для передачи пакета безопасности любых учетных данных , хранящихся для субъекта безопасности, прошедшего проверку подлинности.
SpAcceptLsaModeContext Функция диспетчеризации сервера, используемая для создания контекста безопасности , совместно используемого сервером и клиентом.
SpAcquireCredentialsHandle Вызывается для получения дескриптора учетных данных субъекта.
SpAddCredentials Используется для добавления учетных данных для субъекта безопасности.
SpApplyControlToken Применяет маркер управления к контексту безопасности. Эта функция в настоящее время не вызывается локальным центром безопасности (LSA).
SpDeleteContext Удаляет контекст безопасности.
SpDeleteCredentials Удаляет учетные данные из списка основных или дополнительных учетных данных пакета безопасности.
SpFreeCredentialsHandle Освобождает учетные данные, полученные путем вызова функции SpAcquireCredentialsHandle .
SpGetCredentials Возвращает учетные данные пользователя.
SpGetExtendedInformation Предоставляет расширенные сведения о пакете безопасности.
SpGetInfo Предоставляет общие сведения о пакете безопасности, например его имя и возможности.
SpGetUserInfo Извлекает сведения о сеансе входа.
SPInitialize Вызывается один раз местным центром безопасности (LSA) для предоставления пакета безопасности с общими сведениями о безопасности и таблицей диспетчеризации функций поддержки.
SpInitLsaModeContext Функция диспетчеризации клиента, используемая для установления контекста безопасности между сервером и клиентом.
SpQueryContextAttributes Извлекает атрибуты контекста безопасности.
SpQueryCredentialsAttributes Извлекает атрибуты для учетных данных.
SpSaveCredentials Сохраняет дополнительные учетные данные в объекте пользователя.
SpSetExtendedInformation Задает расширенные сведения о пакете безопасности.
SpShutdown Выполняет любую очистку, необходимую до выгрузки SSP/AP.
SslCrackCertificate Возвращает структуру X509Certificate со сведениями, содержащимися в указанном BLOB-объекте сертификата.
SslEmptyCache Удаляет указанную строку из кэша Schannel.
SslFreeCertificate Освобождает сертификат, выделенный предыдущим вызовом функции SslCrackCertificate .

Функции, реализованные поставщиком облачных служб и APS в пользовательском режиме

Следующие функции реализуются пакетами поддержки безопасностиProviderAuthentication/ (SSP/APs), которые можно загрузить в клиентские и серверные приложения.

SSP/AP указывает, что он реализует функции пользовательского режима, возвращая значение TRUE в параметре MappedContext функций SpInitLsaModeContext и SpAcceptLsaModeContext . Функция SpInitLsaModeContext используется клиентской стороной приложения уровня транспорта, а spAcceptLsaModeContext используется серверной стороной.

Загрузка SSP/AP в клиентский процесс или серверный процесс обрабатывается библиотекой DLL поставщика безопасности либо Security.dll, либо Secur32.dll. Библиотека DLL поставщика безопасности загружает SSP/AP, найдя адрес функции SpUserModeInitialize , реализованной SSP/AP и вызвав ее. Эта функция возвращает набор таблиц, содержащих указатели на функции пользовательского режима, реализованные в каждом пакете безопасности.

После загрузки SSP/AP в клиент или серверный процесс локальный центр безопасности (LSA) скопирует сведения о контексте безопасности (возвращенные SpInitLsaModeContext или SpAcceptLsaModeContext) и любые дополнительные контекстные данные, связанные с процессом, и вызовет функцию SpInitUserModeContext пакета безопасности.

Клиентские и серверные приложения получают доступ к функциям пользовательского режима, вызывая функции интерфейса поставщика поддержки безопасности (SSPI). Функции SSPI сопоставляются библиотекой DLL поставщика безопасности с помощью SECPKG_USER_FUNCTION_TABLE , предоставленной пакетом.

Компонент Описание
SpCompleteAuthToken Завершает маркер проверки подлинности.
Реализует функцию SSPI CompleteAuthToken .
SpDeleteContext Удаляет контекст безопасности.
Реализует функцию SSPI DeleteSecurityContext .
SpExportSecurityContext Экспортирует контекст безопасности в другой процесс.
Реализует функцию SSPI ExportSecurityContext .
SpFormatCredentials Форматирует учетные данные для хранения в объекте пользователя.
SpGetContextToken Получает маркер для олицетворения.
Используется функцией SSPI ImpersonateSecurityContext .
SpImportSecurityContext Импортирует контекст безопасности из другого процесса.
Реализует функцию SSPI ImportSecurityContext .
SpInitUserModeContext Создает контекст безопасности в пользовательском режиме из упакованного контекста локального центра безопасности (LSA).
SpInstanceInit Инициализирует пакеты безопасности в пользовательском режиме в SSP/AP.
SpMakeSignature Создает сигнатуру на основе указанного сообщения и контекста безопасности.
Реализует функцию SSPI MakeSignature .
SpMarshallSupplementalCreds Преобразует дополнительные учетные данные из открытого формата в формат, подходящий для вызовов локальных процедур.
SpQueryContextAttributes Извлекает атрибуты контекста безопасности.
Реализует функцию SSPI QueryContextAttributes (General).
SpSealMessage Шифрует сообщение, обменяемое между клиентом и сервером.
Реализует функцию SSPI EncryptMessage (General).
SpUnsealMessage Расшифровывает сообщение, ранее зашифрованное с помощью функции SpSealMessage .
Реализует функцию SSPI DecryptMessage (General).
SpUserModeInitialize Вызывается при загрузке библиотеки DLL пакетаподдержки безопасности/ (SSP/AP) в пространство обработки клиентского или серверного приложения. Эта функция предоставляет таблицы SECPKG_USER_FUNCTION_TABLE для каждого пакета безопасности в библиотеке DLL SSP/AP.
SpVerifySignature Проверяет правильность получения сообщения в соответствии с подписью.
Реализует функцию SSPI VerifySignature .

Функции LSA, вызываемые SSP/APs

Локальный центр безопасности (LSA) предоставляет следующие функции для пакетов безопасности, развернутых в пакетахпоставщика/ поддержки безопасности (SSP/APs). Функции доступны в структуре LSA_SECPKG_FUNCTION_TABLE и могут вызываться во время загрузки SSP/AP в пространство процессов LSA. Для всех APS доступны следующие функции.

Компонент Описание
AddCredential Добавляет учетные данные пользователя.
AllocateClientBuffer Выделяет память в адресном пространстве клиента пакета.
AllocateLsaHeap Выделяет память в куче. Ожидается, что некоторые сведения, передаваемые обратно в LSA, будут выделены с помощью этой функции.
CopyFromClientBuffer Копирует сведения из адресного пространства клиентского процесса в буфер в текущем процессе.
CopyToClientBuffer Копирует сведения из буфера в текущем процессе в адресное пространство клиентского процесса.
CreateLogonSession Создает сеансы входа.
DeleteCredential Удаляет учетные данные пользователя.
DeleteLogonSession Удаляет сеанс входа в систему LSA.
FreeClientBuffer Освобождает память в адресном пространстве клиента пакета.
FreeLsaHeap Освобождает память кучи, ранее выделенную allocateLsaHeap.
GetCredentials Извлекает учетные данные, связанные с сеансом входа.

Для поставщиков служб или APS доступны следующие функции.

Компонент Описание
AllocateSharedMemory Выделяет раздел общей памяти.
AuditAccountLogon Создает записи аудита для попыток входа.
AuditLogon Создает журнал аудита для сеанса входа.
CallPackage Вызывает пакет.
CallPackageEx Вызывает другой пакет.
CallPackagePassthrough Вызывает один пакет безопасности из другого.
CancelNotification Отменяет уведомление для специальных событий.
ClientCallback Позволяет пакету безопасности вызывать функцию в процессе клиента.
Прототип функции ClientCallback см. в разделе "Прототип функции ClientCallback".
CloseSamUser Закрывает дескриптор записи базы данных Диспетчера учетных записей безопасности.
ConvertAuthDataToken Преобразует данные авторизации в маркер пользователя.
CrackSingleName Преобразует имя из одного формата в другой.
CreateSharedMemory Создает раздел памяти, к которой предоставлен общий доступ между клиентами и поставщиком облачных служб или AP.
CreateThread Создает новый поток.
CreateToken Создает токен.
DeleteSharedMemory Удаляет раздел общей памяти.
DuplicateHandle Дублирует дескриптор.
FreeReturnBuffer Освобождает буфер, выделенный LSA.
FreeSharedMemory Освобождает раздел общей памяти.
GetAuthDataForUser Извлекает данные авторизации для учетной записи пользователя.
GetCallInfo Извлекает сведения о последнем вызове функции.
GetClientInfo Извлекает сведения о пользовательском процессе пакета безопасности.
GetUserAuthData Возвращает данные авторизации для пользователя.
GetUserCredentials Еще не реализовано.
ImpersonateClient Вызывается пакетами безопасности для олицетворения пользователя пакета.
MapBuffer Карты структуру SecBuffer в адресное пространство пакета поставщика поддержки/ безопасности (SSP/AP).
OpenSamUser Извлекает дескриптор для учетной записи пользователя в базе данных диспетчера учетных записей безопасности (SAM).
RegisterNotification Предоставляет механизм уведомления пакета безопасности . Уведомление может происходить через фиксированные интервалы, когда объект события сигнализирует или во время определенных системных событий.
SaveSupplementalCredentials Является устаревшей. Не используйте.
UnloadPackage Выгружает пакет проверки подлинностипоставщика/ поддержки безопасности (SSP/AP).
UpdateCredentials Предоставляет механизм для одного пакета безопасности для уведомления других пакетов о том, что учетные данные для сеанса входа были изменены.

Функции LSA, вызываемые SSP/APS в пользовательском режиме

Пакет безопасности в пакете поставщика /поддержки безопасности (SSP/AP), выполняемом в пользовательском режиме, может использовать указатели в таблице SECPKG_DLL_FUNCTIONS для доступа к следующим функциям.

Компонент Состояние PSDK
AllocateHeap Выделяет память для буферов, возвращаемых локальному центру безопасности (LSA).
FreeHeap Освобождает память, которая была ранее выделена с помощью AllocateHeap.
RegisterCallback Регистрирует функции обратного вызова в пользовательском режиме.

Функции экспорта GINA

Библиотека DLL GINA должна экспортировать следующие функции.

Примечание

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

Компонент Описание
WlxActivateUserShell Активирует программу пользовательской оболочки.
WlxDisplayLockedNotice Позволяет GINA отображать сведения о блокировке, например, кто заблокировал рабочую станцию и когда она была заблокирована.
WlxDisplaySASNotice Winlogon вызывает эту функцию, если пользователь не вошел в систему.
WlxDisplayStatusMessage Winlogon вызывает эту функцию, когда библиотека DLL GINA должна отобразить сообщение.
WlxGetConsoleSwitchCredentials Winlogon вызывает эту функцию для чтения учетных данных пользователя, вошедшего в систему, для прозрачного переноса их в целевой сеанс.
WlxGetStatusMessage Winlogon вызывает эту функцию, чтобы получить сообщение о состоянии, отображаемое библиотекой DLL GINA.
WlxInitialize Winlogon вызывает эту функцию один раз для каждой станции окна, присутствующих на компьютере. В настоящее время операционная система поддерживает одну станцию окон на рабочую станцию.
WlxIsLockOk Winlogon вызывает эту функцию перед попыткой заблокировать рабочую станцию.
WlxIsLogoffOk Winlogon вызывает эту функцию, когда пользователь инициирует операцию выхода.
WlxLoggedOnSAS Winlogon вызывает эту функцию, когда она получает событие безопасной последовательности внимания (SAS), когда пользователь вошел в систему и рабочая станция не заблокирована.
WlxLoggedOutSAS Winlogon вызывает эту функцию, когда она получает событие безопасной последовательности внимания (SAS), пока пользователь не вошел в систему.
WlxLogoff Winlogon вызывает эту функцию, чтобы уведомить GINA об операции выхода на этой рабочей станции, что позволяет GINA выполнять любые операции выхода, которые могут потребоваться.
WlxNegotiate Функция WlxNegotiate должна быть реализована путем замены библиотеки GINA DLL. Это первый вызов, выполненный Winlogon в библиотеке DLL GINA. WlxNegotiate позволяет GINA проверить, поддерживает ли она установленную версию Winlogon.
WlxNetworkProviderLoad Winlogon вызывает эту функцию для сбора допустимых сведений о проверке подлинности и идентификации.
WlxRemoveStatusMessage Winlogon вызывает эту функцию, чтобы сообщить библиотеке DLL GINA прекратить отображение сообщения о состоянии.
WlxScreenSaverNotify Winlogon вызывает эту функцию непосредственно перед активацией средства сохранения экрана, позволяя GINA взаимодействовать с программой заставки экрана.
WlxShutdown Winlogon вызывает эту функцию незадолго до завершения работы, позволяя GINA выполнять любые задачи завершения работы, такие как извлечение смарт-карты из средства чтения.
WlxStartApplication Winlogon вызывает эту функцию, когда системе требуется запустить приложение в контексте пользователя.
WlxWkstaLockedSAS Winlogon вызывает эту функцию, когда она получает последовательность безопасного внимания (SAS) и рабочая станция заблокирована.

Пользовательские функции входа

Следующие функции предоставляют возможность входа в систему пользователя.

Компонент Описание
Logonuser Пытается войти пользователя на локальный компьютер.
LogonUserEx Пытается войти пользователя на локальный компьютер. Эта функция является расширенной версией функции LogonUser и извлекает сведения об идентификаторе безопасности пользователя (SID), профиле и квотах, зарегистрированных в системе.
LogonUserExExW Функция LogonUserExExW пытается войти пользователя на локальный компьютер. Эта функция не объявлена в общедоступном заголовке и не имеет связанной библиотеки импорта. Для динамической связи с Advapi32.dll необходимо использовать функции LoadLibrary и GetProcAddress .

Функции поддержки Winlogon

ДЖИНА Библиотеки DLL могут вызывать следующие функции поддержки Winlogon .

Примечание

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

Компонент Вызывается GINA
WlxAssignShellProtection Вызывается GINA для назначения защиты программе оболочки только что выполнившего вход пользователя.
WlxChangePasswordNotify Вызывается GINA , чтобы указать, что он изменил пароль.
WlxChangePasswordNotifyEx Вызывается GINA , чтобы сообщить определенному поставщику сети (или всем поставщикам сети), что пароль изменился.
WlxCloseUserDesktop Вызывается GINA , чтобы закрыть альтернативный рабочий стол пользователя и очистить после закрытия рабочего стола.
WlxCreateUserDesktop Вызывается GINA для создания альтернативных рабочих столов приложений для пользователя.
WlxDialogBox Вызывается GINA для создания модального диалогового окна из шаблона диалогового окна.
WlxDialogBoxIndirect Вызывается GINA для создания модального диалогового окна из шаблона диалогового окна в памяти.
WlxDialogBoxIndirectParam Вызывается GINA для инициализации элементов управления диалоговым окном, а затем создает модальное диалоговое окно из шаблона диалогового окна в памяти.
WlxDialogBoxParam Вызывается GINA для инициализации элементов управления диалоговым окном, а затем создает модальное диалоговое окно из ресурса шаблона диалогового окна.
WlxDisconnect Вызывается заменой библиотеки DLL GINA, если службы терминалов включены. GINA вызывает эту функцию для отключения от сетевого сеанса служб терминалов.
WlxGetOption Вызывается GINA для получения текущего значения параметра.
WlxGetSourceDesktop Вызывается GINA для определения имени и дескриптора рабочего стола, который был текущим до переключения Winlogon на рабочий стол Winlogon .
WlxMessageBox Вызывается GINA для создания, отображения и работы с окном сообщения.
WlxQueryClientCredentials Вызывается заменой библиотеки DLL GINA, если службы терминалов включены. GINA вызывает эту функцию для получения учетных данных удаленных клиентов служб терминалов, которые не используют лицензию соединителя Интернета.
WlxQueryConsoleSwitchCredentials Вызывается GINA для чтения учетных данных, передаваемых из Winlogon временного сеанса в Winlogon целевого сеанса.
WlxQueryInetConnectorCredentials Вызывается заменой библиотеки DLL GINA, если службы терминалов включены. GINA вызывает эту функцию, чтобы определить, использует ли сервер терминалов лицензирование интернет-соединителя и извлекает данные учетных данных .
WlxQueryTerminalServicesData Вызывается GINA для получения сведений о конфигурации пользователей служб терминалов после входа пользователя.
WlxSasNotify Вызывается GINA для уведомления Winlogon о событии безопасной последовательности внимания (SAS).
WlxSetContextPointer Вызывается GINA для указания указателя контекста , передаваемого Winlogon в качестве первого параметра для всех будущих вызовов функций GINA.
WlxSetOption Вызывается GINA , чтобы задать значение параметра.
WlxSetReturnDesktop Вызывается GINA , чтобы указать альтернативный рабочий стол приложения, на который Будет переключен Winlogon при завершении текущей функции обработки событий последовательности безопасного внимания (SAS).
WlxSetTimeout Вызывается GINA для изменения времени ожидания, связанного с диалоговым окном. Время ожидания по умолчанию — две минуты.
WlxSwitchDesktopToUser Вызывается GINA для переключения на рабочий стол приложения.
WlxSwitchDesktopToWinlogon Разрешает переключение библиотеки DLL GINA на рабочий стол Winlogon .
WlxUseCtrlAltDel Вызывается GINA , чтобы сообщить Winlogon использовать стандартное сочетание клавиш CTRL+ALT+DEL в качестве безопасной последовательности внимания (SAS).
WlxWin31Migrate Вызывается заменой библиотеки DLL GINA, если службы терминалов включены. GINA вызывает эту функцию для завершения настройки клиента служб терминалов.

Функции поставщика сети

В следующих разделах содержатся справочные сведения о функциях поставщика сети.

Раздел Описание
Функции, реализованные поставщиками сети Подробные функции, которые могут быть реализованы поставщиками сети.
Функции поддержки Сведения о функции, реализованной операционной системой и вызываемой поставщиками сети.
Функции уведомлений о подключении Подробные функции, реализованные приложениями, которые должны получать уведомления от маршрутизатора нескольких поставщиков (MPR) при подключении или отключении сетевого ресурса.

Функции, реализованные поставщиками сети

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

Компонент Описание
NPAddConnection Подключает локальное устройство к сетевому ресурсу.
NPAddConnection3 Подключает локальное устройство к сетевому ресурсу.
NPCancelConnection Отключает сетевое подключение.
NPCloseEnum Закрывает перечисление.
NPDeviceMode Указывает родительское окно устройства. В этом окне есть все диалоговые окна, исходящие с устройства.
NPDirectoryNotify Уведомляет поставщика сети о определенных операциях каталогов.
NPEnumResource Выполняет перечисление на основе дескриптора, возвращаемого NPOpenEnum.
NPFormatNetworkName Форматирует сетевое имя в формате, зависяющем от поставщика, для отображения в элементе управления.
NPGetCaps Возвращает сведения о том, какие службы поддерживаются в сети.
NPGetConnection Извлекает сведения о подключении.
NPGetConnection3 Извлекает сведения о сетевом подключении, даже если оно в настоящее время отключено.
NPGetConnectionPerformance Возвращает сведения о ожидаемой производительности подключения, используемого для доступа к сетевому ресурсу. Запрос может быть только для сетевого ресурса, подключенного в данный момент.
NPGetDirectoryType Определяет тип сетевого каталога.
NPGetPropertyText Извлекает имена кнопок, добавляемых в диалоговое окно свойства для сетевого ресурса.
NPGetResourceInformation Отделяет часть сетевого ресурса, доступного через API WNet, от части, к ней, доступ к ней через API, относящиеся к типу ресурса.
NPGetResourceParent Извлекает родительский объект указанного сетевого ресурса в иерархии обзора.
NPGetUniversalName Извлекает универсальное имя сетевого ресурса. Функция NPGetUniversalName может получить это универсальное имя в формате UNC или в старом формате удаленного имени.
NPGetUser Извлекает значение текущего имени пользователя по умолчанию или имени пользователя, используемого для установления сетевого подключения.
NPOpenEnum Открывает перечисление сетевых ресурсов или существующих подключений. Чтобы получить допустимый дескриптор перечисления, необходимо вызвать функцию NPOpenEnum .
NPPropertyDialog Вызывается, когда пользователь нажимает кнопку, добавленную с помощью функции NPPropertyDialog . Функция NPPropertyDialog вызывается только для свойств сети файлов и каталогов.
NPSearchDialog Позволяет поставщикам сети предоставлять собственную форму просмотра и поиска за пределами иерархического представления, представленного в диалоговом окне "Подключение ".

Функции поддержки

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

Компонент Описание
WNetSetLastError Задает расширенные сведения об ошибке. Сетевые поставщики должны вызывать эту функцию вместо SetLastError.

Функции уведомления о подключении

Следующие функции реализуются приложениями, которые должны получать уведомления от маршрутизатора нескольких поставщиков (MPR) при подключении или отключении сетевого ресурса. Дополнительные сведения о том, как написать приложение, которое получает такие уведомления, см. в разделе "Получение уведомлений о подключении".

Компонент Описание
AddConnectNotify Вызывается до и после каждой операции добавления подключения (WNetAddConnection, WNetAddConnection2 и WNetAddConnection3).
CancelConnectNotify Вызывается до и после каждой операции отмены подключения (WNetCancelConnection или WNetCancelConnection2).

Функции входа в систему LSA

Следующие функции проверки подлинности локального центра безопасности (LSA) проверяют подлинность и выполняют вход пользователей, а также предоставляют сведения о сеансе входа.

Компонент Описание
LsaCallAuthenticationPackage Запрашивает службу для конкретного пакета из пакета проверки подлинности.
LsaConnectUntrusted Устанавливает ненадежное подключение к LSA.
LsaDeregisterLogonProcess Отключается от LSA и освобождает ресурсы, выделенные контексту вызывающего объекта.
LsaEnumerateLogonSessions Извлекает локальные уникальные идентификаторы (LUID) для существующих сеансов входа.
LsaFreeReturnBuffer Освобождает память, выделенную для буфера, возвращенного вызывающей объекту.
LsaGetLogonSessionData Извлекает сведения об указанном сеансе входа.
LsaLogonUser Проверяет подлинность данных входа пользователя в систему с сохраненными учетными данными. В случае успешного выполнения он создает новый сеанс входа в систему и возвращает маркер пользователя.
LsaLookupAuthenticationPackage Получает уникальный идентификатор пакета проверки подлинности.
LsaQueryDomainInformationPolicy Извлекает сведения о домене из объекта Policy .
LsaQueryForestTrustInformation Извлекает сведения о доверии леса для указанного объекта Local SecurityAuthorityTrustedDomain.
LsaRegisterLogonProcess Устанавливает подключение к серверу LSA и проверяет, является ли вызывающий объект приложением для входа.
LsaSetDomainInformationPolicy Задает сведения о домене для объекта Policy .
LsaSetForestTrustInformation задает сведения о доверии леса для указанного объекта Local SecurityAuthorityTrustedDomain.

Функции, реализованные пакетами проверки подлинности

Пользовательские пакеты проверки подлинности должны реализовывать эти функции, которые вызываются локальным центром безопасности (LSA). Эти функции реализуются пакетами проверки подлинности MSV1_0 и Kerberos, предоставляемыми корпорацией Майкрософт.

Компонент Описание
LsaApCallPackage Вызывается при указании идентификатора пакета проверки подлинности в вызове LsaCallAuthenticationPackage приложением, использующим доверенное подключение.
Эта функция позволяет приложениям входа напрямую взаимодействовать с пакетами проверки подлинности.
LsaApCallPackagePassthrough Вызывается при указании идентификатора пакета проверки подлинности в вызове LsaCallAuthenticationPackage для запроса сквозного входа.
LsaApCallPackageUntrusted Вызывается при указании идентификатора пакета проверки подлинности в вызове LsaCallAuthenticationPackage приложением, использующим ненадежное подключение. Эта функция используется для взаимодействия с процессами, у которых нет привилегий SeTcbPrivilege.
LsaApInitializePackage Вызывается во время инициализации системы, чтобы разрешить пакету проверки подлинности выполнять задачи инициализации.
LsaApLogonTerminated Вызывается, когда сеанс входа завершается, чтобы разрешить пакету проверки подлинности освободить все ресурсы, выделенные для сеанса входа.
LsaApLogonUser Вызывается при указании пакета проверки подлинности в вызове LsaLogonUser. Эта функция проверяет подлинность данных входа субъекта безопасности .
LsaApLogonUserEx Идентичен LsaApLogonUser , за исключением того, что он возвращает имя рабочей станции для целей аудита.
Пакет проверки подлинности может реализовывать LsaApLogonUser, LsaApLogonUserEx или LsaApLogonUserEx2. Он не должен реализовывать их все.
LsaApLogonUserEx2 Идентичен LsaApLogonUserEx , за исключением того, что он возвращает первичные и дополнительные учетные данные субъекта безопасности. Пакет проверки подлинности может реализовывать LsaApLogonUser, LsaApLogonUserEx или LsaApLogonUserEx2. Он не должен реализовывать их все.

Функции LSA, вызываемые пакетами проверки подлинности

Следующие функции локального центра безопасности (LSA) можно вызывать из пользовательского пакета проверки подлинности. Когда LSA вызывает LsaApInitializePackage для инициализации пакета, она передает таблицу функций поддержки.

Компонент Описание
AddCredential Добавляет учетные данные в сеанс входа.
AllocateClientBuffer Выделяет буфер в адресном пространстве клиента.
AllocateLsaHeap Выделяет буферы, которые необходимо вернуть из пакета проверки подлинности в LSA.
CopyFromClientBuffer Копирует содержимое буфера в адресном пространстве клиента в локальный буфер.
CopyToClientBuffer Копирует содержимое локального буфера в адресное пространство клиента.
CreateLogonSession Используется пакетами проверки подлинности для создания сеанса входа.
DeleteCredential Удаляет существующие учетные данные.
DeleteLogonSession Очищает все сеансы входа, созданные при определении допустимости сведений о проверке подлинности пользователя.
FreeClientBuffer Освобождает буфер клиента, выделенный ранее с помощью функции AllocateClientBuffer .
FreeLsaHeap Освобождает буферы, выделенные ранее с помощью функции AllocateLsaHeap .
GetCredentials Извлекает учетные данные, ранее кэшированные с помощью AddCredential.

Функции subauthentication

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

Компонент Описание
Msv1_0SubAuthenticationFilter Выполняет проверку подлинности входа пользователя, относящуюся к контроллерам домена.
Msv1_0SubAuthenticationRoutine Выполняет проверку подлинности клиента или сервера.

Функции управления учетными данными

В следующих разделах приведены справочные сведения о функциях управления учетными данными.

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

Функции пользовательского интерфейса управления учетными данными

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

Компонент Описание
CredUICmdLinePromptForCredentials Запрос и принятие учетных данных пользователя от пользователя, работающего в программе командной строки.
CredUIConfirmCredentials Подтвердите допустимость учетных данных, возвращаемых CredUIPromptForCredentials или CredUICmdLinePromptForCredentials.
CredUIParseUserName Извлеките имя домена и учетной записи пользователя из полного имени пользователя.
CredUIPromptForCredentials Отображение диалогового окна, которое принимает данные учетных данных от пользователя.
CredUIPromptForWindowsCredentials Создает и отображает настраиваемое диалоговое окно, позволяющее пользователям предоставлять учетные данные с помощью любого поставщика учетных данных, установленного на локальном компьютере.
CredUIReadSSOCredW Извлекает имя пользователя для одного учетных данных для входа.
CredUIStoreSSOCredW Хранит один учетный данные для входа.

Функции управления учетными данными низкого уровня

Ниже приведены функции управления учетными данными низкого уровня.

Компонент Описание
CredDelete Удалите учетные данные из набора учетных данных пользователя.
CredEnumerate Вывод списка учетных данных в наборе учетных данных пользователя.
CredFindBestCredential Выполняет поиск в базе данных Управления учетными данными (CredMan) набора универсальных учетных данных, связанных с текущим сеансом входа в систему и наиболее подходящих для указанного целевого ресурса.
CredFree Освободите память, используемую для буфера, возвращаемого любой из функций управления учетными данными.
CredGetSessionTypes Получение максимального сохраняемости, поддерживаемого текущим сеансом входа.
CredGetTargetInfo Получение всех известных сведений о имени целевого объекта для именованного ресурса.
CredIsMarshaledCredential Определяет, является ли указанная строка имени пользователя маршалированные учетные данные, ранее маршалированные CredMarshalCredential.
CredIsProtected Указывает, шифруются ли указанные учетные данные предыдущим вызовом функции CredProtect .
CredMarshalCredential Преобразуйте учетные данные в текстовую строку.
CredPackAuthenticationBuffer Преобразует строковое имя пользователя и пароль в буфер проверки подлинности.
CredProtect Шифрует указанные учетные данные, чтобы только текущий контекст безопасности смог расшифровать их.
CredRead Чтение учетных данных из набора учетных данных пользователя.
CredReadDomainCredentials Чтение учетных данных домена из набора учетных данных пользователя.
CredRename Переименуйте учетные данные из набора учетных данных пользователя.
CredUnmarshalCredential Преобразуйте маршалированную строку учетных данных обратно в немаршалированную форму.
CredUnPackAuthenticationBuffer Преобразует буфер проверки подлинности, возвращенный вызовом функции CredUIPromptForWindowsCredentials , в строковое имя пользователя и пароль.
CredUnprotect Расшифровывает учетные данные, которые ранее были зашифрованы с помощью функции CredProtect .
CredWrite Создайте новые учетные данные или измените существующие учетные данные в наборе учетных данных пользователя.
CredWriteDomainCredentials Запись учетных данных домена в набор учетных данных пользователя.

Функции уведомлений об управлении учетными данными

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

Компонент Описание
NPLogonNotify MPR вызывает эту функцию, чтобы уведомить диспетчер учетных данных о том, что произошло событие входа, что позволяет диспетчеру учетных данных возвращать скрипт входа.
NPPasswordChangeNotify MPR вызывает эту функцию, чтобы уведомить диспетчер учетных данных о событии изменения пароля.

Функции смарт-карт

Пакет SDK смарт-карты предоставляет следующие функции.

Компонент Описание
GetOpenCardName Заменяется SCardUIDlgSelectCard, в котором отображается диалоговое окно выбора смарт-карты .
SCardAccessStartedEvent Возвращает дескриптор события при сигнале запуска диспетчера ресурсов смарт-карты.
SCardAddReaderToGroup Добавляет читателя в группу читателей.
SCardAudit Записывает сообщения о событиях в журнал приложений Windows Microsoft-Windows-SmartCard-Audit/Authentication.
SCardBeginTransaction Запускает транзакцию.
SCardCancel Завершает все невыполненные действия в контексте.
SCardCancelTransaction Зарезервировано для последующего использования.
SCardConnect Устанавливает подключение между вызывающим приложением и смарт-картой.
SCardControl Получает прямой контроль средства чтения после вызова SCardConnect .
SCardDisconnect Завершает подключение между вызывающим приложением и смарт-картой.
SCardEndTransaction Завершает транзакцию.
SCardEstablishContext Устанавливает контекст диспетчера ресурсов для доступа к базе данных смарт-карт.
SCardForgetCardType Удаляет ранее определенную смарт-карту из подсистемы смарт-карты.
SCardForgetReader Удаляет ранее определенное средство чтения из подсистемы смарт-карт.
SCardForgetReaderGroup Удаляет ранее определенную группу чтения из подсистемы смарт-карт.
SCardFreeMemory Освобождает память, выделенную диспетчером ресурсов.
SCardGetAttrib Возвращает атрибуты текущего средства чтения из заданного средства чтения, драйвера или смарт-карты.
SCardGetCardTypeProviderName Возвращает имя поставщика, заданное именем карточки и типом поставщика.
SCardGetDeviceTypeId Возвращает идентификатор типа устройства чтения карт для заданного имени средства чтения. Эта функция не влияет на состояние средства чтения.
SCardGetProviderId Возвращает идентификатор (GUID) основного поставщика услуг для смарт-карты.
SCardGetReaderDeviceInstanceId Возвращает идентификатор экземпляра устройства средства чтения карт для заданного имени средства чтения. Эта функция не влияет на состояние средства чтения.
SCardGetReaderIcon Возвращает значок средства чтения смарт-карт для заданного имени средства чтения.
SCardGetStatusChange Блокирует выполнение до тех пор, пока не изменится состояние читателей.
SCardGetTransmitCount Извлекает количество операций передачи, выполненных после вставки указанного средства чтения карт.
SCardIntroduceCardType Представляет новую смарт-карту для подсистемы смарт-карт .
SCardIntroduceReader Представляет новое средство чтения для подсистемы смарт-карт.
SCardIntroduceReaderGroup Представляет новую группу чтения для подсистемы смарт-карт.
SCardIsValidContext Проверяет дескриптор контекста смарт-карты.
SCardListCards Предоставляет список смарт-карт, уже представленных в подсистеме.
SCardListInterfaces Предоставляет список интерфейсов, предоставляемых данной смарт-картой.
SCardListReaderGroups Предоставляет список групп читателей, уже представленных в подсистеме.
SCardListReaders Предоставляет список читателей, уже введенных в подсистему.
SCardListReadersWithDeviceInstanceId Возвращает список читателей, которые предоставили идентификатор экземпляра устройства. Эта функция не влияет на состояние средства чтения.
SCardLocateCards Находит карточки, соответствующие заданной строке ATR.
SCardLocateCardsByATR Находит карточки, соответствующие заданной строке ATR.
SCardReadCache Извлекает часть значения пары "имя-значение" из глобального кэша, поддерживаемого смарт-картой Resource Manager.
SCardReconnect Повторное получение существующего подключения из вызывающего приложения к смарт-карте.
SCardReleaseContext Закрывает установленный контекст resource manager.
SCardReleaseStartedEvent Уменьшает количество ссылок для дескриптора, полученного с помощью функции SCardAccessStartedEvent .
SCardRemoveReaderFromGroup Удаляет читателя из существующей группы чтения.
SCardSetAttrib Задает заданный атрибут чтения.
SCardSetCardTypeProviderName Задает имя поставщика для имени карточки и типа поставщика.
SCardStatus Возвращает текущее состояние средства чтения.
SCardTransmit Отправляет запрос на обслуживание смарт-карте.
SCardUIDlgSelectCard Отображает диалоговое окно "Выбор карточки " смарт-карты.
SCardWriteCache Записывает пару "имя-значение" из смарт-карты в глобальный кэш, обслуживаемый Resource Manager смарт-карт.

Функции SASL

Простая проверка подлинности и уровень безопасности (SASL) предоставляет следующие функции.

Функции Описание
SaslAcceptSecurityContext Заключает стандартный вызов функции SSPI AcceptSecurityContext (General) и включает создание файлов cookie сервера SASL.
SaslEnumerateProfiles Список пакетов, предоставляющих интерфейс SASL.
SaslGetContextOption Извлекает указанное свойство заданного контекста SASL.
SaslGetProfilePackage Возвращает сведения о пакете для указанного пакета.
SaslIdentifyPackage Возвращает префикс согласования, соответствующий указанному буферу согласования SASL.
SaslInitializeSecurityContext Упаковывает стандартный вызов функции SSPI InitializeSecurityContext (General) и обрабатывает файлы cookie сервера SASL с сервера.
SaslSetContextOption Задает значение указанного свойства для указанного контекста SASL.

Прочие функции

Ниже приведены другие функции, используемые для проверки подлинности.

Компонент Описание
AddSecurityPackage Добавляет поставщика поддержки безопасности в список поставщиков, поддерживаемых Microsoft Negotiate.
ChangeAccountPassword Изменяет пароль для учетной записи домена Windows с помощью указанного поставщика поддержки безопасности.
CredMarshalTargetInfo Сериализует указанный целевой объект в массив байтовых значений.
DeleteSecurityPackage Удаляет поставщик поддержки безопасности из списка поставщиков, поддерживаемых Microsoft Negotiate.
LsaManageSidNameMapping Добавляет или удаляет сопоставления идентификаторов безопасности и имен из набора сопоставлений, зарегистрированного в службе подстановки LSA.
LsaOpenPolicy Открывает дескриптор объекта Policy в локальной или удаленной системе.
LsaQueryInformationPolicy Извлекает сведения об объекте Policy .
LsaSetInformationPolicy Изменяет сведения в объекте Policy .
NPFMXEditPerm Позволяет поставщикам сети предоставлять собственные диалоговые окна редактора разрешений.
NPFMXGetPermCaps Извлекает возможности редактора разрешений. Возвращаемое значение представляет собой битовую маску, указывающую, какие элементы меню безопасности в диспетчере файлов должны быть включены.
NPFMXGetPermHelp Извлекает файл справки и контекст справки диалоговых окон редактора разрешений при выборе пункта меню в меню "Безопасность " диспетчера файлов и нажатия клавиши F1.
SpGetCredUIContextFn Извлекает сведения о контексте из поставщика учетных данных.
SpLsaModeInitialize Предоставляет LSA с указателями на функции, реализованные каждым пакетом безопасности в библиотеке DLL SSP/AP.
SpQueryMetaDataFn Возвращает метаданные от поставщика поддержки безопасности (SSP) при инициации контекста безопасности.
SpUpdateCredentialsFn Обновляет учетные данные, связанные с указанным контекстом.
SspiCompareAuthIdentities Сравнивает два указанных учетных данных.
SspiCopyAuthIdentity Создает копию указанной непрозрачной структуры учетных данных.
SspiDecryptAuthIdentity Расшифровывает указанные зашифрованные учетные данные.
SspiEncodeAuthIdentityAsStrings Кодирует указанное удостоверение проверки подлинности в виде трех строк.
SspiEncodeStringsAsAuthIdentity Кодирует набор из трех строк учетных данных в виде структуры удостоверения проверки подлинности.
SspiEncryptAuthIdentity Шифрует указанную структуру удостоверений.
SspiExcludePackage Создает новую структуру идентификации, которая является копией указанной структуры удостоверения, измененной для исключения указанного поставщика поддержки безопасности (SSP).
SspiFreeAuthIdentity Освобождает память, выделенную для указанной структуры удостоверений.
SspiGetCredUIContext Извлекает сведения о контексте из поставщика учетных данных.
SspiGetTargetHostName Возвращает имя узла, связанное с указанным целевым объектом.
SspiIsAuthIdentityEncrypted Указывает, зашифрована ли указанная структура удостоверений.
SspiIsPromptingNeeded Указывает, требуется ли ошибка, возвращаемая после вызова функции InitializeSecurityContext или AcceptSecurityContext , дополнительного вызова функции SspiPromptForCredentials .
SspiLocalFree Освобождает память, связанную с указанным буфером.
SspiMarshalAuthIdentity Сериализует указанную структуру идентификаторов в массив байтов.
SspiPrepareForCredRead Создает целевое имя и тип учетных данных из указанной структуры удостоверений.
SspiPrepareForCredWrite Создает значения из структуры идентификаторов, которую можно передать в качестве значений параметров в вызове функции CredWrite .
SspiPromptForCredentials Позволяет приложению поставщика поддержки безопасности запрашивать у пользователя ввод учетных данных.
SspiUnmarshalAuthIdentity Десериализует указанный массив байтовых значений в структуру идентификаторов.
SspiUnmarshalCredUIContext Десериализует данные учетных данных, полученные поставщиком учетных данных во время предыдущего вызова метода ICredentialProvider::SetSerialization .
SspiUpdateCredentials Обновляет учетные данные, связанные с указанным контекстом.
SspiValidateAuthIdentity Указывает, допустима ли указанная структура удостоверений.
SspiZeroAuthIdentity Заполняет блок памяти, связанный с указанной структурой удостоверений, нулями.
WlxQueryTsLogonCredentials Вызывается заменой библиотеки GINA DLL для получения сведений об учетных данных , если включены службы терминалов. Затем библиотека DLL GINA может использовать эти сведения для автоматического заполнения поля входа и попытки входа пользователя в систему.