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`