Class SECURITY_ATTRIBUTES

  • All Implemented Interfaces:
    java.lang.AutoCloseable, NativeResource, Pointer

    public class SECURITY_ATTRIBUTES
    extends Struct
    implements NativeResource
    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.

    Member documentation

    • nLength – the size, in bytes, of this structure. Set this value to SIZEOF.
    • lpSecurityDescriptor – 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.
    • bInheritHandle – specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle.

    Layout

    
     struct SECURITY_ATTRIBUTES {
         DWORD nLength;
         LPVOID lpSecurityDescriptor;
         BOOL bInheritHandle;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • NLENGTH, LPSECURITYDESCRIPTOR, BINHERITHANDLE

        The struct member offsets.
    • Constructor Detail

      • SECURITY_ATTRIBUTES

        public SECURITY_ATTRIBUTES​(java.nio.ByteBuffer container)
        Creates a SECURITY_ATTRIBUTES instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

        The created instance holds a strong reference to the container object.

    • Method Detail

      • sizeof

        public int sizeof()
        Description copied from class: Struct
        Returns sizeof(struct).
        Specified by:
        sizeof in class Struct
      • nLength

        public int nLength()
        Returns the value of the nLength field.
      • lpSecurityDescriptor

        public long lpSecurityDescriptor()
        Returns the value of the lpSecurityDescriptor field.
      • bInheritHandle

        public boolean bInheritHandle()
        Returns the value of the bInheritHandle field.
      • nLength

        public SECURITY_ATTRIBUTES nLength​(int value)
        Sets the specified value to the nLength field.
      • lpSecurityDescriptor

        public SECURITY_ATTRIBUTES lpSecurityDescriptor​(long value)
        Sets the specified value to the lpSecurityDescriptor field.
      • bInheritHandle

        public SECURITY_ATTRIBUTES bInheritHandle​(boolean value)
        Sets the specified value to the bInheritHandle field.
      • set

        public SECURITY_ATTRIBUTES set​(int nLength,
                                       long lpSecurityDescriptor,
                                       boolean bInheritHandle)
        Initializes this struct with the specified values.
      • malloc

        public static SECURITY_ATTRIBUTES malloc()
        Returns a new SECURITY_ATTRIBUTES instance allocated with memAlloc. The instance must be explicitly freed.
      • calloc

        public static SECURITY_ATTRIBUTES calloc()
        Returns a new SECURITY_ATTRIBUTES instance allocated with memCalloc. The instance must be explicitly freed.
      • create

        public static SECURITY_ATTRIBUTES create​(long address)
        Returns a new SECURITY_ATTRIBUTES instance for the specified memory address.
      • createSafe

        @Nullable
        public static SECURITY_ATTRIBUTES createSafe​(long address)
        Like create, but returns null if address is NULL.
      • callocStack

        public static SECURITY_ATTRIBUTES callocStack()
        Returns a new SECURITY_ATTRIBUTES instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      • mallocStack

        public static SECURITY_ATTRIBUTES mallocStack​(MemoryStack stack)
        Returns a new SECURITY_ATTRIBUTES instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
      • callocStack

        public static SECURITY_ATTRIBUTES callocStack​(MemoryStack stack)
        Returns a new SECURITY_ATTRIBUTES instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
      • nnLength

        public static int nnLength​(long struct)
        Unsafe version of nLength().
      • nlpSecurityDescriptor

        public static long nlpSecurityDescriptor​(long struct)
        Unsafe version of lpSecurityDescriptor().
      • nbInheritHandle

        public static int nbInheritHandle​(long struct)
        Unsafe version of bInheritHandle().
      • nnLength

        public static void nnLength​(long struct,
                                    int value)
        Unsafe version of nLength.
      • nlpSecurityDescriptor

        public static void nlpSecurityDescriptor​(long struct,
                                                 long value)
        Unsafe version of lpSecurityDescriptor.
      • nbInheritHandle

        public static void nbInheritHandle​(long struct,
                                           int value)
        Unsafe version of bInheritHandle.
      • validate

        public static void validate​(long struct)
        Validates pointer members that should not be NULL.
        Parameters:
        struct - the struct to validate
      • validate

        public static void validate​(long array,
                                    int count)
        Calls validate(long) for each struct contained in the specified struct array.
        Parameters:
        array - the struct array to validate
        count - the number of structs in array