|
- using Microsoft.Win32.SafeHandles;
- using System;
- using System.Runtime.InteropServices;
-
- namespace Security2
- {
- internal partial class Win32
- {
- const string ADVAPI32_DLL = "advapi32.dll";
- internal const string KERNEL32_DLL = "kernel32.dll";
- internal const string AUTHZ_DLL = "authz.dll";
-
- [DllImport(ADVAPI32_DLL, EntryPoint = "GetInheritanceSourceW", CharSet = CharSet.Unicode)]
- static extern UInt32 GetInheritanceSource(
- [MarshalAs(UnmanagedType.LPTStr)] string pObjectName,
- System.Security.AccessControl.ResourceType ObjectType,
- SECURITY_INFORMATION SecurityInfo,
- [MarshalAs(UnmanagedType.Bool)]bool Container,
- IntPtr pObjectClassGuids,
- UInt32 GuidCount,
- byte[] pAcl,
- IntPtr pfnArray,
- ref GENERIC_MAPPING pGenericMapping,
- IntPtr pInheritArray
- );
-
- [DllImport(ADVAPI32_DLL, EntryPoint = "FreeInheritedFromArray", CharSet = CharSet.Unicode)]
- static extern UInt32 FreeInheritedFromArray(
- IntPtr pInheritArray,
- UInt16 AceCnt,
- IntPtr pfnArray
- );
-
- [DllImport(AUTHZ_DLL, CharSet = CharSet.Unicode, SetLastError = true)]
- [return: MarshalAs(UnmanagedType.Bool)]
- static extern bool AuthzInitializeRemoteResourceManager(
- IntPtr rpcInitInfo,
- out SafeAuthzRMHandle authRM);
-
- [DllImport(AUTHZ_DLL, CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = true)]
- [return: MarshalAs(UnmanagedType.Bool)]
- static extern bool AuthzInitializeResourceManager(
- AuthzResourceManagerFlags flags,
- IntPtr pfnAccessCheck,
- IntPtr pfnComputeDynamicGroups,
- IntPtr pfnFreeDynamicGroups,
- string szResourceManagerName,
- out SafeAuthzRMHandle phAuthzResourceManager);
-
- [DllImport(Win32.AUTHZ_DLL, CharSet = CharSet.Unicode, SetLastError = true)]
- [return: MarshalAs(UnmanagedType.Bool)]
- internal static extern bool AuthzInitializeContextFromSid(
- AuthzInitFlags flags,
- byte[] rawUserSid,
- SafeAuthzRMHandle authzRM,
- IntPtr expirationTime,
- Win32.LUID Identifier,
- IntPtr DynamicGroupArgs,
- out IntPtr authzClientContext);
-
- [DllImport(Win32.AUTHZ_DLL, CharSet = CharSet.Unicode, SetLastError = true)]
- [return: MarshalAs(UnmanagedType.Bool)]
- internal static extern bool AuthzAccessCheck(
- AuthzACFlags flags,
- IntPtr hAuthzClientContext,
- ref AUTHZ_ACCESS_REQUEST pRequest,
- IntPtr AuditEvent,
- byte[] rawSecurityDescriptor,
- IntPtr[] OptionalSecurityDescriptorArray,
- UInt32 OptionalSecurityDescriptorCount,
- ref AUTHZ_ACCESS_REPLY pReply,
- IntPtr cachedResults);
-
- [DllImport(Win32.AUTHZ_DLL, CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = true)]
- [return: MarshalAs(UnmanagedType.Bool)]
- internal static extern bool AuthzFreeContext(IntPtr authzClientContext);
-
- [DllImport(Win32.ADVAPI32_DLL, CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode)]
- public static extern UInt32 GetSecurityDescriptorLength(IntPtr pSecurityDescriptor);
-
-
- [DllImport(Win32.ADVAPI32_DLL, CallingConvention = CallingConvention.Winapi, SetLastError = true, CharSet = CharSet.Unicode)]
- internal static extern UInt32 GetSecurityInfo(
- SafeFileHandle handle,
- ObjectType objectType,
- SecurityInformationClass infoClass,
- IntPtr owner,
- IntPtr group,
- IntPtr dacl,
- IntPtr sacl,
- out IntPtr securityDescriptor);
-
- [DllImport(Win32.KERNEL32_DLL, SetLastError = true, CharSet = CharSet.Unicode)]
- internal static extern SafeFileHandle CreateFile(
- string lpFileName,
- FileAccess desiredAccess,
- FileShare shareMode,
- IntPtr lpSecurityAttributes,
- FileMode mode,
- FileFlagAttrib flagsAndAttributes,
- IntPtr hTemplateFile);
- }
- }
|