国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

windows下判斷網卡是否是虛擬網卡的方式

2019-11-14 09:46:48
字體:
來源:轉載
供稿:網友

windows下判斷網卡是否是虛擬網卡的方式

網上流傳的判斷虛擬網卡的方式通常是判斷網卡名稱,以PCI開頭的網卡都是真實網卡。因為以前網卡都是PCI網卡,不是的就是虛擬網卡。但是這種方式不一定全部正確,因為現在有些網卡不是PCI網卡,例如USB網卡,但是它依然是真實網卡。所以這種方法就不在可靠了。 最可靠的方法是讀取注冊表來判斷,是我目前發現的最可靠的方法。 首先要知道網卡的名字,可以通過GetAdaptersInfo獲取到 然后用GetAdaptersInfo獲取和此名字相同的網卡信息Pip_ADAPTER_INFO結構中的AdapterName字段。注意AdapterName并不是指我們通常看到的名字,而是一段字符和數字組合的文字,我們通常看到的網卡的名字是Description字段。 然后用AdapterName字段中的內容找到注冊表中的對應的位置,可以讓我們找到網卡的相信信息。 網卡信息存在注冊表的HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control//Class/{4D36E972-E325-11CE-BFC1-08002bE10318}中,這個鍵下面有一些子鍵,這些子鍵中的NetCfgInstanceId的值對應的就是我們剛才查找到的AdapterName。這個子鍵中的Characteristics的值就可以判斷是否是虛擬網卡,Characteristics本質是一些按位存儲的值得集合:

ox1 NCF_VIRTUAL 說明組件是個虛擬適配器 ox2 NCF_SOFTWARE_ENUMERATED 說明組件是一個軟件模擬的適配器 ox4 NCF_PHYSICAL 說明組件是一個物理適配器 ox8 NCF_HIDDEN 說明組件不顯示用戶接口 ox10 NCF_NO_SERVICE 說明組件沒有相關的服務(設 備驅動程序) ox20 NCF_NOT_USER_REMOVABLE 說明不能被用戶刪除(例如,通過控制面板或設備管理器) ox40 NCF_MULTIPORT_INSTANCED_ADAPTER 說明組件有多個端口,每個端口作為單獨的設備安裝。每個端口有自己的hw_id(組件ID)并可被單獨安裝,這只適合于EISA適配器 ox80 NCF_HAS_UI 說明組件支持用戶接口(例如,Advanced Page或Customer PRoperties Sheet) ox400 NCF_FILTER 說明組件是一個過濾器

從上面可以看出來,只要用戶判斷Characteristics的值就可以判斷網卡是虛擬網卡還是物理網卡。 看一下這個值和4進行與運算是否大于0,大于0的就是物理的網卡。


上一篇:bzoj4539 [Hnoi2016]樹

下一篇:VC++簡單窗口

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 米泉市| 凌源市| 浮山县| 雷波县| 西吉县| 芜湖县| 珠海市| 盱眙县| 改则县| 平舆县| 林芝县| 涡阳县| 武平县| 蒲江县| 大兴区| 汝南县| 岳阳县| 红原县| 高陵县| 邛崃市| 从化市| 乾安县| 泰州市| 双柏县| 神农架林区| 黑龙江省| 大冶市| 博罗县| 周至县| 丰县| 基隆市| 古丈县| 邯郸县| 乐昌市| 鲁甸县| 成安县| 镇康县| 含山县| 托克逊县| 阿勒泰市| 灵武市|