freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于passthru的ndis中間層驅(qū)動程序擴展-在線瀏覽

2024-08-07 18:20本頁面
  

【正文】 架的系統(tǒng)上,采用的是統(tǒng)一編址的方式,所以對外部設備的IO端口進行讀寫的話還是通過訪問內(nèi)存的指令,HAL提供一組服務支持函數(shù),如果要訪問外部設備上的端口數(shù)據(jù)可以使用READ_PORT_UCHAR/WRITE_PORT_UCHAR等等,核心驅(qū)動開發(fā)者不用去考慮不同硬件構(gòu)架的之間的差異。其中,最上層是一個NDIS Protocol Driver,它向上提供一個Transport Driver Interface(TDI),向下通過NDIS接口與下面的NDIS中間層的上邊界交互,NDIS中間層的下邊界通過NDIS接口與下層的NDIS Miniport Driver交互。三 NDIS驅(qū)動程序的數(shù)據(jù)處理流程 三種NDIS驅(qū)動程序的關系。當一個中間層介入的時候,必需遵守這個規(guī)則,因此,中間層驅(qū)動對上層來說,扮演一個Miniport Driver的角色,它在上邊沿向NDIS注冊一組Miniportxxx函數(shù);對于下層Miniport Driver來說,中間層驅(qū)動扮演一個Protocol Driver的角色,因此它在下邊沿向NDIS注冊一組Protocolxxx函數(shù)。其中原型如下:NDIS_STATUS NdisMRegisterMiniport(IN NDIS_HANDLENdisWrapperHandle, IN PNDIS_MINIPORT_CHARACTERISTICSMiniportCharacteristics, IN UINTCharacteristicsLength )。Protocol Driver 通過調(diào)用 NdisRegisterProtocol向NDIS注冊一組ProtocolXxx函數(shù)。其中,ProtocolCharacteristics包含一組ProtocolXxx函數(shù)。當一個NDIS中間層介入后,如圖二所示。在上層請求發(fā)送數(shù)據(jù)包時,上層分配了相關的資源(如內(nèi)存),希望在下層完成發(fā)送動作后,能夠及時的收回相關的資源,所以,當上層調(diào)用NdisSend/NdisSendPackets返回 NDIS_STATUS_PENDING以外的任何值時,上層就可以釋放資源了,如果得到返回的結(jié)果是NDIS_STATUS_PENDING話,說明下層還沒有完成發(fā)送請求,以后,等下層最終完成發(fā)送請求時,下層調(diào)用NdisMSendComplete請求NDIS通知上層可以釋放資源了,于是NDIS 調(diào)用上層注冊的ProtocolSendComplete函數(shù),上層在這它的ProtocolSendComplete中釋放了資源后,再次調(diào)用 NdisMSendComplete請求NDIS通知更上層。中間層驅(qū)動程序的ProtocolReceivePacket可以對收到的數(shù)據(jù)包進行相應的處理,之后,可以選擇再次調(diào)用NdisMIndicateReceivePacket請求NDIS通知更上層數(shù)據(jù)包的到來,這時,NDIS調(diào)用更上層注冊的 ProtocolReceive函數(shù),上層的ProtocolReceive對數(shù)據(jù)包進行必要的處理后,繼續(xù)調(diào)用 NdisMIndicateReceivePacket請求NDIS,通知更上層,最終數(shù)據(jù)包傳到協(xié)議驅(qū)動中,由相關的協(xié)議棧進行處理。在一些不太理想的情況下,一次中斷,從網(wǎng)絡設備中接收到的數(shù)據(jù)對某個協(xié)議來說并不是一個完整的協(xié)議數(shù)據(jù)包。這時,在上傳到某一層時,可以調(diào)用NdisTransferData請求NDIS把隨后的信息傳上來,這時,NDIS又將在向上傳遞的途中回過頭來向下調(diào)用下面的MiniportTransferData,下層重復調(diào)用NdisTransferData把這個請求傳送到底程的Miniport Driver。由于硬件技術的發(fā)展,網(wǎng)絡設備板載存儲的增加,系統(tǒng)主存儲器的增加,以及網(wǎng)絡傳輸能力的改善,NDIS那么迂回的通過 MdisMxxxIndicateReceivePacket,ProtocolReceive,MiniportTransferData這一條坎坷的路徑進行數(shù)據(jù)處理的情況似乎越來越少見了。一個包在從下到上的傳遞過程時,如果某一層的ProtocolReceive/ProtocolReceivePacket有興趣對這個包進行處理的話,則需要檢查這個包的OOB信息段是不是攜帶NDIS_STATUS_RESOURCES,如果是的話,說明其下層資源緊缺,希望上層在處理的時候,自己考貝一份副本,以供自己使用,因為下層希望自己能夠盡快收回這個包的資源,在這里,上層以后可以用自己的那份拷貝指示上層數(shù)據(jù)包的到來,這樣的話,以后,中間層希望上層處理完后,能夠收回所有權(quán)。當上層協(xié)議驅(qū)動完成處理時,可以調(diào)用NdisReturnPackets 通知NDIS,相應包已經(jīng)處理完成,可以安全的釋放相關資源了,于是NDIS將調(diào)用其下層注冊的MiniportReturnPackets,下層在這里釋放與這個包相關的資源,并繼續(xù)調(diào)用NdisReturnPackets,請求NDIS把這個通知傳給更下層。當下層有數(shù)據(jù)來的時候,數(shù)據(jù)傳遞到協(xié)議驅(qū)動時,協(xié)議驅(qū)動會檢查包頭的信息并查看當前不是有應用程序打開過相應的端口,以及和對應的目標建立過連接,如果有的話,就把數(shù)據(jù)存到協(xié)議棧中的緩沖區(qū)中去,如果對應套接字上有阻塞的接收請求的話,就判斷是不是能完成它的請求了,如果能了,就完成他,如果不能,繼續(xù)等以后下層傳上來再重復
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1