@Override
    public boolean isProcessActive(final int processId) {
      try {
        final HANDLE procHandle =
            Kernel32.INSTANCE.OpenProcess(Kernel32.PROCESS_QUERY_INFORMATION, false, processId);
        if (procHandle == null || WinBase.INVALID_HANDLE_VALUE.equals(procHandle)) {
          return false;
        } else {
          final IntByReference status = new IntByReference();
          final boolean result = Kernel32.INSTANCE.GetExitCodeProcess(procHandle, status)
              && status.getValue() == Kernel32.STILL_ACTIVE;
          Kernel32.INSTANCE.CloseHandle(procHandle);
          return result;
        }
      } catch (LastErrorException le) {
        // some problem in getting process status
        return false;
      }
    }
Implementation of {@link NativeCalls} for Windows platforms.
geode-core/src/main/java/org/apache/geode/internal/shared/NativeCallsJNAImpl.java