JNA API 3.5.2-SNAPSHOT

## com.sun.jna.platform.win32
Class Advapi32Util

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

    public abstract class Advapi32Util

extends java.lang.Object

Advapi32 utility API.

Author:
  dblock[at]dblock.org

Nested Class Summary
`static class` `Advapi32Util.Account` An account.
`static class` `Advapi32Util.EnumKey`
`static class` `Advapi32Util.EventLogIterator` An iterator for Event Log entries.
`static class` `Advapi32Util.EventLogRecord` An event log record.
`static class` `Advapi32Util.EventLogType` Event log types.
`static class` `Advapi32Util.InfoKey`

Constructor Summary
`Advapi32Util()`

Method Summary
`static java.lang.String` `convertSidToStringSid(WinNT.PSID sid)` Convert a security identifier (SID) to a string format suitable for display, storage, or transmission.
`static byte[]` `convertStringSidToSid(java.lang.String sidString)` Convert a string representation of a security identifier (SID) to a binary format.
`static Advapi32Util.Account` `getAccountByName(java.lang.String accountName)` Retrieves a security identifier (SID) for the account on the current system.
`static Advapi32Util.Account` `getAccountByName(java.lang.String systemName, java.lang.String accountName)` Retrieves a security identifier (SID) for a given account.
`static Advapi32Util.Account` `getAccountBySid(java.lang.String sidString)` Get an account name from a string SID on the local machine.
`static Advapi32Util.Account` `getAccountBySid(java.lang.String systemName, java.lang.String sidString)` Get an account name from a string SID.
`static Advapi32Util.Account` `getAccountBySid(java.lang.String systemName, WinNT.PSID sid)` Get the account by SID.
`static Advapi32Util.Account` `getAccountBySid(WinNT.PSID sid)` Get the account by SID on the local system.
`static Advapi32Util.Account[]` `getCurrentUserGroups()` Return the group memberships of the currently logged on user.

`static java.lang.String`

`getEnvironmentBlock(java.util.Map<java.lang.String,java.lang.String> environment)`
Converts a map of environment variables to an environment block suitable for `Advapi32.CreateProcessAsUser(com.sun.jna.platform.win32.WinNT.HANDLE, java.lang.String, java.lang.String, com.sun.jna.platform.win32.WinBase.SECURITY_ATTRIBUTES, com.sun.jna.platform.win32.WinBase.SECURITY_ATTRIBUTES, boolean, int, java.lang.String, java.lang.String, com.sun.jna.platform.win32.WinBase.STARTUPINFO, com.sun.jna.platform.win32.WinBase.PROCESS_INFORMATION)`.

