ruvector_memopt/windows/
process.rs

1//! Windows process enumeration
2
3use sysinfo::{System, Pid};
4
5/// List all process IDs
6pub fn list_processes() -> Result<Vec<u32>, String> {
7    let mut sys = System::new_all();
8    sys.refresh_processes();
9
10    let pids: Vec<u32> = sys.processes()
11        .keys()
12        .map(|pid| pid.as_u32())
13        .collect();
14
15    Ok(pids)
16}
17
18/// Get process name by PID
19pub fn get_process_name(pid: u32) -> Option<String> {
20    let mut sys = System::new();
21    sys.refresh_processes();
22
23    sys.process(Pid::from_u32(pid))
24        .map(|p| p.name().to_string())
25}
26
27/// Get memory usage for a process (bytes)
28pub fn get_process_memory(pid: u32) -> Option<u64> {
29    let mut sys = System::new();
30    sys.refresh_processes();
31
32    sys.process(Pid::from_u32(pid))
33        .map(|p| p.memory())
34}