青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Ay's Blog@CNSSUESTC

個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系

?1?//???
?2?//?NDIS_PACKET結(jié)構(gòu)的定義??
?3?//???
?4?typedef?struct?_NDIS_PACKET??
?5?{??
?6?NDIS_PACKET_PRIVATE?Private;??
?7?//這個其實(shí)是一個鏈表結(jié)構(gòu),Private.Head指向第一個鏈表,Private.Tail指向最后一個??
?8?//以下有關(guān)于這個結(jié)構(gòu)的解釋??
?9?
10?union??
11?{??
12?struct?//?For?Connection-less?miniports???
13?{??
14?UCHAR?MiniportReserved[2*sizeof(PVOID)];??
15?UCHAR?WrapperReserved[2*sizeof(PVOID)];??
16?};??
17?
18?struct??
19?{??
20?//???
21?//?For?de-serialized?miniports.?And?by?implication?conn-oriented?miniports.???
22?//?This?is?for?the?send-path?only.?Packets?indicated?will?use?WrapperReserved???
23?//?instead?of?WrapperReservedEx???
24?//???
25?UCHAR?MiniportReservedEx[3*sizeof(PVOID)];??
26?UCHAR?WrapperReservedEx[sizeof(PVOID)];??
27?};??
28?
29?struct??
30?{??
31?UCHAR?MacReserved[4*sizeof(PVOID)];??
32?};??
33?};??
34?
35?ULONG_PTR?Reserved[2];?//?For?compatibility?with?Win95???
36?UCHAR?ProtocolReserved[1];??
37?
38?}?NDIS_PACKET,?*PNDIS_PACKET,?**PPNDIS_PACKET;??
39?
40?//?NDIS_PACKET_PRIVATE?的定義??
41?typedef?struct?_NDIS_PACKET_PRIVATE??
42?{??
43?UINT?PhysicalCount;?//?number?of?physical?pages?in?packet.???
44?UINT?TotalLength;?//?Total?amount?of?data?in?the?packet.???
45?PNDIS_BUFFER?Head;?//?鏈表指針,指向第一個?
46?PNDIS_BUFFER?Tail;?//?鏈表指針,指向最后一個??
47?
48?//?if?Head?is?NULL?the?chain?is?empty;?Tail?doesn\'t?have?to?be?NULL?also???
49?
50?PNDIS_PACKET_POOL?Pool;?//?so?we?know?where?to?free?it?back?to???
51?UINT?Count;??
52?ULONG?Flags;??
53?BOOLEAN?ValidCounts;??
54?UCHAR?NdisPacketFlags;?//?See?fPACKET_xxx?bits?below???
55?USHORT?NdisPacketOobOffset;??
56?}?NDIS_PACKET_PRIVATE,?*?PNDIS_PACKET_PRIVATE;??
57?
58?//NDIS_BUFFER定義?其實(shí)就是一個內(nèi)存描述符
59?
60?typedef?struct?_NDIS_BUFFER?{??
61?struct?_NDIS_BUFFER?*Next;?//指向下一個節(jié)點(diǎn)的指針
62?PVOID?VirtualAddress;??????//指向報文首地址
63?PNDIS_BUFFER_POOL?Pool;??
64?UINT?Length;???????????????//報文數(shù)據(jù)長度
65?UINT?Signature;??
66?}?NDIS_BUFFER,?*?PNDIS_BUFFER;??

注釋寫的很清楚了??那么他們的關(guān)系還是不清楚的話看看附圖



? 好了??這樣一來我們的思路大概清楚了??NDIS_PACKET只不過是一個關(guān)于NDIS_BUFFER鏈表的結(jié)構(gòu)??在NDIS_PACKET中的成 員Private中有指向第一個NDIS_BUFFER的指針和指向最后一個NDIS_BUFFER的指針??分別是Private.Head 和Private.Tail? ???而NDIS_BUFFER中就記錄了我們數(shù)據(jù)包的地址和下一個NDIS_BUFFER的地址? ?操作有很多種方法? ?由于這些結(jié)構(gòu)體本來對我們是不透明的? ? 所以最安全的方法是用MS提供的一系列函數(shù)來操作NDIS_PACKET和NDIS_BUFFER??

? ? 還是拿個例子好說話吧

