Presentation is loading. Please wait.

Presentation is loading. Please wait.

TamKang University Computer Science and Information Engineering Member: 林玫君 資工 3D 李俊毅 資工 2B 陳 懷 資工 2B 李承恩 資工 2B 指導老師 : 石貴平, 張志勇 助教 : Kevin Chang.

Similar presentations


Presentation on theme: "TamKang University Computer Science and Information Engineering Member: 林玫君 資工 3D 李俊毅 資工 2B 陳 懷 資工 2B 李承恩 資工 2B 指導老師 : 石貴平, 張志勇 助教 : Kevin Chang."— Presentation transcript:

1 TamKang University Computer Science and Information Engineering Member: 林玫君 資工 3D 李俊毅 資工 2B 陳 懷 資工 2B 李承恩 資工 2B 指導老師 : 石貴平, 張志勇 助教 : Kevin Chang

2 OUTLINE  組員分工  Introduction  技術分享  遭遇困難  未來規畫  參考資料

3 Work 林玫君 程式撰寫、投影片製作、報告 李俊毅 程式撰寫、投影片製作、報告 李承恩 投影片製作 陳 懷 投影片製作

4 軟體支援  PCAUSA company  - Rawether for Windows – The "Win32 NDIS Framework “ (WinDis32)  provides a uniform user-mode interface to Windows network drivers

5 Rawether for Windows  directly access NDIS media-access controller (MAC) drivers on Windows platforms  Network Monitors Applications Which Use Non- Standard Protocols Network Adapter Test Programs

6 名詞解釋  NDIS : Network Driver Interface Specification( 網路裝置介面規格 )  SDK : software Development Kit  DDK : Driver Development Kit  OID : Object Identifier

7 What is NDIS  (Network Driver Interface Specification) 網路裝置介面規格  由 Microsoft 及 3Com 聯合制定的資料連結層程 式介面規格,是為了解決多協定共存於單一網 路介面的問題  早期,用戶通常只利用單一通訊協定  現今,因應網路的互通,經由 NDIS 可以利用同 一張網卡即可同時接受數種協定的存取

8 What is NDIS(cont.)

9 Adapter Operations  Finding Adapters  Opening Adapter  Getting NDIS Adapter Information  About WinDis 32 Adapter Handle And Filters  Receiving Packets  Point To Consider About Receiving Packets  Sending Packets  Packet I/O CompletionRoutine  Timestamp Control And Interpretation  Closing Adapters

10 Current  Show support Adapter  Show Adapter Information  Getting Adapter Name  Opening Adapter  Get ALL OID list

11 Finding Adapters  Adapter Enumeration  Adapter Selection

12 Finding Adapters (cont.)  Adapter Enumeration  Adapter Friendly Name: A human readable name that can be presented to a user to identify the adapter.  Adapter NDIS Name: A string token that is passed to the PCANDIS driver and eventually to NdisOpenAdapter. 例: \Device\{65A88950-829C-11D2-842E- 81B82B383AF7}"

13 Technology  Visual C++  Microsoft Foundation Class (MFC)

14 ShowAdapter

15 void CShowAdapterDlg::OnShowAdapter() { DWORD nResult; W32N_ADAPTER_INFO AdapterInfo; nResult = W32N_GetFirstAdapterRegistryInfo( &AdapterInfo ); // 抓第一個 adapter ptr->ResetContent(); // 清空 IDC_LIST1 ptr1->ResetContent(); // 清空 IDC_LIST3 while( !nResult ) { ptr->AddString(AdapterInfo.cTitle); // 在 IDC_LIST1 印出 Title nResult = W32N_GetNextAdapterRegistryInfo( &AdapterInfo ); // 抓下一個 adapter }

16 SelchangeList1(open)

17 SelchangeList1(Not_open)

18 void CShowAdapterDlg::OnSelchangeList1() { DWORD nResult; int i=0; char array[50]="\\Device\\"; W32N_ADAPTER_INFO AdapterInfo; nResult = W32N_GetFirstAdapterRegistryInfo( &AdapterInfo ); index=ptr->GetCurSel(); // 抓目前選到的那個 if(index!=LB_ERR) // LB_ERR 沒有任何被選取的話的回傳值 { while( !nResult ) { if(i==index) { ptr1->ResetContent(); // 清空 strcat(array,AdapterInfo.cServiceName); // 將 ServiceName 接到 array 後面 ptr1->AddString(AdapterInfo.cServiceName); if(W32N_OpenAdapter(array)!=INVALID_HANDLE_VALUE) ptr1->AddString("Open"); // 有被 open else ptr1->AddString("Not open"); // 沒有 open adapter=AdapterInfo.cTitle; break; } else { nResult = W32N_GetNextAdapterRegistryInfo( &AdapterInfo ); // 不是目前選到的, 抓下一個 adapter i++; }

19 void CShowAdapterDlg::OnClear() { ptr->ResetContent(); ptr1->ResetContent(); ptr2->ResetContent(); }

20 OID_List

21 void CShowAdapterDlg::OnOID_List() { ptr2->ResetContent(); OID_INFO_RECORD OidInfoDatabase[]= { 0x00010101, "OID_GEN_SUPPORTED_LIST", 0x00000000, 0x00010102, "OID_GEN_HARDWARE_STATUS", 0x00000000, 0x00010103, "OID_GEN_MEDIA_SUPPORTED", 0x00000000, 0x00010104, "OID_GEN_MEDIA_IN_USE", 0x00000000, 0x00010105, "OID_GEN_MAXIMUM_LOOKAHEAD", 0x00000000, ……………………. …………………… }; POID_INFO_RECORD pOID; pOID=OidInfoDatabase; char Temp[100]; for(int i=0;i<100;i++,pOID++) { sprintf(Temp,"0x%8.8x %s ",pOID->m_nValue,pOID->m_strName); ptr2->AddString(Temp); }

22 Struct of OID_INFO_RECORD  typedef struct _OID_INFO_RECORD { DWORD m_nValue; char *m_strName; DWORD m_nFlags; } OID_INFO_RECORD, *POID_INFO_RECORD;

23 Suffer  Can not List Support OID.  MFC is very complex and we have to spend much time.

24 Future  Get Support OID to Query  Getting more information about MFC.

25 Reference  Visual C++ 6 Bible  擁抱 Visual C++  PCAUSA Document  PCAUSA simple code


Download ppt "TamKang University Computer Science and Information Engineering Member: 林玫君 資工 3D 李俊毅 資工 2B 陳 懷 資工 2B 李承恩 資工 2B 指導老師 : 石貴平, 張志勇 助教 : Kevin Chang."

Similar presentations


Ads by Google