diff --git a/PInvoke/Shared/WinBase/SECURITY_ATTRIBUTES.cs b/PInvoke/Shared/WinBase/SECURITY_ATTRIBUTES.cs
index b21deda4..71d0bc4f 100644
--- a/PInvoke/Shared/WinBase/SECURITY_ATTRIBUTES.cs
+++ b/PInvoke/Shared/WinBase/SECURITY_ATTRIBUTES.cs
@@ -29,4 +29,34 @@ namespace Vanara.PInvoke
///
[MarshalAs(UnmanagedType.Bool)] public bool bInheritHandle;
}
+
+ ///
+ /// The SECURITY_ATTRIBUTES structure contains the security descriptor for an object and specifies whether the handle retrieved by
+ /// specifying this structure is inheritable. This structure provides security settings for objects created by various functions, such as
+ /// CreateFile, CreatePipe, CreateProcess, RegCreateKeyEx, or RegSaveKeyEx.
+ ///
+ [PInvokeData("winbase.h")]
+ [StructLayout(LayoutKind.Sequential)]
+ public struct tagSECURITY_ATTRIBUTES
+ {
+ /// The size, in bytes, of this structure. Set this value to the size of the SECURITY_ATTRIBUTES structure.
+ public int nLength;
+
+ ///
+ /// A pointer to a SECURITY_DESCRIPTOR structure that controls access to the object. If the value of this member is NULL, the object
+ /// is assigned the default security descriptor associated with the access token of the calling process. This is not the same as
+ /// granting access to everyone by assigning a NULL discretionary access control list (DACL). By default, the default DACL in the
+ /// access token of a process allows access only to the user represented by the access token.
+ ///
+ public PSECURITY_DESCRIPTOR lpSecurityDescriptor;
+
+ ///
+ /// A Boolean value that specifies whether the returned handle is inherited when a new process is created. If this member is TRUE,
+ /// the new process inherits the handle.
+ ///
+ [MarshalAs(UnmanagedType.Bool)] public bool bInheritHandle;
+
+ /// A default instance of this structure with the size set.
+ public static readonly tagSECURITY_ATTRIBUTES Default = new tagSECURITY_ATTRIBUTES { nLength = Marshal.SizeOf(typeof(SECURITY_ATTRIBUTES)) };
+ }
}
\ No newline at end of file