`static WinNT.ACCESS_ACEStructure[]` `getFileSecurity(java.lang.String fileName, boolean compact)`
`static Advapi32Util.Account` `getTokenAccount(WinNT.HANDLE hToken)` This function returns the information about the user who owns a security token,
`static Advapi32Util.Account[]` `getTokenGroups(WinNT.HANDLE hToken)` This function returns the groups associated with a security token, such as a user token.
`static java.lang.String` `getUserName()` Retrieves the name of the user associated with the current thread.
`static boolean` `isWellKnownSid(byte[] sidBytes, int wellKnownSidType)` Compares a SID to a well known SID and returns TRUE if they match.
`static boolean` `isWellKnownSid(java.lang.String sidString, int wellKnownSidType)` Compares a SID to a well known SID and returns TRUE if they match.
`static boolean` `registryCreateKey(WinReg.HKEY hKey, java.lang.String keyName)` Create a registry key.
`static boolean` `registryCreateKey(WinReg.HKEY root, java.lang.String parentPath, java.lang.String keyName)` Create a registry key.
`static void` `registryDeleteKey(WinReg.HKEY hKey, java.lang.String keyName)` Delete a registry key.
`static void` `registryDeleteKey(WinReg.HKEY root, java.lang.String keyPath, java.lang.String keyName)` Delete a registry key.
`static void` `registryDeleteValue(WinReg.HKEY hKey, java.lang.String valueName)` Delete a registry value.
`static void` `registryDeleteValue(WinReg.HKEY root, java.lang.String keyPath, java.lang.String valueName)` Delete a registry value.
`static byte[]` `registryGetBinaryValue(WinReg.HKEY root, java.lang.String key, java.lang.String value)` Get a registry REG_BINARY value.
`static java.lang.String` `registryGetExpandableStringValue(WinReg.HKEY root, java.lang.String key, java.lang.String value)` Get a registry REG_EXPAND_SZ value.
`static int` `registryGetIntValue(WinReg.HKEY root, java.lang.String key, java.lang.String value)` Get a registry DWORD value.
`static WinReg.HKEYByReference` `registryGetKey(WinReg.HKEY root, java.lang.String keyPath, int samDesired)` Get a registry key, the caller is responsible to close the key after use.
`static java.lang.String[]` `registryGetKeys(WinReg.HKEY hKey)` Get names of the registry key's sub-keys.
`static java.lang.String[]` `registryGetKeys(WinReg.HKEY root, java.lang.String keyPath)` Get names of the registry key's sub-keys.
`static long` `registryGetLongValue(WinReg.HKEY root, java.lang.String key, java.lang.String value)` Get a registry QWORD value.
`static java.lang.String[]` `registryGetStringArray(WinReg.HKEY root, java.lang.String key, java.lang.String value)` Get a registry REG_MULTI_SZ value.
`static java.lang.String` `registryGetStringValue(WinReg.HKEY root, java.lang.String key, java.lang.String value)` Get a registry REG_SZ value.
`static java.lang.Object` `registryGetValue(WinReg.HKEY hkKey, java.lang.String subKey, java.lang.String lpValueName)` Get a registry value and returns a java object depending on the value type.
`static java.util.TreeMap<java.lang.String,java.lang.Object>` `registryGetValues(WinReg.HKEY hKey)` Get a table of registry values.
`static java.util.TreeMap<java.lang.String,java.lang.Object>` `registryGetValues(WinReg.HKEY root, java.lang.String keyPath)` Get a table of registry values.
`static boolean` `registryKeyExists(WinReg.HKEY root, java.lang.String key)` Checks whether a registry key exists.
`static Advapi32Util.InfoKey` `registryQueryInfoKey(WinReg.HKEY hKey, int lpcbSecurityDescriptor)` Queries the information about a specified key.
`static Advapi32Util.EnumKey` `registryRegEnumKey(WinReg.HKEY hKey, int dwIndex)` Queries the information about a specified key.
`static void` `registrySetBinaryValue(WinReg.HKEY hKey, java.lang.String name, byte[] data)` Set a binary value in registry.
`static void` `registrySetBinaryValue(WinReg.HKEY root, java.lang.String keyPath, java.lang.String name, byte[] data)` Set a binary value in registry.
`static void` `registrySetExpandableStringValue(WinReg.HKEY hKey, java.lang.String name, java.lang.String value)` Set an expandable string value in registry.
`static void` `registrySetExpandableStringValue(WinReg.HKEY root, java.lang.String keyPath, java.lang.String name, java.lang.String value)` Set a string value in registry.
`static void` `registrySetIntValue(WinReg.HKEY hKey, java.lang.String name, int value)` Set an integer value in registry.
`static void` `registrySetIntValue(WinReg.HKEY root, java.lang.String keyPath, java.lang.String name, int value)` Set an integer value in registry.
`static void` `registrySetLongValue(WinReg.HKEY hKey, java.lang.String name, long value)` Set a long value in registry.
`static void` `registrySetLongValue(WinReg.HKEY root, java.lang.String keyPath, java.lang.String name, long value)` Set a long value in registry.
`static void` `registrySetStringArray(WinReg.HKEY hKey, java.lang.String name, java.lang.String[] arr)` Set a string array value in registry.
`static void` `registrySetStringArray(WinReg.HKEY root, java.lang.String keyPath, java.lang.String name, java.lang.String[] arr)` Set a string array value in registry.
`static void` `registrySetStringValue(WinReg.HKEY hKey, java.lang.String name, java.lang.String value)` Set a string value in registry.
`static void` `registrySetStringValue(WinReg.HKEY root, java.lang.String keyPath, java.lang.String name, java.lang.String value)` Set a string value in registry.
`static boolean` `registryValueExists(WinReg.HKEY root, java.lang.String key, java.lang.String value)` Checks whether a registry value exists.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Advapi32Util

    public Advapi32Util()

