int main(void) { elevate_privileges(); int system_info = ClearStandbyPageList; NTSTATUS ret = NtSetSystemInformation(SystemMemoryListInformation, &system_info, sizeof(system_info)); printf("NtSetSystemInformation() result: %#x (%u)\n", ret, ret); return 0; }
int main(int argc, char **argv) { int do_fork = 1; char *config_fn = DEFAULT_CONFIG_FILE; char *pid_fn = DEFAULT_PID_FILE; int c; evloop = EV_DEFAULT; ev_started_at = ev_time(); opterr = 0; while ((c = getopt (argc, argv, "vhdfc:p:s:l:")) != -1) { switch (c) { case 'v': verbose++; break; case 'h': usage(0); return 0; case 'd': debug = 1; do_fork = 0; break; case 'f': do_fork = 0; break; case 'c': config_fn = optarg; break; case 'p': pid_fn = optarg; break; case 's': server_str_id = strdup(optarg); break; case 'l': server_listen_port = atoi(optarg); if (server_listen_port < 1 || server_listen_port > 65534){ fprintf (stderr, "Invalid listen port: %s.\n", optarg); return 1; } break; case '?': if ((optopt == 'c') || (optopt == 'p') || (optopt == 's') || (optopt == 'l')) fprintf (stderr, "Option -%c requires an argument.\n", optopt); else if (isprint (optopt)) fprintf (stderr, "Unknown option `-%c'.\n", optopt); else fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt); return 1; default: usage(); return 1; } } if (optind < argc) { fprintf (stderr, "Unknown option: %s.\n", argv[optind]); return 1; } rtsp_server = rtsp_alloc(); if (!rtsp_server){ return 0; } log_to_stderr = !do_fork; if (!log_to_stderr) openlog(PROGRAM_NAME, LOG_PID, LOG_DAEMON); if (load_config(config_fn)) { fprintf (stderr, "Error loading config file.\n"); return 2; } my_random_init(); if (do_fork){ log_debug("forking..."); if (daemon(0, 0)){ log_error("daemonize failed: %s", strerror(errno)); return -1; } if (write_pid_file(pid_fn)){ log_warning("failed to create pid file"); } ev_loop_fork(evloop); } if (!do_fork) { ev_signal_init (&signal_watcher1, sig_term_cb, SIGINT); ev_signal_start (evloop, &signal_watcher1); } ev_signal_init (&signal_watcher2, sig_term_cb, SIGTERM); ev_signal_start (evloop, &signal_watcher2); ev_signal_init (&signal_watcher3, sig_ignore_cb, SIGHUP); ev_signal_start (evloop, &signal_watcher3); ev_signal_init (&signal_watcher4, sig_ignore_cb, SIGPIPE); ev_signal_start (evloop, &signal_watcher4); if (csconv_init()){ return 0; } if (rtsp_init(rtsp_server)){ csconv_cleanup(); return 0; } elevate_privileges(); setup_io_prio(); drop_privileges(); log_info("starting..."); ev_run(evloop, 0); log_info("cleaning up..."); rtsp_cleanup(rtsp_server); csconv_cleanup(); if (server_str_id) free(server_str_id); log_info("exiting..."); if (!log_to_stderr) closelog(); return 0; }