Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Задает политику устранения рисков для вызывающего процесса. Политики устранения рисков позволяют процессу защищать себя от различных типов атак.
Синтаксис
BOOL SetProcessMitigationPolicy(
[in] PROCESS_MITIGATION_POLICY MitigationPolicy,
[in] PVOID lpBuffer,
[in] SIZE_T dwLength
);
Параметры
[in] MitigationPolicy
Применяемая политика устранения рисков. Этот параметр может быть одним из следующих значений из перечисления PROCESS_MITIGATION_POLICY .
| Ценность | Meaning |
|---|---|
| ProcessDEPPolicy | Политика предотвращения выполнения данных (DEP) процесса. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_DEP_POLICY , указывающую флаги политики DEP. |
| ProcessASLRPolicy | Политика случайности макета адресного пространства (ASLR) процесса. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_ASLR_POLICY , указывающую флаги политики ASLR. |
| ProcessDynamicCodePolicy | Динамическая политика кода процесса. При включении процесс не может создать динамический код или изменить существующий исполняемый код. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_DYNAMIC_CODE_POLICY , указывающую флаги динамической политики кода. |
| ProcessStrictHandleCheckPolicy | Процесс получит неустранимая ошибка, если он управляет дескриптором, который недействителен. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY , указывающую флаги политики проверки дескриптора. |
| ProcessSystemCallDisablePolicy | Отключает возможность использования функций NTUser/GDI на самом низком уровне. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY , указывающую флаги политики отключения системного вызова. |
| ProcessMitigationOptionsMask | Возвращает маску допустимых битов для всех параметров устранения рисков в системе. Приложение может задать множество вариантов устранения рисков, не запрашивая операционную систему для параметров устранения рисков, объединяя побитовую с маской, чтобы исключить все не поддерживаемые биты одновременно. Параметр lpBuffer указывает на вектор ULONG64 бит для маски или для размещения более 64 битов , массив двухэлемерных ULONG64 битовых векторов. |
| ProcessExtensionPointDisablePolicy | Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY , которая указывает флаги политики отключения точки расширения. |
| ProcessControlFlowGuardPolicy | Политика управления Flow Guard (CFG) процесса. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY , указывающую флаги политики CFG. |
| ProcessSignaturePolicy | Политика процесса, который может ограничить загрузку изображений на эти образы, подписанные корпорацией Майкрософт, магазином Windows или корпорацией Майкрософт, МагазинОм Windows и лабораторией качества оборудования Windows (WHQL). Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY , указывающую флаги политики подписи. |
| ProcessFontDisablePolicy | Политика загрузки шрифта для процесса. При включении процесс не может загружать не системные шрифты. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_FONT_DISABLE_POLICY , указывающую флаги политики для загрузки шрифта. |
| ProcessImageLoadPolicy | Политика загрузки изображений для процесса, которая определяет типы исполняемых образов, которые могут быть сопоставлены в процессе. При включении образы нельзя загружать из некоторых расположений, например удаленные устройства или файлы с низкой обязательной меткой. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_IMAGE_LOAD_POLICY , указывающую флаги политики для загрузки изображений. |
| ProcessRedirectionTrustPolicy | Политика RedirectionGuard процесса. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY , указывающую режим устранения рисков. |
| ProcessSideChannelIsolationPolicy | Windows 10 версии 1809 и более поздних версий: политика изоляции побочных каналов для указанного процесса. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY , указывающую флаги политики для изоляции бокового канала. |
| ProcessUserShadowStackPolicy | Windows 10 версии 2004 и более поздних версий: политика, связанная с аппаратным обеспечением защиты стека в пользовательском режиме. Параметр lpBuffer указывает на структуру PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY , указывающую флаги политики для аппаратной защиты с применением аппаратного режима. |
[in] lpBuffer
Если параметр MitigationPolicy имеет значение ProcessDEPPolicy, этот параметр указывает на структуру PROCESS_MITIGATION_DEP_POLICY , указывающую флаги политики DEP.
Если параметр MitigationPolicy имеет значение ProcessASLRPolicy, этот параметр указывает на PROCESS_MITIGATION_ASLR_POLICY структуру, указывающую флаги политики ASLR.
Если параметр MitigationPolicy имеет значение ProcessImageLoadPolicy, этот параметр указывает на PROCESS_MITIGATION_IMAGE_LOAD_POLICY структуру, которая получает флаги политики для загрузки изображений.
Если параметр MitigationPolicy имеет значение ProcessStrictHandleCheckPolicy, этот параметр указывает на структуру PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY , указывающую флаги политики проверки дескриптора.
Если параметр MitigationPolicy является ProcessSystemCallDisablePolicy, этот параметр указывает на PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY структуру, указывающую флаги политики отключения системного вызова.
Если параметр MitigationPolicy имеет значение ProcessMitigationOptionsMask, этот параметр указывает на вектор ULONG64 бит для маски или для размещения более 64-разрядных массивов ULONG64 битовых векторов.
Если параметр MitigationPolicy имеет значение ProcessExtensionPointDisablePolicy, этот параметр указывает на структуру PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY , указывающую флаги политики отключения точки расширения.
Если параметр MitigationPolicy имеет значение ProcessControlFlowGuardPolicy, этот параметр указывает на PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY структуру, указывающую флаги политики CFG.
Если параметр MitigationPolicy имеет значение ProcessSignaturePolicy, этот параметр указывает на PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY структуру, указывающую флаги политики подписи.
Если параметр MitigationPolicy имеет значение ProcessFontDisablePolicy, этот параметр указывает на PROCESS_MITIGATION_FONT_DISABLE_POLICY структуру, указывающую флаги политики для загрузки шрифта.
Если параметр MitigationPolicy имеет значение ProcessImageLoadPolicy, этот параметр указывает на PROCESS_MITIGATION_IMAGE_LOAD_POLICY структуру, указывающую флаги политики для загрузки изображений.
Если параметр MitigationPolicy имеет значение ProcessRedirectionTrustPolicy, этот параметр указывает на структуру PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY , указывающую режим устранения рисков.
Если параметр MitigationPolicy имеет значение ProcessUserShadowStackPolicy, этот параметр указывает на PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY структуру, указывающую флаги политики для аппаратно-принудительной защиты стека в режиме пользователя.
[in] dwLength
Размер lpBuffer в байтах.
Возвращаемое значение
Если функция выполнена успешно, она возвращает значение TRUE. Если функция завершается ошибкой, возвращает значение FALSE. Чтобы получить значения ошибок, определенные для этой функции, вызовите GetLastError.
Замечания
Настройка политики устранения рисков для процесса помогает предотвратить использование злоумышленником уязвимостей безопасности. Используйте функцию SetProcessMitigationPolicy , чтобы включить или отключить устранение рисков безопасности программным способом.
Для максимальной эффективности политики устранения рисков следует применять до и во время инициализации процесса. Например, настройка политики ASLR, которая позволяет принудительно перемещению изображений, действует только в том случае, если оно применяется до загрузки всех образов в процессе.
Политики устранения рисков ASLR нельзя сделать менее строгими после применения.
Чтобы скомпилировать приложение, использующее эту функцию, задайте _WIN32_WINNT = 0x0602 >. Дополнительные сведения см. в разделе Использование заголовков Windows.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows 8 [только классические приложения] |
| минимальный поддерживаемый сервер | Windows Server 2012 [только классические приложения] |
| целевая платформа | Виндоус |
| Header | processthreadsapi.h |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |