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