Package com.sun.jna.platform.win32

# Class W32Service

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

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public class W32Service extends Object implements Closeable
Win32 Service wrapper

Author:
  EugineLev

## Field Summary

Fields
Modifier and Type
Field
Description
`(package private) Winsvc.SC_HANDLE`
`_handle`

## Constructor Summary

Constructors
Constructor
Description
`W32Service(Winsvc.SC_HANDLE handle)`
Win32 Service

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
Close service.
`void`
`continueService()`
Continue service.
`Winsvc.ENUM_SERVICE_STATUS[]`
`enumDependentServices(int dwServiceState)`
Retrieves the name and status of each service that depends on the specified service; that is, the specified service must be running before the dependent services can run.
`Winsvc.SERVICE_FAILURE_ACTIONS`
`getFailureActions()`
Get the failure actions of the specified service.
`boolean`
`getFailureActionsFlag()`
Get the failure actions flag of the specified service.
`Winsvc.SC_HANDLE`
`getHandle()`
Gets the service handle.
`void`
`pauseService()`
Pause service.
`Winsvc.SERVICE_STATUS_PROCESS`
`queryStatus()`
Retrieves the current status of the specified service based on the specified information level.
`(package private) int`
`sanitizeWaitTime(int dwWaitHint)`
do not wait longer than the wait hint.
`void`
`setFailureActions(List<Winsvc.SC_ACTION> actions, int resetPeriod, String rebootMsg, String command)`
Set the failure actions of the specified service.
`void`
`setFailureActionsFlag(boolean flagValue)`
Set the failure action flag of the specified service.
`void`
`startService()`
`void`
`stopService()`
Stop service.
`void`
`stopService(long timeout)`
Stop service.
`void`
`waitForNonPendingState()`
Wait for the state to change to something other than a pending state.

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

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

## Field Details

### _handle

Winsvc.SC_HANDLE _handle

## Constructor Details

### W32Service

public W32Service(Winsvc.SC_HANDLE handle)
Win32 Service

Parameters:
  `handle` - A handle to the service. This handle is returned by the CreateService or OpenService function, and it must have the SERVICE_QUERY_STATUS access right.

## Method Details

### close

public void close()
Close service.

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`

### setFailureActions

public void setFailureActions(List<Winsvc.SC_ACTION> actions, int resetPeriod, String rebootMsg, String command)
Set the failure actions of the specified service. Corresponds to ChangeServiceConfig2 with parameter dwInfoLevel set to SERVICE_CONFIG_FAILURE_ACTIONS.

### getFailureActions

public Winsvc.SERVICE_FAILURE_ACTIONS getFailureActions()
Get the failure actions of the specified service. Corresponds to QueryServiceConfig2 with parameter dwInfoLevel set to SERVICE_CONFIG_FAILURE_ACTIONS.

### setFailureActionsFlag

public void setFailureActionsFlag(boolean flagValue)
Set the failure action flag of the specified service. Corresponds to ChangeServiceConfig2 with parameter dwInfoLevel set to SERVICE_CONFIG_FAILURE_ACTIONS_FLAG.

### getFailureActionsFlag

public boolean getFailureActionsFlag()
Get the failure actions flag of the specified service. Corresponds to QueryServiceConfig2 with parameter dwInfoLevel set to SERVICE_CONFIG_FAILURE_ACTIONS_FLAG.

### queryStatus

public Winsvc.SERVICE_STATUS_PROCESS queryStatus()
Retrieves the current status of the specified service based on the specified information level.

Returns:
  Service status information

### startService

public void startService()

### stopService

public void stopService()
Stop service.

### stopService

public void stopService(long timeout)
Stop service.

Parameters:
  `timeout` - timeout in ms until the service must report to be stopped

### continueService

public void continueService()
Continue service.

### pauseService

public void pauseService()
Pause service.

### sanitizeWaitTime

int sanitizeWaitTime(int dwWaitHint)
do not wait longer than the wait hint. A good interval is one-tenth the wait hint, but no less than 1 second and no more than 10 seconds.

### waitForNonPendingState

public void waitForNonPendingState()
Wait for the state to change to something other than a pending state.

### getHandle

public Winsvc.SC_HANDLE getHandle()
Gets the service handle.

Returns:
  Returns the service handle.

### enumDependentServices

public Winsvc.ENUM_SERVICE_STATUS[] enumDependentServices(int dwServiceState)
Retrieves the name and status of each service that depends on the specified service; that is, the specified service must be running before the dependent services can run.

Parameters:
  `dwServiceState` - The state of the services to be enumerated. This parameter can be one of the following values.

  Value | Meaning
  --- | ---
  `Winsvc.SERVICE_ACTIVE` | Enumerates services that are in the following states: `Winsvc.SERVICE_START_PENDING`, `Winsvc.SERVICE_STOP_PENDING`, `Winsvc.SERVICE_RUNNING`, `Winsvc.SERVICE_CONTINUE_PENDING`, `Winsvc.SERVICE_PAUSE_PENDING`, and `Winsvc.SERVICE_PAUSED`.
  `Winsvc.SERVICE_INACTIVE` | Enumerates services that are in the `Winsvc.SERVICE_STOPPED` state.
  `Winsvc.SERVICE_STATE_ALL` | Combines the following states: `Winsvc.SERVICE_ACTIVE` and `Winsvc.SERVICE_INACTIVE`.

Returns:
  array of ENUM_SERVICE_STATUS structures that receives the name and service status information for each dependent service in the database.