?1?NDIS_STATUS?status?;
?2?????PNDIS_BUFFER?NdisBuffer?;
?3?????UINT?TotalPacketLength?=?0?,?copysize?=?0?,?DataOffset?=?0?,?PhysicalBufferCount??,??BufferCount???;
?4?????PUCHAR?mybuffer?=?NULL?,tembuffer?=?NULL?;??
?5?
?6?//假設(shè)這個是在PtReceive等函數(shù)中得到的PACKET
?7?NdisQueryPacket(packet?????????????????????//我們先得到第一個NDISBUFFER?的指針???
?8?????????,?&PhysicalBufferCount??????????????
?9?????????,?&BufferCount???????????????????????????
10?????????,&NdisBuffer???????????????????????????????//NdisBuffer就是指向鏈表頭
11?????????,?&TotalPacketLength
12?????????);
13?/*
14?其實(shí)也可以不用那么麻煩?直接??NdisBuffer?=?packet->Private.Head?;就可以取得第一個BUFFER了
15?*/
16?
17?????status?=?NdisAllocateMemory(?&mybuffer,?2048,?0,?HighestAcceptableMax?);??//分配我們自己的內(nèi)存塊
18?
19?????if(?status?!=?NDIS_STATUS_SUCCESS?)
20?????????return?NDIS_STATUS_FAILURE?;
21?
22?????NdisZeroMemory(?mybuffer,?2048?)?;
23?
24?????NdisQueryBufferSafe(??//取得NDIS_BUFFER描述符中數(shù)據(jù)的首地址和大小
25?????????????????????????????????NdisBuffer,
26?????????????????????????????????&tembuffer,
27?????????????????????????????????&copysize,
28?????????????????????????????????NormalPagePriority
29?????);??
30??????
31?????????//將數(shù)據(jù)復(fù)制到我們的內(nèi)存中
32?????NdisMoveMemory(mybuffer,?tembuffer,?copysize)?;
33?
34?????DataOffset?=?copysize?;
35?
36?????while(1)
37?????{
38?????????/*
39?????????????????也可以這樣操作而不用NdisGetNextBuffer
40?????????if(NdisBuffer->Next?==?packet->Private.Tail?)
41?????????????break?;
42?
43?????????NdisBuffer?=?NdisBuffer->Next?;
44?
45?????????if(pmdl?==?NULL?)
46????????????break?;
47????????????*/
48?????????//獲得下一個NDIS_BUFFER的的指針
49?????NdisGetNextBuffer(NdisBuffer?,?&NdisBuffer?)?;
50?????????如果指針是NULL??那么表示到鏈表尾了
51?????if(?NdisBuffer?==?NULL?)
52?????????break?;
53?
54?????NdisQueryBufferSafe(
55?????????????????????????????????NdisBuffer,
56?????????????????????????????????&tembuffer,
57?????????????????????????????????&copysize,
58?????????????????????????????????NormalPagePriority
59?????????????????????????????????)?;
60?
61?????NdisMoveMemory(?mybuffer?+?DataOffset?,?tembuffer,?copysize)?;
62?
63?????DataOffset?+=?copysize??;
64?
65?????}
66?
67?//OK??我們要的數(shù)據(jù)就全部都在我們申請的內(nèi)存mybuffer?數(shù)據(jù)大小為DataOffset

???
?

posted on 2008-09-18 23:25 __ay 閱讀(2942) 評論(13)  編輯 收藏 引用 所屬分類: 操作系統(tǒng)&&內(nèi)核

Feedback

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2009-02-12 15:01 NUMBY

不錯哈,計院哪個年級的呢?在學(xué)習(xí)NDIS編程么?方便的話給個QQ交流吧,我的郵箱是zhangx,后面是@學(xué)校域名.  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2009-02-12 15:55 __ay

@NUMBY
呵呵 我只做到了通過NDIS截獲數(shù)據(jù)包而已 更深層次的一些操作我沒怎么深入研究 你也是UESTC的?如果你需要我可以把一些學(xué)習(xí)資料給你 以前我學(xué)習(xí)的時候積累下來的 嘻嘻  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2009-02-12 17:18 NUMBY

@__ay
是的,我在學(xué)院軟件工程研究中心,給我發(fā)封信吧,給個QQ號交流一下。  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2009-02-28 13:35 jakiejia

@__ay
您好,我想學(xué)習(xí)一下ndis,但是不知道從何入手,希望您能把一些學(xué)習(xí)資料給我一份,謝謝您 jakiejia@163.com@__ay
  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2009-06-22 17:49 陳陸艷

