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')