security/sandbox/chromium/base/shim/sdkdecls.h

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/security/sandbox/chromium/base/shim/sdkdecls.h	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,173 @@
     1.4 +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     1.5 +/* vim: set ts=2 et sw=2 tw=80: */
     1.6 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.7 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.8 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.9 +
    1.10 +#ifndef _SECURITY_SANDBOX_BASE_SHIM_SDKDECLS_H_
    1.11 +#define _SECURITY_SANDBOX_BASE_SHIM_SDKDECLS_H_
    1.12 +
    1.13 +#include <windows.h>
    1.14 +
    1.15 +// This file contains definitions required for things dynamically loaded
    1.16 +// while building or targetting lower platform versions or lower SDKs.
    1.17 +
    1.18 +#if (_WIN32_WINNT < 0x0600)
    1.19 +typedef struct _STARTUPINFOEXA {
    1.20 +    STARTUPINFOA StartupInfo;
    1.21 +    LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
    1.22 +} STARTUPINFOEXA, *LPSTARTUPINFOEXA;
    1.23 +typedef struct _STARTUPINFOEXW {
    1.24 +    STARTUPINFOW StartupInfo;
    1.25 +    LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
    1.26 +} STARTUPINFOEXW, *LPSTARTUPINFOEXW;
    1.27 +#ifdef UNICODE
    1.28 +typedef STARTUPINFOEXW STARTUPINFOEX;
    1.29 +typedef LPSTARTUPINFOEXW LPSTARTUPINFOEX;
    1.30 +#else
    1.31 +typedef STARTUPINFOEXA STARTUPINFOEX;
    1.32 +typedef LPSTARTUPINFOEXA LPSTARTUPINFOEX;
    1.33 +#endif // UNICODE
    1.34 +
    1.35 +#define PROC_THREAD_ATTRIBUTE_NUMBER    0x0000FFFF
    1.36 +#define PROC_THREAD_ATTRIBUTE_THREAD    0x00010000  // Attribute may be used with thread creation
    1.37 +#define PROC_THREAD_ATTRIBUTE_INPUT     0x00020000  // Attribute is input only
    1.38 +#define PROC_THREAD_ATTRIBUTE_ADDITIVE  0x00040000  // Attribute may be "accumulated," e.g. bitmasks, counters, etc.
    1.39 +
    1.40 +#define ProcThreadAttributeValue(Number, Thread, Input, Additive) \
    1.41 +    (((Number) & PROC_THREAD_ATTRIBUTE_NUMBER) | \
    1.42 +     ((Thread != FALSE) ? PROC_THREAD_ATTRIBUTE_THREAD : 0) | \
    1.43 +     ((Input != FALSE) ? PROC_THREAD_ATTRIBUTE_INPUT : 0) | \
    1.44 +     ((Additive != FALSE) ? PROC_THREAD_ATTRIBUTE_ADDITIVE : 0))
    1.45 +
    1.46 +#define ProcThreadAttributeHandleList 2
    1.47 +
    1.48 +#define PROC_THREAD_ATTRIBUTE_HANDLE_LIST \
    1.49 +    ProcThreadAttributeValue (ProcThreadAttributeHandleList, FALSE, TRUE, FALSE)
    1.50 +
    1.51 +#define PROCESS_DEP_ENABLE                          0x00000001
    1.52 +#define PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION     0x00000002
    1.53 +
    1.54 +#endif // (_WIN32_WINNT >= 0x0600)
    1.55 +
    1.56 +#if (_WIN32_WINNT < 0x0601)
    1.57 +#define ProcThreadAttributeMitigationPolicy 7
    1.58 +#define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY \
    1.59 +    ProcThreadAttributeValue (ProcThreadAttributeMitigationPolicy, FALSE, TRUE, FALSE)
    1.60 +
    1.61 +#define PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE            0x01
    1.62 +#define PROCESS_CREATION_MITIGATION_POLICY_DEP_ATL_THUNK_ENABLE  0x02
    1.63 +#define PROCESS_CREATION_MITIGATION_POLICY_SEHOP_ENABLE          0x04
    1.64 +#endif // (_WIN32_WINNT >= 0x0601)
    1.65 +
    1.66 +#if (_WIN32_WINNT < 0x0602)
    1.67 +#define ProcThreadAttributeSecurityCapabilities 9
    1.68 +#define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES \
    1.69 +    ProcThreadAttributeValue (ProcThreadAttributeSecurityCapabilities, FALSE, TRUE, FALSE)
    1.70 +
    1.71 +#define PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_MASK                     (0x00000003 <<  8)
    1.72 +#define PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_DEFER                    (0x00000000 <<  8)
    1.73 +#define PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON                (0x00000001 <<  8)
    1.74 +#define PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_OFF               (0x00000002 <<  8)
    1.75 +#define PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON_REQ_RELOCS     (0x00000003 <<  8)
    1.76 +#define PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_MASK                            (0x00000003 << 12)
    1.77 +#define PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_DEFER                           (0x00000000 << 12)
    1.78 +#define PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_ALWAYS_ON                       (0x00000001 << 12)
    1.79 +#define PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_ALWAYS_OFF                      (0x00000002 << 12)
    1.80 +#define PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_RESERVED                        (0x00000003 << 12)
    1.81 +#define PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_MASK                            (0x00000003 << 16)
    1.82 +#define PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_DEFER                           (0x00000000 << 16)
    1.83 +#define PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_ALWAYS_ON                       (0x00000001 << 16)
    1.84 +#define PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_ALWAYS_OFF                      (0x00000002 << 16)
    1.85 +#define PROCESS_CREATION_MITIGATION_POLICY_BOTTOM_UP_ASLR_RESERVED                        (0x00000003 << 16)
    1.86 +#define PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_MASK                         (0x00000003 << 20)
    1.87 +#define PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_DEFER                        (0x00000000 << 20)
    1.88 +#define PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_ALWAYS_ON                    (0x00000001 << 20)
    1.89 +#define PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_ALWAYS_OFF                   (0x00000002 << 20)
    1.90 +#define PROCESS_CREATION_MITIGATION_POLICY_HIGH_ENTROPY_ASLR_RESERVED                     (0x00000003 << 20)
    1.91 +#define PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_MASK                      (0x00000003 << 24)
    1.92 +#define PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_DEFER                     (0x00000000 << 24)
    1.93 +#define PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_ON                 (0x00000001 << 24)
    1.94 +#define PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_OFF                (0x00000002 << 24)
    1.95 +#define PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_RESERVED                  (0x00000003 << 24)
    1.96 +#define PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_MASK                (0x00000003 << 28)
    1.97 +#define PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_DEFER               (0x00000000 << 28)
    1.98 +#define PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_ON           (0x00000001 << 28)
    1.99 +#define PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_OFF          (0x00000002 << 28)
   1.100 +#define PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_RESERVED            (0x00000003 << 28)
   1.101 +#define PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_MASK                   (0x00000003ui64 << 32)
   1.102 +#define PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_DEFER                  (0x00000000ui64 << 32)
   1.103 +#define PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_ON              (0x00000001ui64 << 32)
   1.104 +#define PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_OFF             (0x00000002ui64 << 32)
   1.105 +#define PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_RESERVED               (0x00000003ui64 << 32)
   1.106 +
   1.107 +// Check if we're including >= win8 winnt.h
   1.108 +#ifndef NTDDI_WIN8
   1.109 +
   1.110 +typedef struct _SECURITY_CAPABILITIES {
   1.111 +    PSID AppContainerSid;
   1.112 +    PSID_AND_ATTRIBUTES Capabilities;
   1.113 +    DWORD CapabilityCount;
   1.114 +    DWORD Reserved;
   1.115 +} SECURITY_CAPABILITIES, *PSECURITY_CAPABILITIES, *LPSECURITY_CAPABILITIES;
   1.116 +
   1.117 +typedef enum _PROCESS_MITIGATION_POLICY {
   1.118 +  ProcessDEPPolicy,
   1.119 +  ProcessASLRPolicy,
   1.120 +  ProcessReserved1MitigationPolicy,
   1.121 +  ProcessStrictHandleCheckPolicy,
   1.122 +  ProcessSystemCallDisablePolicy,
   1.123 +  ProcessMitigationOptionsMask,
   1.124 +  ProcessExtensionPointDisablePolicy,
   1.125 +  MaxProcessMitigationPolicy
   1.126 +} PROCESS_MITIGATION_POLICY, *PPROCESS_MITIGATION_POLICY;
   1.127 +
   1.128 +#define LOAD_LIBRARY_SEARCH_DEFAULT_DIRS 0x00001000
   1.129 +
   1.130 +typedef struct _PROCESS_MITIGATION_ASLR_POLICY {
   1.131 +  union {
   1.132 +    DWORD  Flags;
   1.133 +    struct {
   1.134 +      DWORD EnableBottomUpRandomization : 1;
   1.135 +      DWORD EnableForceRelocateImages : 1;
   1.136 +      DWORD EnableHighEntropy : 1;
   1.137 +      DWORD DisallowStrippedImages : 1;
   1.138 +      DWORD ReservedFlags : 28;
   1.139 +    };
   1.140 +  };
   1.141 +} PROCESS_MITIGATION_ASLR_POLICY, *PPROCESS_MITIGATION_ASLR_POLICY;
   1.142 +
   1.143 +typedef struct _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY {
   1.144 +  union {
   1.145 +    DWORD  Flags;
   1.146 +    struct {
   1.147 +      DWORD RaiseExceptionOnInvalidHandleReference : 1;
   1.148 +      DWORD HandleExceptionsPermanentlyEnabled : 1;
   1.149 +      DWORD ReservedFlags : 30;
   1.150 +    };
   1.151 +  };
   1.152 +} PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, *PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY;
   1.153 +
   1.154 +typedef struct _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY {
   1.155 +  union {
   1.156 +    DWORD  Flags;
   1.157 +    struct {
   1.158 +      DWORD DisallowWin32kSystemCalls : 1;
   1.159 +      DWORD ReservedFlags : 31;
   1.160 +    };
   1.161 +  };
   1.162 +} PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY, *PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY;
   1.163 +
   1.164 +typedef struct _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY {
   1.165 +  union {
   1.166 +    DWORD  Flags;
   1.167 +    struct {
   1.168 +      DWORD DisableExtensionPoints : 1;
   1.169 +      DWORD ReservedFlags : 31;
   1.170 +    };
   1.171 +  };
   1.172 +} PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY, *PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY;
   1.173 +
   1.174 +#endif // NTDDI_WIN8
   1.175 +#endif // (_WIN32_WINNT < 0x0602)
   1.176 +#endif // _SECURITY_SANDBOX_BASE_SHIM_SDKDECLS_H_

mercurial