網絡卡連線狀態通知

2021-07-11 03:44:12 字數 1082 閱讀 8239

開發網路小埠驅動(ndis 6.0)時,需要指示當前的網絡卡連線狀態。當初始化小埠時(mpinitializeex),可以呼叫ndismsetminiportattributes設定結構體ndis_miniport_adapter_general_attributes的mediaconnectstate成員。若在執行中要通知連線狀態的變化,可以呼叫ndismindicatestatu***向上層提示。

#define delay_one_millisecond -10000

void threadchangestatus(pvoid startcontext)

}}

有的同學可能可能擔心若是上層發下oid請求查詢網路連線狀態,與之前indicate的狀態不一致怎麼辦。在ndis 6.0及以後,oid_gen_media_connect_status(_ex)碼不要求實現的。wdk文件中對此有說明

windows vista 

supported.

ndis 6.0 miniport drivers

not requested.

ndis 5.1 miniport drivers

mandatory.

windows xp

supported.

ndis 5.1 miniport drivers

mandatory.

ndis handles this oid for ndis 6.0 miniport drivers.

也就是說,此oid必須在ndis5.1中實現,而ndis6.0不需要,因為ndis庫會為ndis6.0小埠驅動處理這個oid,我猜就是ndis會保留ndismindicatestatu***指示的狀態。

另外在呼叫ndismindicatestatus(ex)時,協議驅動的protocolstatus(ex)會被呼叫,可以處理一些額外的工作。例如網絡卡狀態有斷開轉換的連線狀態時,網絡卡介面卡提示正在識別...,我猜這就是tcp/ip協議在protocolstatus(ex)進行的網路識別。

檢視Linux下網絡卡狀態或 是否連線

分類 1 通過mii tool指令 root localhost root mii tool eth0 negotiated 100basetx fd,link ok eth1 no link 或 root localhost root mii tool v eth0 negotiated 100b...

Linux下檢測網絡卡與網線的連線狀態

在機頂盒的網路連線中,其中有一項就是檢測網絡卡與網線是否連線,當沒有連線網線時,通過瀏覽器開啟錯誤頁面提示網線未連線。那麼如何檢測網絡卡與網線是否連線。一 使用ioctl向socket傳送siocethtool命令字 include include include include include i...

Linux下檢測網絡卡與網線的連線狀態

在機頂盒的網路連線中,其中有一項就是檢測網絡卡與網線是否連線,當沒有連線網線時,通過瀏覽器開啟錯誤頁面提示網線未連線。那麼如何檢測網絡卡與網線是否連線。一 使用ioctl向socket傳送siocethtool命令字 cpp view plain copy font size 18px includ...