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

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

Функции 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 .

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

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

В следующих таблицах первый набор функций реализуется пакетами безопасности SSP/AP Windows XP. Второй набор функций реализуется только пакетами безопасности 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 Выполняет очистку, необходимую до выгрузки поставщика общих служб или точки доступа.
SslCrackCertificate Возвращает структуру X509Certificate со сведениями, содержащимися в указанном BLOB-объекте сертификата.
SslEmptyCache Удаляет указанную строку из кэша Schannel.
SslFreeCertificate Освобождает сертификат, выделенный при предыдущем вызове функции SslCrackCertificate .

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

Следующие функции реализуютсяпакетами проверки подлинности поставщика /поддержки безопасности(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 Инициализирует пакеты безопасности в пользовательском режиме в поставщике общих служб или точке доступа.
SpMakeSignature Создает сигнатуру на основе указанного сообщения и контекста безопасности.
Реализует функцию MakeSignature SSPI.
SpMarshallSupplementalCreds Преобразует дополнительные учетные данные из открытого формата в формат, подходящий для вызовов локальных процедур.
SpQueryContextAttributes Извлекает атрибуты контекста безопасности.
Реализует функцию SSPI QueryContextAttributes (General).
SpSealMessage Шифрует сообщение, обмениваемое между клиентом и сервером.
Реализует функцию SSPI EncryptMessage (Общее).
SpUnsealMessage Расшифровывает сообщение, ранее зашифрованное с помощью функции SpSealMessage .
Реализует функцию SSPI DecryptMessage (General).
SpUserModeInitialize Вызывается при загрузкеdll пакета проверки подлинности поставщика /поддержки безопасности(SSP/AP) в пространство процессов клиентского или серверного приложения. Эта функция предоставляет SECPKG_USER_FUNCTION_TABLE таблиц для каждого пакета безопасности в библиотеке DLL SSP/AP.
SpVerifySignature Проверяет правильность полученного сообщения в соответствии с подписью.
Реализует функцию SSPI VerifySignature .

Функции LSA, вызываемые поставщиком общих служб или APs

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

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

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

Функция Описание
AllocateSharedMemory Выделяет раздел общей памяти.
AuditAccountLogon Создает записи аудита для попыток входа в систему.
AuditLogon Создает журнал аудита для сеанса входа.
CallPackage Вызывает пакет.
CallPackageEx Вызывает другой пакет.
CallPackagePassthrough Вызывает один пакет безопасности из другого.
CancelNotification Отменяет уведомления о специальных событиях.
ClientCallback Позволяет пакету безопасности вызывать функцию в клиентском процессе.
Прототип функции ClientCallback см. в разделе Прототип функции ClientCallback.
CloseSamUser Закрывает дескриптор для записи базы данных диспетчера учетных записей безопасности.
ConvertAuthDataToToken Преобразует данные авторизации в маркер пользователя.
CrackSingleName Преобразует имя из одного формата в другой.
CreateSharedMemory Создает раздел памяти, совместно используемый клиентами и поставщиком SSP/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/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 должна быть реализована с помощью библиотеки DLL GINA . Это первый вызов 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 и извлекает сведения об идентификаторе безопасности пользователя, вошедшего в систему, профиле и ограничениях квоты.
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 Выполняет перечисление на основе дескриптора, возвращаемого NPOpenum.
NPFormatNetworkName Форматирует сетевое имя в формате для конкретного поставщика для отображения в элементе управления .
NPGetCaps Возвращает сведения о том, какие службы поддерживаются в сети.
NPGetConnection Извлекает сведения о подключении.
NPGetConnection3 Извлекает сведения о сетевом подключении, даже если оно в настоящее время отключено.
NPGetConnectionPerformance Возвращает сведения об ожидаемой производительности подключения, используемого для доступа к сетевому ресурсу. Запрос может быть только для сетевого ресурса, который подключен в данный момент.
NPGetDirectoryType Определяет тип сетевого каталога.
NPGetPropertyText Извлекает имена кнопок для добавления в диалоговое окно свойств для сетевого ресурса.
NPGetResourceInformation Отделяет часть сетевого ресурса, доступ к который осуществляется через API WNet, от части, доступ к ней осуществляется через API, относящиеся к типу ресурса.
NPGetResourceParent Извлекает родительский объект указанного сетевого ресурса в иерархии обзора.
NPGetUniversalName Извлекает универсальное имя сетевого ресурса. Функция NPGetUniversalName может получить это универсальное имя в формате UNC или в более старом формате удаленного имени.
NPGetUser Извлекает значение текущего имени пользователя по умолчанию или имени пользователя, используемого для установления сетевого подключения.
NPOpenum Открывает перечисление сетевых ресурсов или существующих подключений. Чтобы получить допустимый дескриптор перечисления, необходимо вызвать функцию 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 Извлекает сведения о доверии леса для указанного объекта TrustedDomainлокального центра безопасности.
LsaRegisterLogonProcess Устанавливает подключение к серверу LSA и проверяет, является ли вызывающий объект приложением для входа.
LsaSetDomainInformationPolicy Задает сведения о домене для объекта Policy .
LsaSetForestTrustInformation задает сведения о доверии леса для указанного объекта TrustedDomainлокального центра безопасности.

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

Пользовательские пакеты проверки подлинности должны реализовывать эти функции, которые вызываются локальным центром безопасности (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.

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

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

Функция Описание
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 Добавляет или удаляет сопоставления sid/name из набора сопоставлений, зарегистрированного в службе поиска LSA.
LsaOpenPolicy Открывает дескриптор объекта Policy в локальной или удаленной системе.
LsaQueryInformationPolicy Извлекает сведения об объекте Policy .
LsaSetInformationPolicy Изменяет сведения в объекте Policy .
NPFMXEditPerm Позволяет поставщикам сетей предоставлять собственные диалоговые окна редактора разрешений.
NPFMXGetPermCaps Извлекает возможности редактора разрешений. Возвращаемое значение представляет собой битовую маску, указывающую, какие из пунктов меню Безопасность в диспетчере файлов необходимо включить.
NPFMXGetPermHelp Извлекает файл справки и контекст справки диалоговых окон редактора разрешений при выборе пункта меню "Безопасность " диспетчера файлов и нажатии клавиши F1.
SeciAllocateAndSetIPAddress Задает IP-адрес вызывающего абонента, который будет отображаться в событиях аудита безопасности.
SeciFreeCallContext Освобождает память, выделенную SeciAllocateAndSetIPAddress.
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 Позволяет приложению интерфейса поставщика поддержки безопасности (SSPI) запрашивать у пользователя ввод учетных данных.
SspiUnmarshalAuthIdentity Десериализует указанный массив байтовых значений в структуру идентификаторов.
SspiUnmarshalCredUIContext Десериализует учетные данные, полученные поставщиком учетных данных во время предыдущего вызова метода ICredentialProvider::SetSerialization .
SspiUpdateCredentials Обновления учетные данные, связанные с указанным контекстом.
SspiValidateAuthIdentity Указывает, является ли указанная структура удостоверений допустимой.
SspiZeroAuthIdentity Заполняет блок памяти, связанный с указанной структурой идентификаторов, нулями.
WlxQueryTsLogonCredentials Вызывается с помощью замены библиотеки DLL GINA для получения сведений об учетных данных , если включены службы терминалов. Библиотека DLL GINA может использовать эти сведения для автоматического заполнения поля входа и попытки входа пользователя в систему.