1*bb4ee6a4SAndroid Build Coastguard Worker // Copyright 2022 The ChromiumOS Authors
2*bb4ee6a4SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*bb4ee6a4SAndroid Build Coastguard Worker // found in the LICENSE file.
4*bb4ee6a4SAndroid Build Coastguard Worker
5*bb4ee6a4SAndroid Build Coastguard Worker // If this file changes, update this file upstream and update windows pre-built libraries
6*bb4ee6a4SAndroid Build Coastguard Worker // that upstream uses.
7*bb4ee6a4SAndroid Build Coastguard Worker //
8*bb4ee6a4SAndroid Build Coastguard Worker // TODO(b/239836957): Add how to generate and update pre-built library.
9*bb4ee6a4SAndroid Build Coastguard Worker
10*bb4ee6a4SAndroid Build Coastguard Worker #![allow(deref_nullptr)]
11*bb4ee6a4SAndroid Build Coastguard Worker
12*bb4ee6a4SAndroid Build Coastguard Worker /* automatically generated by rust-bindgen 0.56.0 */
13*bb4ee6a4SAndroid Build Coastguard Worker
14*bb4ee6a4SAndroid Build Coastguard Worker pub const JOB_OBJECT_UILIMIT_NONE: u32 = 0;
15*bb4ee6a4SAndroid Build Coastguard Worker pub const JOB_OBJECT_UILIMIT_HANDLES: u32 = 1;
16*bb4ee6a4SAndroid Build Coastguard Worker pub const JOB_OBJECT_UILIMIT_READCLIPBOARD: u32 = 2;
17*bb4ee6a4SAndroid Build Coastguard Worker pub const JOB_OBJECT_UILIMIT_WRITECLIPBOARD: u32 = 4;
18*bb4ee6a4SAndroid Build Coastguard Worker pub const JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS: u32 = 8;
19*bb4ee6a4SAndroid Build Coastguard Worker pub const JOB_OBJECT_UILIMIT_DISPLAYSETTINGS: u32 = 16;
20*bb4ee6a4SAndroid Build Coastguard Worker pub const JOB_OBJECT_UILIMIT_GLOBALATOMS: u32 = 32;
21*bb4ee6a4SAndroid Build Coastguard Worker pub const JOB_OBJECT_UILIMIT_DESKTOP: u32 = 64;
22*bb4ee6a4SAndroid Build Coastguard Worker pub const JOB_OBJECT_UILIMIT_EXITWINDOWS: u32 = 128;
23*bb4ee6a4SAndroid Build Coastguard Worker pub const JOB_OBJECT_UILIMIT_ALL: u32 = 255;
24*bb4ee6a4SAndroid Build Coastguard Worker pub type size_t = ::std::os::raw::c_ulonglong;
25*bb4ee6a4SAndroid Build Coastguard Worker pub type wchar_t = ::std::os::raw::c_ushort;
26*bb4ee6a4SAndroid Build Coastguard Worker pub type DWORD = ::std::os::raw::c_ulong;
27*bb4ee6a4SAndroid Build Coastguard Worker pub type HANDLE = *mut ::std::os::raw::c_void;
28*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
29*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone)]
30*bb4ee6a4SAndroid Build Coastguard Worker pub struct _PROCESS_INFORMATION {
31*bb4ee6a4SAndroid Build Coastguard Worker pub hProcess: HANDLE,
32*bb4ee6a4SAndroid Build Coastguard Worker pub hThread: HANDLE,
33*bb4ee6a4SAndroid Build Coastguard Worker pub dwProcessId: DWORD,
34*bb4ee6a4SAndroid Build Coastguard Worker pub dwThreadId: DWORD,
35*bb4ee6a4SAndroid Build Coastguard Worker }
36*bb4ee6a4SAndroid Build Coastguard Worker #[test]
bindgen_test_layout__PROCESS_INFORMATION()37*bb4ee6a4SAndroid Build Coastguard Worker fn bindgen_test_layout__PROCESS_INFORMATION() {
38*bb4ee6a4SAndroid Build Coastguard Worker assert_eq!(
39*bb4ee6a4SAndroid Build Coastguard Worker ::std::mem::size_of::<_PROCESS_INFORMATION>(),
40*bb4ee6a4SAndroid Build Coastguard Worker 24usize,
41*bb4ee6a4SAndroid Build Coastguard Worker concat!("Size of: ", stringify!(_PROCESS_INFORMATION))
42*bb4ee6a4SAndroid Build Coastguard Worker );
43*bb4ee6a4SAndroid Build Coastguard Worker assert_eq!(
44*bb4ee6a4SAndroid Build Coastguard Worker ::std::mem::align_of::<_PROCESS_INFORMATION>(),
45*bb4ee6a4SAndroid Build Coastguard Worker 8usize,
46*bb4ee6a4SAndroid Build Coastguard Worker concat!("Alignment of ", stringify!(_PROCESS_INFORMATION))
47*bb4ee6a4SAndroid Build Coastguard Worker );
48*bb4ee6a4SAndroid Build Coastguard Worker assert_eq!(
49*bb4ee6a4SAndroid Build Coastguard Worker unsafe { &(*(::std::ptr::null::<_PROCESS_INFORMATION>())).hProcess as *const _ as usize },
50*bb4ee6a4SAndroid Build Coastguard Worker 0usize,
51*bb4ee6a4SAndroid Build Coastguard Worker concat!(
52*bb4ee6a4SAndroid Build Coastguard Worker "Offset of field: ",
53*bb4ee6a4SAndroid Build Coastguard Worker stringify!(_PROCESS_INFORMATION),
54*bb4ee6a4SAndroid Build Coastguard Worker "::",
55*bb4ee6a4SAndroid Build Coastguard Worker stringify!(hProcess)
56*bb4ee6a4SAndroid Build Coastguard Worker )
57*bb4ee6a4SAndroid Build Coastguard Worker );
58*bb4ee6a4SAndroid Build Coastguard Worker assert_eq!(
59*bb4ee6a4SAndroid Build Coastguard Worker unsafe { &(*(::std::ptr::null::<_PROCESS_INFORMATION>())).hThread as *const _ as usize },
60*bb4ee6a4SAndroid Build Coastguard Worker 8usize,
61*bb4ee6a4SAndroid Build Coastguard Worker concat!(
62*bb4ee6a4SAndroid Build Coastguard Worker "Offset of field: ",
63*bb4ee6a4SAndroid Build Coastguard Worker stringify!(_PROCESS_INFORMATION),
64*bb4ee6a4SAndroid Build Coastguard Worker "::",
65*bb4ee6a4SAndroid Build Coastguard Worker stringify!(hThread)
66*bb4ee6a4SAndroid Build Coastguard Worker )
67*bb4ee6a4SAndroid Build Coastguard Worker );
68*bb4ee6a4SAndroid Build Coastguard Worker assert_eq!(
69*bb4ee6a4SAndroid Build Coastguard Worker unsafe {
70*bb4ee6a4SAndroid Build Coastguard Worker &(*(::std::ptr::null::<_PROCESS_INFORMATION>())).dwProcessId as *const _ as usize
71*bb4ee6a4SAndroid Build Coastguard Worker },
72*bb4ee6a4SAndroid Build Coastguard Worker 16usize,
73*bb4ee6a4SAndroid Build Coastguard Worker concat!(
74*bb4ee6a4SAndroid Build Coastguard Worker "Offset of field: ",
75*bb4ee6a4SAndroid Build Coastguard Worker stringify!(_PROCESS_INFORMATION),
76*bb4ee6a4SAndroid Build Coastguard Worker "::",
77*bb4ee6a4SAndroid Build Coastguard Worker stringify!(dwProcessId)
78*bb4ee6a4SAndroid Build Coastguard Worker )
79*bb4ee6a4SAndroid Build Coastguard Worker );
80*bb4ee6a4SAndroid Build Coastguard Worker assert_eq!(
81*bb4ee6a4SAndroid Build Coastguard Worker unsafe { &(*(::std::ptr::null::<_PROCESS_INFORMATION>())).dwThreadId as *const _ as usize },
82*bb4ee6a4SAndroid Build Coastguard Worker 20usize,
83*bb4ee6a4SAndroid Build Coastguard Worker concat!(
84*bb4ee6a4SAndroid Build Coastguard Worker "Offset of field: ",
85*bb4ee6a4SAndroid Build Coastguard Worker stringify!(_PROCESS_INFORMATION),
86*bb4ee6a4SAndroid Build Coastguard Worker "::",
87*bb4ee6a4SAndroid Build Coastguard Worker stringify!(dwThreadId)
88*bb4ee6a4SAndroid Build Coastguard Worker )
89*bb4ee6a4SAndroid Build Coastguard Worker );
90*bb4ee6a4SAndroid Build Coastguard Worker }
91*bb4ee6a4SAndroid Build Coastguard Worker pub type PROCESS_INFORMATION = _PROCESS_INFORMATION;
92*bb4ee6a4SAndroid Build Coastguard Worker #[repr(i32)]
93*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
94*bb4ee6a4SAndroid Build Coastguard Worker pub enum ResultCode {
95*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ALL_OK = 0,
96*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_GENERIC = 1,
97*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_BAD_PARAMS = 2,
98*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_UNSUPPORTED = 3,
99*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_NO_SPACE = 4,
100*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_INVALID_IPC = 5,
101*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_FAILED_IPC = 6,
102*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_NO_HANDLE = 7,
103*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_UNEXPECTED_CALL = 8,
104*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_WAIT_ALREADY_CALLED = 9,
105*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CHANNEL_ERROR = 10,
106*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_CREATE_DESKTOP = 11,
107*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_CREATE_WINSTATION = 12,
108*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_FAILED_TO_SWITCH_BACK_WINSTATION = 13,
109*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_INVALID_APP_CONTAINER = 14,
110*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_INVALID_CAPABILITY = 15,
111*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_INIT_APPCONTAINER = 16,
112*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_PROC_THREAD_ATTRIBUTES = 17,
113*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CREATE_PROCESS = 18,
114*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_DELEGATE_PRE_SPAWN = 19,
115*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_ASSIGN_PROCESS_TO_JOB_OBJECT = 20,
116*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_SET_THREAD_TOKEN = 21,
117*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_GET_THREAD_CONTEXT = 22,
118*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_DUPLICATE_TARGET_INFO = 23,
119*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_SET_LOW_BOX_TOKEN = 24,
120*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CREATE_FILE_MAPPING = 25,
121*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_DUPLICATE_SHARED_SECTION = 26,
122*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_MAP_VIEW_OF_SHARED_SECTION = 27,
123*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_APPLY_ASLR_MITIGATIONS = 28,
124*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_SETUP_BASIC_INTERCEPTIONS = 29,
125*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_SETUP_INTERCEPTION_SERVICE = 30,
126*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_INITIALIZE_INTERCEPTIONS = 31,
127*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_SETUP_NTDLL_IMPORTS = 32,
128*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_SETUP_HANDLE_CLOSER = 33,
129*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_GET_WINSTATION = 34,
130*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_QUERY_WINSTATION_SECURITY = 35,
131*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_GET_DESKTOP = 36,
132*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_QUERY_DESKTOP_SECURITY = 37,
133*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_SETUP_INTERCEPTION_CONFIG_BUFFER = 38,
134*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_COPY_DATA_TO_CHILD = 39,
135*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_SETUP_INTERCEPTION_THUNK = 40,
136*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_RESOLVE_INTERCEPTION_THUNK = 41,
137*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_WRITE_INTERCEPTION_THUNK = 42,
138*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_FIND_BASE_ADDRESS = 43,
139*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CREATE_APPCONTAINER = 44,
140*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CREATE_APPCONTAINER_ACCESS_CHECK = 45,
141*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CREATE_APPCONTAINER_CAPABILITY = 46,
142*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_INIT_JOB = 47,
143*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_INVALID_LOWBOX_SID = 48,
144*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_CREATE_RESTRICTED_TOKEN = 49,
145*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_SET_DESKTOP_INTEGRITY = 50,
146*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_CREATE_LOWBOX_TOKEN = 51,
147*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_MODIFY_LOWBOX_TOKEN_DACL = 52,
148*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_CREATE_RESTRICTED_IMP_TOKEN = 53,
149*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_DUPLICATE_PROCESS_HANDLE = 54,
150*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_LOADLIBRARY_EXECUTABLE = 55,
151*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_FIND_VARIABLE_ADDRESS = 56,
152*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_WRITE_VARIABLE_VALUE = 57,
153*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_INVALID_WRITE_VARIABLE_SIZE = 58,
154*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_INIT_BROKERSERVICES = 59,
155*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_UPDATE_JOB_PROCESS_LIMIT = 60,
156*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_CANNOT_CREATE_LOWBOX_IMPERSONATION_TOKEN = 61,
157*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_UNSANDBOXED_PROCESS = 62,
158*bb4ee6a4SAndroid Build Coastguard Worker SBOX_ERROR_LAST = 63,
159*bb4ee6a4SAndroid Build Coastguard Worker }
160*bb4ee6a4SAndroid Build Coastguard Worker #[repr(i32)]
161*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
162*bb4ee6a4SAndroid Build Coastguard Worker pub enum IntegrityLevel {
163*bb4ee6a4SAndroid Build Coastguard Worker INTEGRITY_LEVEL_SYSTEM = 0,
164*bb4ee6a4SAndroid Build Coastguard Worker INTEGRITY_LEVEL_HIGH = 1,
165*bb4ee6a4SAndroid Build Coastguard Worker INTEGRITY_LEVEL_MEDIUM = 2,
166*bb4ee6a4SAndroid Build Coastguard Worker INTEGRITY_LEVEL_MEDIUM_LOW = 3,
167*bb4ee6a4SAndroid Build Coastguard Worker INTEGRITY_LEVEL_LOW = 4,
168*bb4ee6a4SAndroid Build Coastguard Worker INTEGRITY_LEVEL_BELOW_LOW = 5,
169*bb4ee6a4SAndroid Build Coastguard Worker INTEGRITY_LEVEL_UNTRUSTED = 6,
170*bb4ee6a4SAndroid Build Coastguard Worker INTEGRITY_LEVEL_LAST = 7,
171*bb4ee6a4SAndroid Build Coastguard Worker }
172*bb4ee6a4SAndroid Build Coastguard Worker #[repr(i32)]
173*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
174*bb4ee6a4SAndroid Build Coastguard Worker pub enum TokenLevel {
175*bb4ee6a4SAndroid Build Coastguard Worker USER_LOCKDOWN = 0,
176*bb4ee6a4SAndroid Build Coastguard Worker USER_RESTRICTED = 1,
177*bb4ee6a4SAndroid Build Coastguard Worker USER_LIMITED = 2,
178*bb4ee6a4SAndroid Build Coastguard Worker USER_INTERACTIVE = 3,
179*bb4ee6a4SAndroid Build Coastguard Worker USER_RESTRICTED_NON_ADMIN = 4,
180*bb4ee6a4SAndroid Build Coastguard Worker USER_NON_ADMIN = 5,
181*bb4ee6a4SAndroid Build Coastguard Worker USER_RESTRICTED_SAME_ACCESS = 6,
182*bb4ee6a4SAndroid Build Coastguard Worker USER_UNPROTECTED = 7,
183*bb4ee6a4SAndroid Build Coastguard Worker USER_LAST = 8,
184*bb4ee6a4SAndroid Build Coastguard Worker }
185*bb4ee6a4SAndroid Build Coastguard Worker #[repr(i32)]
186*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
187*bb4ee6a4SAndroid Build Coastguard Worker pub enum JobLevel {
188*bb4ee6a4SAndroid Build Coastguard Worker JOB_LOCKDOWN = 0,
189*bb4ee6a4SAndroid Build Coastguard Worker JOB_RESTRICTED = 1,
190*bb4ee6a4SAndroid Build Coastguard Worker JOB_LIMITED_USER = 2,
191*bb4ee6a4SAndroid Build Coastguard Worker JOB_INTERACTIVE = 3,
192*bb4ee6a4SAndroid Build Coastguard Worker JOB_UNPROTECTED = 4,
193*bb4ee6a4SAndroid Build Coastguard Worker JOB_NONE = 5,
194*bb4ee6a4SAndroid Build Coastguard Worker }
195*bb4ee6a4SAndroid Build Coastguard Worker pub type MitigationFlags = u64;
196*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_DEP: MitigationFlags = 1;
197*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_DEP_NO_ATL_THUNK: MitigationFlags = 2;
198*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_SEHOP: MitigationFlags = 4;
199*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_RELOCATE_IMAGE: MitigationFlags = 8;
200*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_RELOCATE_IMAGE_REQUIRED: MitigationFlags = 16;
201*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_HEAP_TERMINATE: MitigationFlags = 32;
202*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_BOTTOM_UP_ASLR: MitigationFlags = 64;
203*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_HIGH_ENTROPY_ASLR: MitigationFlags = 128;
204*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_STRICT_HANDLE_CHECKS: MitigationFlags = 256;
205*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_DLL_SEARCH_ORDER: MitigationFlags = 512;
206*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_HARDEN_TOKEN_IL_POLICY: MitigationFlags = 1024;
207*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_WIN32K_DISABLE: MitigationFlags = 2048;
208*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_EXTENSION_POINT_DISABLE: MitigationFlags = 4096;
209*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_DYNAMIC_CODE_DISABLE: MitigationFlags = 8192;
210*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_DYNAMIC_CODE_DISABLE_WITH_OPT_OUT: MitigationFlags = 16384;
211*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_DYNAMIC_CODE_OPT_OUT_THIS_THREAD: MitigationFlags = 32768;
212*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_NONSYSTEM_FONT_DISABLE: MitigationFlags = 65536;
213*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_FORCE_MS_SIGNED_BINS: MitigationFlags = 131072;
214*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_IMAGE_LOAD_NO_REMOTE: MitigationFlags = 262144;
215*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_IMAGE_LOAD_NO_LOW_LABEL: MitigationFlags = 524288;
216*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_IMAGE_LOAD_PREFER_SYS32: MitigationFlags = 1048576;
217*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_RESTRICT_INDIRECT_BRANCH_PREDICTION: MitigationFlags = 2097152;
218*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_CET_DISABLED: MitigationFlags = 4194304;
219*bb4ee6a4SAndroid Build Coastguard Worker pub const MITIGATION_KTM_COMPONENT: MitigationFlags = 8388608;
220*bb4ee6a4SAndroid Build Coastguard Worker #[repr(i32)]
221*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
222*bb4ee6a4SAndroid Build Coastguard Worker pub enum SubSystem {
223*bb4ee6a4SAndroid Build Coastguard Worker SUBSYS_FILES = 0,
224*bb4ee6a4SAndroid Build Coastguard Worker SUBSYS_NAMED_PIPES = 1,
225*bb4ee6a4SAndroid Build Coastguard Worker SUBSYS_PROCESS = 2,
226*bb4ee6a4SAndroid Build Coastguard Worker SUBSYS_REGISTRY = 3,
227*bb4ee6a4SAndroid Build Coastguard Worker SUBSYS_SYNC = 4,
228*bb4ee6a4SAndroid Build Coastguard Worker SUBSYS_WIN32K_LOCKDOWN = 5,
229*bb4ee6a4SAndroid Build Coastguard Worker SUBSYS_SIGNED_BINARY = 6,
230*bb4ee6a4SAndroid Build Coastguard Worker SUBSYS_SOCKET = 7,
231*bb4ee6a4SAndroid Build Coastguard Worker }
232*bb4ee6a4SAndroid Build Coastguard Worker #[repr(i32)]
233*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
234*bb4ee6a4SAndroid Build Coastguard Worker pub enum Semantics {
235*bb4ee6a4SAndroid Build Coastguard Worker FILES_ALLOW_ANY = 0,
236*bb4ee6a4SAndroid Build Coastguard Worker FILES_ALLOW_READONLY = 1,
237*bb4ee6a4SAndroid Build Coastguard Worker FILES_ALLOW_QUERY = 2,
238*bb4ee6a4SAndroid Build Coastguard Worker FILES_ALLOW_DIR_ANY = 3,
239*bb4ee6a4SAndroid Build Coastguard Worker NAMEDPIPES_ALLOW_ANY = 4,
240*bb4ee6a4SAndroid Build Coastguard Worker PROCESS_MIN_EXEC = 5,
241*bb4ee6a4SAndroid Build Coastguard Worker PROCESS_ALL_EXEC = 6,
242*bb4ee6a4SAndroid Build Coastguard Worker EVENTS_ALLOW_ANY = 7,
243*bb4ee6a4SAndroid Build Coastguard Worker EVENTS_ALLOW_READONLY = 8,
244*bb4ee6a4SAndroid Build Coastguard Worker REG_ALLOW_READONLY = 9,
245*bb4ee6a4SAndroid Build Coastguard Worker REG_ALLOW_ANY = 10,
246*bb4ee6a4SAndroid Build Coastguard Worker FAKE_USER_GDI_INIT = 11,
247*bb4ee6a4SAndroid Build Coastguard Worker SIGNED_ALLOW_LOAD = 12,
248*bb4ee6a4SAndroid Build Coastguard Worker SOCKET_ALLOW_BROKER = 13,
249*bb4ee6a4SAndroid Build Coastguard Worker }
250*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
251*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone)]
252*bb4ee6a4SAndroid Build Coastguard Worker pub struct BrokerServices {
253*bb4ee6a4SAndroid Build Coastguard Worker _unused: [u8; 0],
254*bb4ee6a4SAndroid Build Coastguard Worker }
255*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
256*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone)]
257*bb4ee6a4SAndroid Build Coastguard Worker pub struct TargetServices {
258*bb4ee6a4SAndroid Build Coastguard Worker _unused: [u8; 0],
259*bb4ee6a4SAndroid Build Coastguard Worker }
260*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
261*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone)]
262*bb4ee6a4SAndroid Build Coastguard Worker pub struct ProcessState {
263*bb4ee6a4SAndroid Build Coastguard Worker _unused: [u8; 0],
264*bb4ee6a4SAndroid Build Coastguard Worker }
265*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
266*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone)]
267*bb4ee6a4SAndroid Build Coastguard Worker pub struct TargetPolicy {
268*bb4ee6a4SAndroid Build Coastguard Worker _unused: [u8; 0],
269*bb4ee6a4SAndroid Build Coastguard Worker }
270*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
271*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Copy, Clone)]
272*bb4ee6a4SAndroid Build Coastguard Worker pub struct PolicyInfo {
273*bb4ee6a4SAndroid Build Coastguard Worker _unused: [u8; 0],
274*bb4ee6a4SAndroid Build Coastguard Worker }
275*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_broker_init(broker: *mut BrokerServices) -> ResultCode276*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_broker_init(broker: *mut BrokerServices) -> ResultCode;
277*bb4ee6a4SAndroid Build Coastguard Worker }
278*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_create_policy(broker: *mut BrokerServices) -> *mut TargetPolicy279*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_create_policy(broker: *mut BrokerServices) -> *mut TargetPolicy;
280*bb4ee6a4SAndroid Build Coastguard Worker }
281*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_release_policy(policy: *mut TargetPolicy)282*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_release_policy(policy: *mut TargetPolicy);
283*bb4ee6a4SAndroid Build Coastguard Worker }
284*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_spawn_target( broker: *mut BrokerServices, exe_path: *const wchar_t, command_line: *const wchar_t, policy: *mut TargetPolicy, last_warning: *mut ResultCode, last_error: *mut DWORD, target: *mut PROCESS_INFORMATION, ) -> ResultCode285*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_spawn_target(
286*bb4ee6a4SAndroid Build Coastguard Worker broker: *mut BrokerServices,
287*bb4ee6a4SAndroid Build Coastguard Worker exe_path: *const wchar_t,
288*bb4ee6a4SAndroid Build Coastguard Worker command_line: *const wchar_t,
289*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
290*bb4ee6a4SAndroid Build Coastguard Worker last_warning: *mut ResultCode,
291*bb4ee6a4SAndroid Build Coastguard Worker last_error: *mut DWORD,
292*bb4ee6a4SAndroid Build Coastguard Worker target: *mut PROCESS_INFORMATION,
293*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
294*bb4ee6a4SAndroid Build Coastguard Worker }
295*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_wait_for_all_targets(broker: *mut BrokerServices) -> ResultCode296*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_wait_for_all_targets(broker: *mut BrokerServices) -> ResultCode;
297*bb4ee6a4SAndroid Build Coastguard Worker }
298*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_target_init(target: *mut TargetServices) -> ResultCode299*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_target_init(target: *mut TargetServices) -> ResultCode;
300*bb4ee6a4SAndroid Build Coastguard Worker }
301*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_lower_token(target: *mut TargetServices)302*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_lower_token(target: *mut TargetServices);
303*bb4ee6a4SAndroid Build Coastguard Worker }
304*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_get_state(target: *mut TargetServices) -> *mut ProcessState305*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_get_state(target: *mut TargetServices) -> *mut ProcessState;
306*bb4ee6a4SAndroid Build Coastguard Worker }
307*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
get_broker_services() -> *mut BrokerServices308*bb4ee6a4SAndroid Build Coastguard Worker pub fn get_broker_services() -> *mut BrokerServices;
309*bb4ee6a4SAndroid Build Coastguard Worker }
310*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
get_target_services() -> *mut TargetServices311*bb4ee6a4SAndroid Build Coastguard Worker pub fn get_target_services() -> *mut TargetServices;
312*bb4ee6a4SAndroid Build Coastguard Worker }
313*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_token_level( policy: *mut TargetPolicy, initial: TokenLevel, lockdown: TokenLevel, ) -> ResultCode314*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_token_level(
315*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
316*bb4ee6a4SAndroid Build Coastguard Worker initial: TokenLevel,
317*bb4ee6a4SAndroid Build Coastguard Worker lockdown: TokenLevel,
318*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
319*bb4ee6a4SAndroid Build Coastguard Worker }
320*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_get_initial_token_level(policy: *mut TargetPolicy) -> TokenLevel321*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_get_initial_token_level(policy: *mut TargetPolicy) -> TokenLevel;
322*bb4ee6a4SAndroid Build Coastguard Worker }
323*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_get_lockdown_token_level(policy: *mut TargetPolicy) -> TokenLevel324*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_get_lockdown_token_level(policy: *mut TargetPolicy) -> TokenLevel;
325*bb4ee6a4SAndroid Build Coastguard Worker }
326*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_job_level( policy: *mut TargetPolicy, job_level: JobLevel, ui_exceptions: u32, ) -> ResultCode327*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_job_level(
328*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
329*bb4ee6a4SAndroid Build Coastguard Worker job_level: JobLevel,
330*bb4ee6a4SAndroid Build Coastguard Worker ui_exceptions: u32,
331*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
332*bb4ee6a4SAndroid Build Coastguard Worker }
333*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_get_job_level(policy: *mut TargetPolicy) -> JobLevel334*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_get_job_level(policy: *mut TargetPolicy) -> JobLevel;
335*bb4ee6a4SAndroid Build Coastguard Worker }
336*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_job_memory_limit(policy: *mut TargetPolicy, memory_limit: size_t) -> ResultCode337*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_job_memory_limit(policy: *mut TargetPolicy, memory_limit: size_t)
338*bb4ee6a4SAndroid Build Coastguard Worker -> ResultCode;
339*bb4ee6a4SAndroid Build Coastguard Worker }
340*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_integrity_level(policy: *mut TargetPolicy, level: IntegrityLevel) -> ResultCode341*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_integrity_level(policy: *mut TargetPolicy, level: IntegrityLevel)
342*bb4ee6a4SAndroid Build Coastguard Worker -> ResultCode;
343*bb4ee6a4SAndroid Build Coastguard Worker }
344*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_delayed_integrity_level( policy: *mut TargetPolicy, level: IntegrityLevel, ) -> ResultCode345*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_delayed_integrity_level(
346*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
347*bb4ee6a4SAndroid Build Coastguard Worker level: IntegrityLevel,
348*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
349*bb4ee6a4SAndroid Build Coastguard Worker }
350*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_get_integrity_level(policy: *mut TargetPolicy) -> IntegrityLevel351*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_get_integrity_level(policy: *mut TargetPolicy) -> IntegrityLevel;
352*bb4ee6a4SAndroid Build Coastguard Worker }
353*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_alternate_desktop( policy: *mut TargetPolicy, alternate_winstation: bool, ) -> ResultCode354*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_alternate_desktop(
355*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
356*bb4ee6a4SAndroid Build Coastguard Worker alternate_winstation: bool,
357*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
358*bb4ee6a4SAndroid Build Coastguard Worker }
359*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_create_alternate_desktop( policy: *mut TargetPolicy, alternate_winstation: bool, ) -> ResultCode360*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_create_alternate_desktop(
361*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
362*bb4ee6a4SAndroid Build Coastguard Worker alternate_winstation: bool,
363*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
364*bb4ee6a4SAndroid Build Coastguard Worker }
365*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_destroy_alternate_desktop(policy: *mut TargetPolicy)366*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_destroy_alternate_desktop(policy: *mut TargetPolicy);
367*bb4ee6a4SAndroid Build Coastguard Worker }
368*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_lowbox(policy: *mut TargetPolicy, sid: *const wchar_t) -> ResultCode369*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_lowbox(policy: *mut TargetPolicy, sid: *const wchar_t) -> ResultCode;
370*bb4ee6a4SAndroid Build Coastguard Worker }
371*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_process_mitigations( policy: *mut TargetPolicy, flags: MitigationFlags, ) -> ResultCode372*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_process_mitigations(
373*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
374*bb4ee6a4SAndroid Build Coastguard Worker flags: MitigationFlags,
375*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
376*bb4ee6a4SAndroid Build Coastguard Worker }
377*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_get_process_mitigations(policy: *mut TargetPolicy) -> MitigationFlags378*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_get_process_mitigations(policy: *mut TargetPolicy) -> MitigationFlags;
379*bb4ee6a4SAndroid Build Coastguard Worker }
380*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_delayed_process_mitigations( policy: *mut TargetPolicy, flags: MitigationFlags, ) -> ResultCode381*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_delayed_process_mitigations(
382*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
383*bb4ee6a4SAndroid Build Coastguard Worker flags: MitigationFlags,
384*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
385*bb4ee6a4SAndroid Build Coastguard Worker }
386*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_get_delayed_process_mitigations(policy: *mut TargetPolicy) -> MitigationFlags387*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_get_delayed_process_mitigations(policy: *mut TargetPolicy) -> MitigationFlags;
388*bb4ee6a4SAndroid Build Coastguard Worker }
389*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_disconnect_csrss(policy: *mut TargetPolicy) -> ResultCode390*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_disconnect_csrss(policy: *mut TargetPolicy) -> ResultCode;
391*bb4ee6a4SAndroid Build Coastguard Worker }
392*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_strict_interceptions(policy: *mut TargetPolicy)393*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_strict_interceptions(policy: *mut TargetPolicy);
394*bb4ee6a4SAndroid Build Coastguard Worker }
395*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_stdout_handle(policy: *mut TargetPolicy, handle: HANDLE) -> ResultCode396*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_stdout_handle(policy: *mut TargetPolicy, handle: HANDLE) -> ResultCode;
397*bb4ee6a4SAndroid Build Coastguard Worker }
398*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_stderr_handle(policy: *mut TargetPolicy, handle: HANDLE) -> ResultCode399*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_stderr_handle(policy: *mut TargetPolicy, handle: HANDLE) -> ResultCode;
400*bb4ee6a4SAndroid Build Coastguard Worker }
401*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_add_rule( policy: *mut TargetPolicy, subsystem: SubSystem, semantics: Semantics, pattern: *const wchar_t, ) -> ResultCode402*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_add_rule(
403*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
404*bb4ee6a4SAndroid Build Coastguard Worker subsystem: SubSystem,
405*bb4ee6a4SAndroid Build Coastguard Worker semantics: Semantics,
406*bb4ee6a4SAndroid Build Coastguard Worker pattern: *const wchar_t,
407*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
408*bb4ee6a4SAndroid Build Coastguard Worker }
409*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_add_dll_to_unload( policy: *mut TargetPolicy, dll_name: *const wchar_t, ) -> ResultCode410*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_add_dll_to_unload(
411*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
412*bb4ee6a4SAndroid Build Coastguard Worker dll_name: *const wchar_t,
413*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
414*bb4ee6a4SAndroid Build Coastguard Worker }
415*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_add_kernel_object_to_close( policy: *mut TargetPolicy, handle_type: *const wchar_t, handle_name: *const wchar_t, ) -> ResultCode416*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_add_kernel_object_to_close(
417*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
418*bb4ee6a4SAndroid Build Coastguard Worker handle_type: *const wchar_t,
419*bb4ee6a4SAndroid Build Coastguard Worker handle_name: *const wchar_t,
420*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
421*bb4ee6a4SAndroid Build Coastguard Worker }
422*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_add_handle_to_share(policy: *mut TargetPolicy, handle: HANDLE)423*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_add_handle_to_share(policy: *mut TargetPolicy, handle: HANDLE);
424*bb4ee6a4SAndroid Build Coastguard Worker }
425*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_set_lockdown_default_dacl(policy: *mut TargetPolicy)426*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_set_lockdown_default_dacl(policy: *mut TargetPolicy);
427*bb4ee6a4SAndroid Build Coastguard Worker }
428*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_add_restricting_random_sid(policy: *mut TargetPolicy)429*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_add_restricting_random_sid(policy: *mut TargetPolicy);
430*bb4ee6a4SAndroid Build Coastguard Worker }
431*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_add_app_container_profile( policy: *mut TargetPolicy, package_name: *const wchar_t, create_profile: bool, ) -> ResultCode432*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_add_app_container_profile(
433*bb4ee6a4SAndroid Build Coastguard Worker policy: *mut TargetPolicy,
434*bb4ee6a4SAndroid Build Coastguard Worker package_name: *const wchar_t,
435*bb4ee6a4SAndroid Build Coastguard Worker create_profile: bool,
436*bb4ee6a4SAndroid Build Coastguard Worker ) -> ResultCode;
437*bb4ee6a4SAndroid Build Coastguard Worker }
438*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_get_policy_info(policy: *mut TargetPolicy) -> *mut PolicyInfo439*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_get_policy_info(policy: *mut TargetPolicy) -> *mut PolicyInfo;
440*bb4ee6a4SAndroid Build Coastguard Worker }
441*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_release_policy_info(policy_info: *mut PolicyInfo)442*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_release_policy_info(policy_info: *mut PolicyInfo);
443*bb4ee6a4SAndroid Build Coastguard Worker }
444*bb4ee6a4SAndroid Build Coastguard Worker extern "C" {
sbox_policy_info_json_string( policy_info: *mut PolicyInfo, ) -> *const ::std::os::raw::c_char445*bb4ee6a4SAndroid Build Coastguard Worker pub fn sbox_policy_info_json_string(
446*bb4ee6a4SAndroid Build Coastguard Worker policy_info: *mut PolicyInfo,
447*bb4ee6a4SAndroid Build Coastguard Worker ) -> *const ::std::os::raw::c_char;
448*bb4ee6a4SAndroid Build Coastguard Worker }
449