INNER CODE UNIT · Rust

windows_alias_to_npf_name

domcyrus/rustnet · crates/rustnet-capture/src/lib.rs:353

fn windows_alias_to_npf_name(alias: &str) -> Option<String> {
    use windows::Win32::NetworkManagement::IpHelper::{FreeMibTable, GetIfTable2, MIB_IF_TABLE2};

    let alias_lower = alias.to_lowercase();
    // SAFETY: GetIfTable2 allocates the table, which is freed with
    // FreeMibTable on every path; rows are only read within NumEntries.
    unsafe {
        let mut table: *mut MIB_IF_TABLE2 = std::ptr::null_mut();
        if GetIfTable2(&mut table).is_err() {
            return None;
        }
        let table_ref = table.as_ref()?;

        let mut guid = None;
        for i in 0..table_ref.NumEntries as usize {
            let row = &*table_ref.Table.as_ptr().add(i);
            let row_alias = String::from_utf16_lossy(&row.Alias)
                .trim_end_matches('\0')

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…