Method Detail

### getUserName

    public static java.lang.String getUserName()

  Retrieves the name of the user associated with the current thread.

  Returns:
    A user name.

### getAccountByName

    public static Advapi32Util.Account getAccountByName(java.lang.String accountName)

  Retrieves a security identifier (SID) for the account on the current system.

  Parameters:
    `accountName` - Specifies the account name.
  Returns:
    A structure containing the account SID;

### getAccountByName

    public static Advapi32Util.Account getAccountByName(java.lang.String systemName,
                                                        java.lang.String accountName)

  Retrieves a security identifier (SID) for a given account.

  Parameters:
    `systemName` - Name of the system.
    `accountName` - Account name.
  Returns:
    A structure containing the account SID.

### getAccountBySid

    public static Advapi32Util.Account getAccountBySid(WinNT.PSID sid)

  Get the account by SID on the local system.

  Parameters:
    `sid` - SID.
  Returns:
    Account.

### getAccountBySid

    public static Advapi32Util.Account getAccountBySid(java.lang.String systemName,
                                                       WinNT.PSID sid)

  Get the account by SID.

  Parameters:
    `systemName` - Name of the system.
    `sid` - SID.
  Returns:
    Account.

### convertSidToStringSid

    public static java.lang.String convertSidToStringSid(WinNT.PSID sid)

  Convert a security identifier (SID) to a string format suitable for display, storage, or transmission.

  Parameters:
    `sid` - SID bytes.
  Returns:
    String SID.

### convertStringSidToSid

    public static byte[] convertStringSidToSid(java.lang.String sidString)

  Convert a string representation of a security identifier (SID) to a binary format.

  Parameters:
    `sidString` - String SID.
  Returns:
    SID bytes.

### isWellKnownSid

    public static boolean isWellKnownSid(java.lang.String sidString,
                                         int wellKnownSidType)

  Compares a SID to a well known SID and returns TRUE if they match.

  Parameters:
    `sidString` - String representation of a SID.
    `wellKnownSidType` - Member of the WELL_KNOWN_SID_TYPE enumeration to compare with the SID at pSid.
  Returns:
    True if the SID is of the well-known type, false otherwise.

### isWellKnownSid

    public static boolean isWellKnownSid(byte[] sidBytes,
                                         int wellKnownSidType)

  Compares a SID to a well known SID and returns TRUE if they match.

  Parameters:
    `sidBytes` - Byte representation of a SID.
    `wellKnownSidType` - Member of the WELL_KNOWN_SID_TYPE enumeration to compare with the SID at pSid.
  Returns:
    True if the SID is of the well-known type, false otherwise.

### getAccountBySid

    public static Advapi32Util.Account getAccountBySid(java.lang.String sidString)

  Get an account name from a string SID on the local machine.

  Parameters:
    `sidString` - SID.
  Returns:
    Account.

### getAccountBySid

    public static Advapi32Util.Account getAccountBySid(java.lang.String systemName,
                                                       java.lang.String sidString)

  Get an account name from a string SID.

  Parameters:
    `systemName` - System name.
    `sidString` - SID.
  Returns:
    Account.

### getTokenGroups

    public static Advapi32Util.Account[] getTokenGroups(WinNT.HANDLE hToken)

  This function returns the groups associated with a security token, such as a user token.

  Parameters:
    `hToken` - Token.
  Returns:
    Token groups.

### getTokenAccount

    public static Advapi32Util.Account getTokenAccount(WinNT.HANDLE hToken)

  This function returns the information about the user who owns a security token,

  Parameters:
    `hToken` - Token.
  Returns:
    Token user.

### getCurrentUserGroups

    public static Advapi32Util.Account[] getCurrentUserGroups()

  Return the group memberships of the currently logged on user.

  Returns:
    An array of groups.