大牛,你好,我也正在學(xué)NDIS截包,但是現(xiàn)在還不知道如何著手,看了你的文檔后明白了一些,你可以把你截包的資料發(fā)給我一下嗎?非常感謝,我也是某學(xué)校的學(xué)生,謝謝你了!我的郵箱:chen_happy09@163.com  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2009-06-22 19:40 __ay

@陳陸艷
談不上大牛.... 只不過怕忘記做了些筆記而已 資料發(fā)給你了 有問題可以交流交流的 呵呵........  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2009-06-23 20:28 陳陸艷

PNDIS_BUFFER Tail; // 鏈表指針,指向前面一個 ,,這個應(yīng)該是指向最后一塊buffer的指針吧  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2009-06-23 22:00 __ay

@陳陸艷
恩恩 對 哈哈 寫錯了 改過來了~~多謝多謝   回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2009-09-11 16:58 小黃

能給我一份NDIS的學(xué)習(xí)資料嗎?

我郵箱h275531513@hotmail.com
謝謝了  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2010-02-02 15:36 小鵬

@小黃
希望給我一份,可以學(xué)習(xí)下  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2010-03-01 11:07 小鵬

@__ay
可以把資料給我一點(diǎn)不  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2010-09-28 10:28 黃美娟

你好!高手,小妹我正在學(xué)習(xí)NDIS。老師讓做Demo,希望能得到你的資料!謝謝,請留下QQ號,方便交流!xianren2440@sina.com  回復(fù)  更多評論   

# re: 個人總結(jié)NDIS中NDIS_PACKET,NDIS_BUFFER的關(guān)系 2010-11-11 12:49 劉君來

