Функция SeCaptureSubjectContextEx (ntifs.h)
SeCaptureSubjectContextEx создает моментальный снимок контекста безопасности вызывающего потока для проверки доступа и аудита.
Синтаксис
void SeCaptureSubjectContextEx(
PETHREAD Thread,
PEPROCESS Process,
PSECURITY_SUBJECT_CONTEXT SubjectContext
);
Параметры
Thread
[in] Поток, из которого требуется записать маркер потока. Этот параметр является необязательным. Если значение NULL, SeCaptureSubjectContextEx не фиксирует токен олицетворения.
Process
[in] Указатель на идентификатор процесса, из которого необходимо записать первичный маркер.
SubjectContext
[out] Указатель на непрозрачную структуру, выделенную вызывающим объектом, SECURITY_SUBJECT_CONTEXT. SeCaptureSubjectContextEx напишет моментальный снимок профиля безопасности вызывающего потока, который содержит ссылки на маркеры доступа в этой структуре. Драйверы не должны изменять или пытаться напрямую обращаться к любым членам этой структуры для принятия решений по безопасности. Вместо этого, чтобы избежать проблем безопасности в авторизации, передайте эту непрозрачную структуру в вызовах SeAccessCheck или SePrivilegeCheck.
Возвращаемое значение
Никакой
Замечания
Необходимо вызвать SeCaptureSubjectContextEx перед выполнением таких служб, как проверка доступа или создание сообщений аудита. Это необходимо для обеспечения согласованного контекста безопасности для подпрограмм, таких как:
После проверки доступа, проверки привилегий и служб создания аудита выпустите захваченный контекст как можно скорее путем вызова SeReleaseSubjectContext.
SeCaptureSubjectContextEx блокирует маркеры при необходимости при выполнении моментального снимка контекста безопасности вызывающего потока.
При возврате ссылки на маркеры доступа содержатся в структуре, на которую SubjectContext указывает. Содержимое этой структуры может измениться. Чтобы предотвратить это, вызовите SeLockSubjectContext, чтобы заблокировать основной маркер доступа и все маркеры олицетворения, связанные со структурой. Например, при использовании подпрограмм, запрашивающих сведения о маркере более одного раза в одном контексте безопасности (например, перечисленных ранее), блокировка контекста субъекта с помощью SeLockSubjectContext для получения согласованных результатов.
Дополнительные сведения о безопасности и управлении доступом см. в модели безопасности Windows для разработчиков драйверов и документации по этим разделам в пакете SDK для Windows.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
заголовка | ntifs.h |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |