Java Examples for com.sun.jna.platform.win32.Winsvc.SERVICE_STATUS_PROCESS

The following java examples will help you to understand the usage of com.sun.jna.platform.win32.Winsvc.SERVICE_STATUS_PROCESS. These source code samples are taken from different open source projects.

Example 1
Project: jna-mirror-master  File: Advapi32Test.java View source code
public void testQueryServiceStatusEx() {
    SC_HANDLE scmHandle = Advapi32.INSTANCE.OpenSCManager(null, null, Winsvc.SC_MANAGER_CONNECT);
    assertNotNull(scmHandle);
    SC_HANDLE serviceHandle = Advapi32.INSTANCE.OpenService(scmHandle, "eventlog", Winsvc.SERVICE_QUERY_STATUS);
    assertNotNull(serviceHandle);
    IntByReference pcbBytesNeeded = new IntByReference();
    assertFalse(Advapi32.INSTANCE.QueryServiceStatusEx(serviceHandle, SC_STATUS_TYPE.SC_STATUS_PROCESS_INFO, null, 0, pcbBytesNeeded));
    assertEquals(W32Errors.ERROR_INSUFFICIENT_BUFFER, Kernel32.INSTANCE.GetLastError());
    assertTrue(pcbBytesNeeded.getValue() > 0);
    SERVICE_STATUS_PROCESS status = new SERVICE_STATUS_PROCESS(pcbBytesNeeded.getValue());
    assertTrue(Advapi32.INSTANCE.QueryServiceStatusEx(serviceHandle, SC_STATUS_TYPE.SC_STATUS_PROCESS_INFO, status, status.size(), pcbBytesNeeded));
    assertTrue(status.dwCurrentState == Winsvc.SERVICE_STOPPED || status.dwCurrentState == Winsvc.SERVICE_RUNNING);
    assertTrue(Advapi32.INSTANCE.CloseServiceHandle(serviceHandle));
    assertTrue(Advapi32.INSTANCE.CloseServiceHandle(scmHandle));
}
Example 2
Project: symmetric-ds-master  File: WindowsService.java View source code
@Override
public void start() {
    if (!isInstalled()) {
        super.start();
    } else if (isRunning()) {
        throw new WrapperException(Constants.RC_SERVER_ALREADY_RUNNING, 0, "Server is already running");
    } else {
        Advapi32Ex advapi = Advapi32Ex.INSTANCE;
        SC_HANDLE manager = openServiceManager();
        SC_HANDLE service = advapi.OpenService(manager, config.getName(), Winsvc.SERVICE_ALL_ACCESS);
        try {
            if (service != null) {
                System.out.println("Waiting for server to start");
                if (!advapi.StartService(service, 0, null)) {
                    throwException("StartService");
                }
                Winsvc.SERVICE_STATUS_PROCESS status = waitForService(manager, service);
                if (status.dwCurrentState == Winsvc.SERVICE_STOPPED) {
                    throw new WrapperException(Constants.RC_SERVER_EXITED, status.dwWin32ExitCode, "Unexpected exit from service");
                }
                System.out.println("Started");
            } else {
                throwException("OpenService");
            }
        } finally {
            closeServiceHandle(service);
            closeServiceHandle(manager);
        }
    }
}
Example 3
Project: jna-master  File: Advapi32Test.java View source code
public void testQueryServiceStatusEx() {
    SC_HANDLE scmHandle = Advapi32.INSTANCE.OpenSCManager(null, null, Winsvc.SC_MANAGER_CONNECT);
    assertNotNull(scmHandle);
    SC_HANDLE serviceHandle = Advapi32.INSTANCE.OpenService(scmHandle, "eventlog", Winsvc.SERVICE_QUERY_STATUS);
    assertNotNull(serviceHandle);
    IntByReference pcbBytesNeeded = new IntByReference();
    assertFalse(Advapi32.INSTANCE.QueryServiceStatusEx(serviceHandle, SC_STATUS_TYPE.SC_STATUS_PROCESS_INFO, null, 0, pcbBytesNeeded));
    assertEquals(W32Errors.ERROR_INSUFFICIENT_BUFFER, Kernel32.INSTANCE.GetLastError());
    assertTrue(pcbBytesNeeded.getValue() > 0);
    SERVICE_STATUS_PROCESS status = new SERVICE_STATUS_PROCESS(pcbBytesNeeded.getValue());
    assertTrue(Advapi32.INSTANCE.QueryServiceStatusEx(serviceHandle, SC_STATUS_TYPE.SC_STATUS_PROCESS_INFO, status, status.size(), pcbBytesNeeded));
    assertTrue(status.dwCurrentState == Winsvc.SERVICE_STOPPED || status.dwCurrentState == Winsvc.SERVICE_RUNNING);
    assertTrue(Advapi32.INSTANCE.CloseServiceHandle(serviceHandle));
    assertTrue(Advapi32.INSTANCE.CloseServiceHandle(scmHandle));
}