### registryKeyExists

    public static boolean registryKeyExists(WinReg.HKEY root,
                                            java.lang.String key)

  Checks whether a registry key exists.

  Parameters:
    `root` - HKEY_LOCAL_MACHINE, etc.
    `key` - Path to the registry key.
  Returns:
    True if the key exists.

### registryValueExists

    public static boolean registryValueExists(WinReg.HKEY root,
                                              java.lang.String key,
                                              java.lang.String value)

  Checks whether a registry value exists.

  Parameters:
    `root` - HKEY_LOCAL_MACHINE, etc.
    `key` - Registry key path.
    `value` - Value name.
  Returns:
    True if the value exists.

### registryGetStringValue

    public static java.lang.String registryGetStringValue(WinReg.HKEY root,
                                                          java.lang.String key,
                                                          java.lang.String value)

  Get a registry REG_SZ value.

  Parameters:
    `root` - Root key.
    `key` - Registry path.
    `value` - Name of the value to retrieve.
  Returns:
    String value.

### registryGetExpandableStringValue

    public static java.lang.String registryGetExpandableStringValue(WinReg.HKEY root,
                                                                    java.lang.String key,
                                                                    java.lang.String value)

  Get a registry REG_EXPAND_SZ value.

  Parameters:
    `root` - Root key.
    `key` - Registry path.
    `value` - Name of the value to retrieve.
  Returns:
    String value.

### registryGetStringArray

    public static java.lang.String[] registryGetStringArray(WinReg.HKEY root,
                                                            java.lang.String key,
                                                            java.lang.String value)

  Get a registry REG_MULTI_SZ value.

  Parameters:
    `root` - Root key.
    `key` - Registry path.
    `value` - Name of the value to retrieve.
  Returns:
    String value.

### registryGetBinaryValue

    public static byte[] registryGetBinaryValue(WinReg.HKEY root,
                                                java.lang.String key,
                                                java.lang.String value)

  Get a registry REG_BINARY value.

  Parameters:
    `root` - Root key.
    `key` - Registry path.
    `value` - Name of the value to retrieve.
  Returns:
    String value.

### registryGetIntValue

    public static int registryGetIntValue(WinReg.HKEY root,
                                          java.lang.String key,
                                          java.lang.String value)

  Get a registry DWORD value.

  Parameters:
    `root` - Root key.
    `key` - Registry key path.
    `value` - Name of the value to retrieve.
  Returns:
    Integer value.

### registryGetLongValue

    public static long registryGetLongValue(WinReg.HKEY root,
                                            java.lang.String key,
                                            java.lang.String value)

  Get a registry QWORD value.

  Parameters:
    `root` - Root key.
    `key` - Registry key path.
    `value` - Name of the value to retrieve.
  Returns:
    Integer value.

### registryGetValue

    public static java.lang.Object registryGetValue(WinReg.HKEY hkKey,
                                                    java.lang.String subKey,
                                                    java.lang.String lpValueName)

  Get a registry value and returns a java object depending on the value type.

  Parameters:
    `hkKey` - Root key.
    `subKey` - Registry key path.
    `lpValueName` - Name of the value to retrieve or null for the default value.
  Returns:
    Object value.

### registryCreateKey

    public static boolean registryCreateKey(WinReg.HKEY hKey,
                                            java.lang.String keyName)

  Create a registry key.

  Parameters:
    `hKey` - Parent key.
    `keyName` - Key name.
  Returns:
    True if the key was created, false otherwise.

### registryCreateKey

    public static boolean registryCreateKey(WinReg.HKEY root,
                                            java.lang.String parentPath,
                                            java.lang.String keyName)

  Create a registry key.

  Parameters:
    `root` - Root key.
    `parentPath` - Path to an existing registry key.
    `keyName` - Key name.
  Returns:
    True if the key was created, false otherwise.

### registrySetIntValue

    public static void registrySetIntValue(WinReg.HKEY hKey,
                                           java.lang.String name,
                                           int value)

  Set an integer value in registry.

  Parameters:
    `hKey` - Parent key.
    `name` - Value name.
    `value` - Value to write to registry.

