1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms
6 use shared::minwindef::{BOOL, LPVOID, ULONG};
7 use shared::ntdef::{BOOLEAN, HANDLE, LPCWSTR};
8 use um::minwinbase::LPSECURITY_ATTRIBUTES;
9 use um::winnt::PSID;
10 pub const PRIVATE_NAMESPACE_FLAG_DESTROY: ULONG = 0x00000001;
11 extern "system" {
CreatePrivateNamespaceW( lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR, ) -> HANDLE12     pub fn CreatePrivateNamespaceW(
13         lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES,
14         lpBoundaryDescriptor: LPVOID,
15         lpAliasPrefix: LPCWSTR,
16     ) -> HANDLE;
OpenPrivateNamespaceW( lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR, ) -> HANDLE17     pub fn OpenPrivateNamespaceW(
18         lpBoundaryDescriptor: LPVOID,
19         lpAliasPrefix: LPCWSTR,
20     ) -> HANDLE;
ClosePrivateNamespace( Handle: HANDLE, Flags: ULONG, ) -> BOOLEAN21     pub fn ClosePrivateNamespace(
22         Handle: HANDLE,
23         Flags: ULONG,
24     ) -> BOOLEAN;
CreateBoundaryDescriptorW( Name: LPCWSTR, Flags: ULONG, ) -> HANDLE25     pub fn CreateBoundaryDescriptorW(
26         Name: LPCWSTR,
27         Flags: ULONG,
28     ) -> HANDLE;
AddSIDToBoundaryDescriptor( BoundaryDescriptor: *mut HANDLE, RequiredSid: PSID, ) -> BOOL29     pub fn AddSIDToBoundaryDescriptor(
30         BoundaryDescriptor: *mut HANDLE,
31         RequiredSid: PSID,
32     ) -> BOOL;
DeleteBoundaryDescriptor( BoundaryDescriptor: HANDLE, ) -> ()33     pub fn DeleteBoundaryDescriptor(
34         BoundaryDescriptor: HANDLE,
35     ) -> ();
36 }
37