Функция SeCaptureSubjectContextEx (ntifs.h)

SeCaptureSubjectContextEx принимает snapshot контекста безопасности вызывающего потока для проверки доступа и аудита.

Синтаксис

void SeCaptureSubjectContextEx(
  PETHREAD                  Thread,
  PEPROCESS                 Process,
  PSECURITY_SUBJECT_CONTEXT SubjectContext
);

Параметры

Thread

[in] Поток, из которого требуется записать маркер потока. Этот параметр является необязательным. При значении NULL SeCaptureSubjectContextEx не записывает токен олицетворения.

Process

[in] Указатель на идентификатор процесса, из которого требуется записать основной маркер.

SubjectContext

[out] Указатель на непрозрачную структуру, выделенную вызывающим объектом SECURITY_SUBJECT_CONTEXT . SeCaptureSubjectContextEx запишет в этой структуре snapshot профиля безопасности вызывающего потока, который содержит ссылки на маркеры доступа. Драйверы не должны изменять или пытаться напрямую обращаться к каким-либо членам этой структуры для принятия решений по обеспечению безопасности. Вместо этого, чтобы избежать проблем с безопасностью при авторизации, передайте эту непрозрачную структуру в вызовах SeAccessCheck или SePrivilegeCheck.

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

None

Remarks

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

После выполнения проверки доступа, проверки привилегий и создания аудита как можно скорее отпустите захваченный контекст, вызвав SeReleaseSubjectContext.

SeCaptureSubjectContextEx при необходимости блокирует маркеры, принимая snapshot контекста безопасности вызывающего потока.

При возврате ссылки на маркеры доступа содержатся в структуре, на которую указывает SubjectContext . Содержимое этой структуры может измениться. Чтобы избежать этого, вызовите SeLockSubjectContext , чтобы заблокировать основной маркер доступа и все маркеры олицетворения, связанные со структурой. Например, при использовании подпрограмм, которые несколько раз запрашивают сведения о маркерах в одном контексте безопасности (например, перечисленные ранее), заблокируйте контекст субъекта с помощью SeLockSubjectContext , чтобы получить согласованные результаты.

Дополнительные сведения о безопасности и управлении доступом см. в статье Модель безопасности Windows для разработчиков драйверов и в документации по этим темам в windows SDK.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Верхняя часть ntifs.h
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

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

SECURITY_SUBJECT_CONTEXT

SeLockSubjectContext

SePrivilegeCheck

SeQueryAuthenticationIdToken

SeQueryInformationToken

SeQuerySubjectContextToken

SeReleaseSubjectContext

SeUnlockSubjectContext