Package com.sun.jna.platform.win32

Source Code of com.sun.jna.platform.win32.Winsvc$SC_STATUS_TYPE

/* Copyright (c) 2010 EugineLev, All Rights Reserved
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details. 
*/
package com.sun.jna.platform.win32;


import com.sun.jna.Memory;
import com.sun.jna.Structure;
import com.sun.jna.platform.win32.WinNT.HANDLE;
import com.sun.jna.win32.StdCallLibrary;

/**
* This module defines the 32-Bit Windows types and constants that are defined
* by NT, but exposed through the Win32 API.
* Ported from Winsvc.h.
* Microsoft Windows SDK 7.0A.
* @author EugineLev
*/
public interface Winsvc extends StdCallLibrary

  /**
   *  Contains status information for a service. The ControlService, EnumDependentServices,
   *  EnumServicesStatus, and QueryServiceStatus functions use this structure. A service
   *  uses this structure in the SetServiceStatus function to report its current status
   *  to the service control manager.
   */
  public static class SERVICE_STATUS extends Structure {
   
    /**
     * dwServiceType - the type of service. This member can be one
     * of the following values:
     * SERVICE_KERNEL_DRIVER, SERVICE_FILE_SYSTEM_DRIVER,
     * SERVICE_WIN32_OWN_PROCESS, SERVICE_WIN32_SHARE_PROCESS,

     * If the service type is either SERVICE_WIN32_OWN_PROCESS or
     * SERVICE_WIN32_SHARE_PROCESS, and the service is running in the
     * context of the LocalSystem account, the following type may also
     * be specified:
     * SERVICE_INTERACTIVE_PROCESS
     *
     * These values can be found in WinNT.h
     */
    public int dwServiceType;
   
    /**
     * dwCurrentState - The current state of the service.
     * This member can be one of the following values:
     * SERVICE_STOPPED, SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,
     * SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED 
     */
    public int dwCurrentState;
   
    /**
     * dwControlsAccepted - The control codes the service accepts and processes
     * in its handler function:
     * SERVICE_ACCEPT_STOP, SERVICE_ACCEPT_PAUSE_CONTINUE, SERVICE_ACCEPT_SHUTDOWN,
     * SERVICE_ACCEPT_PARAMCHANGE,  SERVICE_ACCEPT_NETBINDCHANGE, SERVICE_ACCEPT_HARDWAREPROFILECHANGE,
     * SERVICE_ACCEPT_POWEREVENT, SERVICE_ACCEPT_SESSIONCHANGE, SERVICE_ACCEPT_PRESHUTDOWN,
     * SERVICE_ACCEPT_TIMECHANGE, SERVICE_ACCEPT_TRIGGEREVENT
     */
    public int dwControlsAccepted;
   
    /**
     * dwWin32ExitCode - The error code the service uses to report an error that occurs
     * when it is starting or stopping. To return an error code specific to the service,
     * the service must set this value to ERROR_SERVICE_SPECIFIC_ERROR to indicate that
     * the dwServiceSpecificExitCode member contains the error code. The service should
     * set this value to NO_ERROR when it is running and on normal termination.
     */
    public int dwWin32ExitCode;
   
    /**
     * dwServiceSpecificExitCode - A service-specific error code that the service returns
     * when an error occurs while the service is starting or stopping. This value is
     * ignored unless the dwWin32ExitCode member is set to ERROR_SERVICE_SPECIFIC_ERROR.
     */
    public int dwServiceSpecificExitCode;
   
    /**
     * dwCheckPoint - The check-point value the service increments periodically to report
     * its progress during a lengthy start, stop, pause, or continue operation.
     */
    public int dwCheckPoint;
   
    /**
     * dwWaitHint - The estimated time required for a pending start, stop, pause, or continue
     * operation, in milliseconds.
     */
    public int dwWaitHint;

    public SERVICE_STATUS() {
      super();
    }

  }

  /**
   * Contains process status information for a service. The ControlServiceEx,
   * EnumServicesStatusEx, NotifyServiceStatusChange, and QueryServiceStatusEx
   * functions use this structure.
   */
  public class SERVICE_STATUS_PROCESS extends Structure {
    /**
     * dwServiceType - the type of service. This member can be one
     * of the following values:
     * SERVICE_KERNEL_DRIVER, SERVICE_FILE_SYSTEM_DRIVER,
     * SERVICE_WIN32_OWN_PROCESS, SERVICE_WIN32_SHARE_PROCESS,

     * If the service type is either SERVICE_WIN32_OWN_PROCESS or
     * SERVICE_WIN32_SHARE_PROCESS, and the service is running in the
     * context of the LocalSystem account, the following type may also
     * be specified:
     * SERVICE_INTERACTIVE_PROCESS
     *
     * These values can be found in WinNT.h
     */
    public int   dwServiceType;
   
    /**
     * dwCurrentState - The current state of the service.
     * This member can be one of the following values:
     * SERVICE_STOPPED, SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING,
     * SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED 
     */
    public int   dwCurrentState;
   
    /**
     * dwControlsAccepted - The control codes the service accepts and processes
     * in its handler function:
     * SERVICE_ACCEPT_STOP, SERVICE_ACCEPT_PAUSE_CONTINUE, SERVICE_ACCEPT_SHUTDOWN,
     * SERVICE_ACCEPT_PARAMCHANGE,  SERVICE_ACCEPT_NETBINDCHANGE, SERVICE_ACCEPT_HARDWAREPROFILECHANGE,
     * SERVICE_ACCEPT_POWEREVENT, SERVICE_ACCEPT_SESSIONCHANGE, SERVICE_ACCEPT_PRESHUTDOWN,
     * SERVICE_ACCEPT_TIMECHANGE, SERVICE_ACCEPT_TRIGGEREVENT
     */
    public int   dwControlsAccepted;
   
    /**
     * dwWin32ExitCode - The error code the service uses to report an error that occurs
     * when it is starting or stopping. To return an error code specific to the service,
     * the service must set this value to ERROR_SERVICE_SPECIFIC_ERROR to indicate that
     * the dwServiceSpecificExitCode member contains the error code. The service should
     * set this value to NO_ERROR when it is running and on normal termination.
     */
    public int   dwWin32ExitCode;
   
    /**
     * dwServiceSpecificExitCode - A service-specific error code that the service returns
     * when an error occurs while the service is starting or stopping. This value is
     * ignored unless the dwWin32ExitCode member is set to ERROR_SERVICE_SPECIFIC_ERROR.
     */
    public int   dwServiceSpecificExitCode;
   
    /**
     * dwCheckPoint - The check-point value the service increments periodically to report
     * its progress during a lengthy start, stop, pause, or continue operation.
     */
    public int   dwCheckPoint;
   
    /**
     * dwWaitHint - The estimated time required for a pending start, stop, pause, or continue
     * operation, in milliseconds.
     */
    public int   dwWaitHint;
   
    /**
     * dwProcessId - The process identifier of the service.
     */
    public int   dwProcessId;
   
    /**
     * This member can be one of the following values: 0, or SERVICE_RUNS_IN_SYSTEM_PROCESS
     */
    public int   dwServiceFlags;
   
    public SERVICE_STATUS_PROCESS() {
    }
   
    public SERVICE_STATUS_PROCESS(int size) {
      super(new Memory(size));
    }
  }
 
  //
  // Service flags for QueryServiceStatusEx
  //
  public static final int SERVICE_RUNS_IN_SYSTEM_PROCESS = 0x00000001;
 
  public static class SC_HANDLE extends HANDLE { }
 
  //
  // Service Control Manager object specific access types
  //
  public static final int SC_MANAGER_CONNECT        = 0x0001;
  public static final int SC_MANAGER_CREATE_SERVICE    = 0x0002;
  public static final int SC_MANAGER_ENUMERATE_SERVICE  = 0x0004;
  public static final int SC_MANAGER_LOCK          = 0x0008;
  public static final int SC_MANAGER_QUERY_LOCK_STATUS  = 0x0010;
  public static final int SC_MANAGER_MODIFY_BOOT_CONFIG  = 0x0020;

  public static final int SC_MANAGER_ALL_ACCESS =
    WinNT.STANDARD_RIGHTS_REQUIRED | SC_MANAGER_CONNECT
    | SC_MANAGER_CREATE_SERVICE | SC_MANAGER_ENUMERATE_SERVICE
    | SC_MANAGER_LOCK | SC_MANAGER_QUERY_LOCK_STATUS 
    | SC_MANAGER_MODIFY_BOOT_CONFIG;

  //
  // Service object specific access type
  //
  public static final int SERVICE_QUERY_CONFIG      = 0x0001;
  public static final int SERVICE_CHANGE_CONFIG      = 0x0002;
  public static final int SERVICE_QUERY_STATUS      = 0x0004;
  public static final int SERVICE_ENUMERATE_DEPENDENTS  = 0x0008;
  public static final int SERVICE_START          = 0x0010;
  public static final int SERVICE_STOP          = 0x0020;
  public static final int SERVICE_PAUSE_CONTINUE      = 0x0040;
  public static final int SERVICE_INTERROGATE        = 0x0080;
  public static final int SERVICE_USER_DEFINED_CONTROL  = 0x0100;

  public static final int SERVICE_ALL_ACCESS =
    WinNT.STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG
    | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS
    | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP
    | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE
    | SERVICE_USER_DEFINED_CONTROL;

  //
  // Controls
  //
  public static final int  SERVICE_CONTROL_STOP      = 0x00000001;
  public static final int  SERVICE_CONTROL_PAUSE      = 0x00000002;
  public static final int  SERVICE_CONTROL_CONTINUE    = 0x00000003;
  public static final int  SERVICE_CONTROL_INTERROGATE  = 0x00000004;
