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