### registrySetIntValue

    public static void registrySetIntValue(WinReg.HKEY root,
                                           java.lang.String keyPath,
                                           java.lang.String name,
                                           int value)

  Set an integer value in registry.

  Parameters:
    `root` - Root key.
    `keyPath` - Path to an existing registry key.
    `name` - Value name.
    `value` - Value to write to registry.

### registrySetLongValue

    public static void registrySetLongValue(WinReg.HKEY hKey,
                                            java.lang.String name,
                                            long value)

  Set a long value in registry.

  Parameters:
    `hKey` - Parent key.
    `name` - Value name.
    `value` - Value to write to registry.

### registrySetLongValue

    public static void registrySetLongValue(WinReg.HKEY root,
                                            java.lang.String keyPath,
                                            java.lang.String name,
                                            long value)

  Set a long value in registry.

  Parameters:
    `root` - Root key.
    `keyPath` - Path to an existing registry key.
    `name` - Value name.
    `value` - Value to write to registry.

### registrySetStringValue

    public static void registrySetStringValue(WinReg.HKEY hKey,
                                              java.lang.String name,
                                              java.lang.String value)

  Set a string value in registry.

  Parameters:
    `hKey` - Parent key.
    `name` - Value name.
    `value` - Value to write to registry.

### registrySetStringValue

    public static void registrySetStringValue(WinReg.HKEY root,
                                              java.lang.String keyPath,
                                              java.lang.String name,
                                              java.lang.String value)

  Set a string value in registry.

  Parameters:
    `root` - Root key.
    `keyPath` - Path to an existing registry key.
    `name` - Value name.
    `value` - Value to write to registry.

### registrySetExpandableStringValue

    public static void registrySetExpandableStringValue(WinReg.HKEY hKey,
                                                        java.lang.String name,
                                                        java.lang.String value)

  Set an expandable string value in registry.

  Parameters:
    `hKey` - Parent key.
    `name` - Value name.
    `value` - Value to write to registry.

### registrySetExpandableStringValue

    public static void registrySetExpandableStringValue(WinReg.HKEY root,
                                                        java.lang.String keyPath,
                                                        java.lang.String name,
                                                        java.lang.String value)

  Set a string value in registry.

  Parameters:
    `root` - Root key.
    `keyPath` - Path to an existing registry key.
    `name` - Value name.
    `value` - Value to write to registry.

### registrySetStringArray

    public static void registrySetStringArray(WinReg.HKEY hKey,
                                              java.lang.String name,
                                              java.lang.String[] arr)

  Set a string array value in registry.

  Parameters:
    `hKey` - Parent key.
    `name` - Name.
    `arr` - Array of strings to write to registry.

### registrySetStringArray

    public static void registrySetStringArray(WinReg.HKEY root,
                                              java.lang.String keyPath,
                                              java.lang.String name,
                                              java.lang.String[] arr)

  Set a string array value in registry.

  Parameters:
    `root` - Root key.
    `keyPath` - Path to an existing registry key.
    `name` - Value name.
    `arr` - Array of strings to write to registry.

### registrySetBinaryValue

    public static void registrySetBinaryValue(WinReg.HKEY hKey,
                                              java.lang.String name,
                                              byte[] data)

  Set a binary value in registry.

  Parameters:
    `hKey` - Parent key.
    `name` - Value name.
    `data` - Data to write to registry.

### registrySetBinaryValue

    public static void registrySetBinaryValue(WinReg.HKEY root,
                                              java.lang.String keyPath,
                                              java.lang.String name,
                                              byte[] data)

  Set a binary value in registry.

  Parameters:
    `root` - Root key.
    `keyPath` - Path to an existing registry key.
    `name` - Value name.
    `data` - Data to write to registry.

### registryDeleteKey

    public static void registryDeleteKey(WinReg.HKEY hKey,
                                         java.lang.String keyName)

  Delete a registry key.

  Parameters:
    `hKey` - Parent key.
    `keyName` - Name of the key to delete.