//  public static final int  SERVICE_CONTROL_SHUTDOWN    = 0x00000005;
  public static final int  SERVICE_CONTROL_PARAMCHANGE  = 0x00000006;
  public static final int  SERVICE_CONTROL_NETBINDADD    = 0x00000007;
  public static final int  SERVICE_CONTROL_NETBINDREMOVE  = 0x00000008;
  public static final int  SERVICE_CONTROL_NETBINDENABLE  = 0x00000009;
  public static final int  SERVICE_CONTROL_NETBINDDISABLE  = 0x0000000A;
//  public static final int SERVICE_CONTROL_DEVICEEVENT    = 0x0000000B;
//  public static final int SERVICE_CONTROL_HARDWAREPROFILECHANGE = 0x0000000C;
//  public static final int SERVICE_CONTROL_POWEREVENT    = 0x0000000D;
//  public static final int SERVICE_CONTROL_SESSIONCHANGE  = 0x0000000E;
//  public static final int SERVICE_CONTROL_PRESHUTDOWN    = 0x0000000F;
//  public static final int SERVICE_CONTROL_TIMECHANGE    = 0x00000010;
//  public static final int SERVICE_CONTROL_TRIGGEREVENT  = 0x00000020;
 
  //
  // Service State -- for CurrentState
  //
  public static final int SERVICE_STOPPED        = 0x00000001;
  public static final int SERVICE_START_PENDING    = 0x00000002;
  public static final int SERVICE_STOP_PENDING    = 0x00000003;
  public static final int SERVICE_RUNNING        = 0x00000004;
  public static final int SERVICE_CONTINUE_PENDING  = 0x00000005;
  public static final int SERVICE_PAUSE_PENDING    = 0x00000006;
  public static final int SERVICE_PAUSED        = 0x00000007;

  //
  // Controls Accepted  (Bit Mask)
  //
  public static final int SERVICE_ACCEPT_STOP            = 0x00000001;
  public static final int SERVICE_ACCEPT_PAUSE_CONTINUE      = 0x00000002;
  public static final int SERVICE_ACCEPT_SHUTDOWN          = 0x00000004;
  public static final int SERVICE_ACCEPT_PARAMCHANGE        = 0x00000008;
  public static final int SERVICE_ACCEPT_NETBINDCHANGE      = 0x00000010;
  public static final int SERVICE_ACCEPT_HARDWAREPROFILECHANGE  = 0x00000020;
  public static final int SERVICE_ACCEPT_POWEREVENT        = 0x00000040;
  public static final int SERVICE_ACCEPT_SESSIONCHANGE      = 0x00000080;
  public static final int SERVICE_ACCEPT_PRESHUTDOWN        = 0x00000100;
  public static final int SERVICE_ACCEPT_TIMECHANGE        = 0x00000200;
  public static final int SERVICE_ACCEPT_TRIGGEREVENT        = 0x00000400;
 
  /**
   * The SC_STATUS_TYPE enumeration type contains values
   */
  public abstract class SC_STATUS_TYPE {
    public static final int SC_STATUS_PROCESS_INFO = 0;
  }

}
TOP

Related Classes of com.sun.jna.platform.win32.Winsvc$SC_STATUS_TYPE

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.