2011-10-26 47 views
0

我剛剛設法寫我的第一個Windows驅動程序(尚未註冊它,但我設法得到的東西創建!)。使用驅動程序連接網絡功能,高級概述?

我想知道,如果有人可以給我的,我怎麼能達到一個高的概述:

我想寫當計算機接收的網絡包,Windows之前,將實施一些行爲的驅動程序對數據包做了什麼,我想把這些數據輸出到C或C++程序的控制檯。

讓我們假設我有一個C/C++程序,它有一個控制檯。 C/C++程序如何與我寫的連接網絡活動的驅動程序交互?它只是一些調用我的驅動程序的C代碼,函數將數據作爲對象返回,然後我可以使用該對象在控制檯中顯示?

預先感謝您的任何可能的答覆

回答

1

你並不需要爲這個任務驅動程序。使用數據包嗅探器庫如PCap(實際上您需要WinPCap)。捕獲數據包並將其打印到控制檯非常簡單。

另一種方式是原始套接字。但桌面Windows(與Windows Server相反)限制了原始套接字功能。

+0

我想在'windows'之前接觸到數據包,我對高頻交易感興趣,所以我想嘗試編程真的很低。現在我已經說過了,是否仍然寫驅動程序? – user997112

+0

PCap真的是低級別的,因爲它提供了一個你正試圖實現的驅動程序,以及用戶模式應用程序的接口。爲什麼又要這樣做? –

+0

我沒有意識到,我認爲winpcap是一個包含大量多餘功能的包裝,這會讓事情變得更慢。那麼你認爲(假設他們使用C或C++)開發HF交易平臺的人也會在Linux上使用pcap,因爲編寫驅動程序是沒有意義的。還是有一些使用驅動程序的性能傢伙? – user997112

0

如果您確實需要驅動程序,或者需要在打包Windows網絡堆棧之前操作或過濾數據包,則需要查看過濾器驅動程序。

此過濾器驅動程序可以暴露用戶空間應用程序可以讀取/寫入的設備文件。 Windows DDK包含示例。