### registryDeleteKey

    public static void registryDeleteKey(WinReg.HKEY root,
                                         java.lang.String keyPath,
                                         java.lang.String keyName)

  Delete a registry key.

  Parameters:
    `root` - Root key.
    `keyPath` - Path to an existing registry key.
    `keyName` - Name of the key to delete.

### registryDeleteValue

    public static void registryDeleteValue(WinReg.HKEY hKey,
                                           java.lang.String valueName)

  Delete a registry value.

  Parameters:
    `hKey` - Parent key.
    `valueName` - Name of the value to delete.

### registryDeleteValue

    public static void registryDeleteValue(WinReg.HKEY root,
                                           java.lang.String keyPath,
                                           java.lang.String valueName)

  Delete a registry value.

  Parameters:
    `root` - Root key.
    `keyPath` - Path to an existing registry key.
    `valueName` - Name of the value to delete.

### registryGetKeys

    public static java.lang.String[] registryGetKeys(WinReg.HKEY hKey)

  Get names of the registry key's sub-keys.

  Parameters:
    `hKey` - Registry key.
  Returns:
    Array of registry key names.

### registryGetKeys

    public static java.lang.String[] registryGetKeys(WinReg.HKEY root,
                                                     java.lang.String keyPath)

  Get names of the registry key's sub-keys.

  Parameters:
    `root` - Root key.
    `keyPath` - Path to a registry key.
  Returns:
    Array of registry key names.

### registryGetKey

    public static WinReg.HKEYByReference registryGetKey(WinReg.HKEY root,
                                                        java.lang.String keyPath,
                                                        int samDesired)

  Get a registry key, the caller is responsible to close the key after use.

  Parameters:
    `root` - Root key.
    `keyPath` - Path to a registry key.
    `samDesired` - Access level (e.g. WinNT.KEY_READ)
  Returns:
    HKEYByReference.

### registryGetValues

    public static java.util.TreeMap<java.lang.String,java.lang.Object> registryGetValues(WinReg.HKEY hKey)

  Get a table of registry values.

  Parameters:
    `hKey` - Registry key.
  Returns:
    Table of values.

### registryGetValues

    public static java.util.TreeMap<java.lang.String,java.lang.Object> registryGetValues(WinReg.HKEY root,
                                                                                         java.lang.String keyPath)

  Get a table of registry values.

  Parameters:
    `root` - Registry root.
    `keyPath` - Regitry key path.
  Returns:
    Table of values.

### registryQueryInfoKey

    public static Advapi32Util.InfoKey registryQueryInfoKey(WinReg.HKEY hKey,
                                                            int lpcbSecurityDescriptor)

  Queries the information about a specified key.

  Parameters:
    `hKey` - Current registry key.
  Returns:
    A InfoKey value object.

### registryRegEnumKey

    public static Advapi32Util.EnumKey registryRegEnumKey(WinReg.HKEY hKey,
                                                          int dwIndex)

  Queries the information about a specified key.

  Parameters:
    `hKey` - Current registry key.
  Returns:
    A InfoKey value object.

### getEnvironmentBlock

    public static java.lang.String getEnvironmentBlock(java.util.Map<java.lang.String,java.lang.String> environment)

  Converts a map of environment variables to an environment block suitable for `Advapi32.CreateProcessAsUser(com.sun.jna.platform.win32.WinNT.HANDLE, java.lang.String, java.lang.String, com.sun.jna.platform.win32.WinBase.SECURITY_ATTRIBUTES, com.sun.jna.platform.win32.WinBase.SECURITY_ATTRIBUTES, boolean, int, java.lang.String, java.lang.String, com.sun.jna.platform.win32.WinBase.STARTUPINFO, com.sun.jna.platform.win32.WinBase.PROCESS_INFORMATION)`. This environment block consists of null-terminated blocks of null-terminated strings. Each string is in the following form: name=value\0

  Parameters:
    `environment` - Environment variables
  Returns:
    A environment block

### getFileSecurity

    public static WinNT.ACCESS_ACEStructure[] getFileSecurity(java.lang.String fileName,
                                                              boolean compact)

JNA API 3.5.2-SNAPSHOT

Copyright © 2007-2013 Timothy Wall. All Rights Reserved.