Advapi32Util.Privilege (JNA API)
Description: declaration: package: com.sun.jna.platform.win32, class: Advapi32Util, class: Privilege

Package com.sun.jna.platform.win32

# Class Advapi32Util.Privilege

java.lang.Object
com.sun.jna.platform.win32.Advapi32Util.Privilege

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

Enclosing class:
  Advapi32Util

public static class Advapi32Util.Privilege extends Object implements Closeable
Convenience class to enable certain Windows process privileges

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Privilege(String... privileges)`
  Construct and enable a set of privileges

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Calls disable() to remove the privileges
  `void`
  `disable()`
  Disabled the prior enabled privilege
  `Advapi32Util.Privilege`
  `enable()`
  Enables the given privileges.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Privilege

    public Privilege(String... privileges) throws IllegalArgumentException, Win32Exception
    Construct and enable a set of privileges
    Parameters:
      `privileges` - the names of the privileges in the form of SE_* from Advapi32.java
    Throws:
      `IllegalArgumentException`
      `Win32Exception`

- ## Method Details

  - ### close

    public void close()
    Calls disable() to remove the privileges
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    See Also:
      - `Closeable.close()`

  - ### enable

    public Advapi32Util.Privilege enable() throws Win32Exception
    Enables the given privileges. If required, it will duplicate the process token. No resources are left open when this completes. That is, it is NOT required to drop the privileges, although it is considered a best practice if you do not need it. This class is state full. It keeps track of whether it has enabled the privileges. Multiple calls to enable() without a drop() in between have no affect.
    Returns:
      pointer to self (Privilege) as a convenience for try with resources statements
    Throws:
      `Win32Exception`

  - ### disable

    public void disable() throws Win32Exception
    Disabled the prior enabled privilege
    Throws:
      `Win32Exception`