最近在做NDIS Miniport驅(qū)動相關(guān)的東西,看了你的文章受益匪淺,能不能告訴我你的聯(lián)系方式,我想跟你交流一下。
我的郵箱:csu_zhaojunzhi@163.com  回復(fù)  更多評論   


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区二区三区免费观看| 欧美激情在线观看| 亚洲一区免费在线观看| 日韩视频免费| 国产精品v亚洲精品v日韩精品 | 亚洲区在线播放| 欧美福利视频一区| 欧美国产激情| 亚洲欧美精品中文字幕在线| 亚洲欧美精品| 亚洲国产精品一区二区www在线| 久久全球大尺度高清视频| 欧美一区二区三区精品| 1769国产精品| 亚洲视频999| 在线观看不卡| 一区二区三区精品| 一区免费观看| 99国产精品久久久久久久成人热 | 午夜性色一区二区三区免费视频 | 欧美 日韩 国产一区二区在线视频| 亚洲人体一区| 亚洲图片欧美日产| 亚洲第一综合天堂另类专| 亚洲精品乱码久久久久久| 欧美日韩成人综合天天影院| 午夜在线精品| 免费观看日韩| 久久精品伊人| 欧美日韩精品一区二区三区| 久久久久久亚洲综合影院红桃 | 99国内精品久久久久久久软件| 国产精品推荐精品| 欧美黄色免费网站| 国产亚洲精品激情久久| 亚洲欧洲三级| 亚洲福利一区| 亚洲欧美中文字幕| 一本久道久久综合中文字幕| 欧美一级播放| 中日韩美女免费视频网址在线观看 | 亚洲自啪免费| 久久影院亚洲| 久久精品一区二区三区不卡| 99精品欧美一区二区三区| 久久成人免费网| 午夜精品视频一区| 欧美午夜精品久久久久免费视| 欧美14一18处毛片| 国产在线观看精品一区二区三区 | 久久天堂精品| 欧美色综合网| 国产精品久久久久影院色老大 | 中文国产一区| 一区二区日韩精品| 欧美精品久久久久a| 欧美成人一区二区三区在线观看| 国产综合香蕉五月婷在线| 亚洲欧美成人| 久久国产一二区| 国产日韩欧美亚洲一区| 亚洲午夜一区二区三区| 亚洲制服欧美中文字幕中文字幕| 欧美日韩少妇| 一本不卡影院| 欧美一区不卡| 国产日产亚洲精品系列| 欧美一级午夜免费电影| 久久se精品一区精品二区| 国产精品欧美一区二区三区奶水 | 一区二区三区日韩精品| 亚洲无线观看| 国产乱码精品一区二区三区五月婷 | 亚洲精品欧美极品| 欧美激情网友自拍| 99www免费人成精品| 亚洲综合成人婷婷小说| 国产精品一区二区三区四区| 欧美亚洲免费电影| 男人的天堂亚洲在线| 亚洲另类在线一区| 国产精品国产福利国产秒拍| 亚洲欧美日韩精品综合在线观看| 久久久久久色| 亚洲国产美女| 亚洲欧美国内爽妇网| 国产视频丨精品|在线观看| 久久精品导航| 亚洲欧洲一区二区三区久久| 亚洲一区二区三区高清不卡| 国产精品vip| 久久精品99无色码中文字幕| 亚洲第一精品电影| 亚洲视频1区2区| 国产精品视频99| 久久久www成人免费毛片麻豆| 欧美激情1区| 欧美一区二区高清在线观看| 亚洲国产女人aaa毛片在线| 欧美精品一区二区高清在线观看| 亚洲一级免费视频| 农夫在线精品视频免费观看| 在线视频欧美精品| 国产一区二区三区在线免费观看 | 亚洲欧美国产视频| 欧美电影免费| 久久精品免费| 亚洲无限av看| 欧美午夜精品电影| 久久xxxx精品视频| 99re6这里只有精品| 久久黄色级2电影| 亚洲视频网站在线观看| 黄色成人片子| 国产精品无码专区在线观看| 欧美一区二区三区四区在线观看地址 | 日韩视频免费在线观看| 国产偷国产偷亚洲高清97cao| 欧美日韩成人综合天天影院| 久久频这里精品99香蕉| 午夜日韩视频| 中国亚洲黄色| 日韩午夜在线视频| 欧美激情精品久久久久久黑人| 欧美一区二区三区播放老司机| 亚洲精品视频在线看| 在线观看日韩精品| 国产在线拍偷自揄拍精品| 国产精品国产馆在线真实露脸 | 国产精品99一区二区| 欧美日韩1区2区3区| 你懂的视频一区二区| 久久亚洲精品网站| 久久精品女人天堂| 午夜视频一区在线观看| 亚洲在线中文字幕| 亚洲综合视频在线| 亚洲综合国产| 午夜视频一区在线观看| 午夜激情亚洲| 欧美在线你懂的| 久久国产日韩欧美| 久久国产一区二区三区| 一区二区三区黄色| 亚洲欧美国产毛片在线| 一区二区三区精品视频| 制服丝袜激情欧洲亚洲| 亚洲视频香蕉人妖| 欧美一区日韩一区| 久久婷婷蜜乳一本欲蜜臀| 美日韩精品视频免费看| 欧美激情第9页| 亚洲毛片在线| 亚洲一区二区三区精品视频| 亚洲欧美日韩在线高清直播| 亚洲欧美日韩一区二区| 欧美一区二区三区婷婷月色 | 免费观看亚洲视频大全| 狼人社综合社区| 欧美日韩精品一区二区三区| 国产精品久久久久av| 国产欧美视频一区二区三区| 国产一区二区三区四区三区四| 亚洲成在线观看| 一本色道久久综合亚洲精品婷婷| 亚洲欧美日韩另类精品一区二区三区| 欧美中文在线观看国产| 欧美成va人片在线观看| 99精品热视频| 欧美怡红院视频| 欧美大片在线观看| 国产精品一区二区你懂得| 国产亚洲一区二区三区| 亚洲美女视频在线观看| 香蕉久久夜色精品国产| 欧美国产在线电影| 99在线精品视频| 香蕉久久夜色精品国产使用方法| 久久久国产精品一区二区三区| 亚洲欧美日韩区| 欧美**人妖| 国产农村妇女精品一区二区| 亚洲欧洲另类国产综合| 欧美一区免费| 亚洲久久在线| 久久人体大胆视频| 国产女人aaa级久久久级| 亚洲精品视频在线观看网站| 久久久精品一区| 一本色道久久综合亚洲二区三区| 亚久久调教视频| 欧美三级欧美一级| 亚洲黄色一区二区三区| 久久久久久久久久码影片| 日韩一级精品| 蜜臀av在线播放一区二区三区| 国产欧美 在线欧美| 亚洲视频axxx| 亚洲人成人一区二区在线观看 | 亚洲欧洲日本一区二区三区|