<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • windowsnt環境下fddi網卡驅動程序設計2

    時間:2024-09-09 06:58:47 計算機網絡畢業論文 我要投稿
    • 相關推薦

    windowsnt環境下fddi網卡驅動程序設計(2)

    windowsnt環境下fddi網卡驅動程序設計(2) 第三階段:獲取注冊庫中各種控制信息,如用戶定義的非頁內存大小;第四階段:初始化注冊庫 \registry\machine下system和hardware并創建currentcontrolset,為裝入相關硬件設備驅動程序作準備;
    第五階段:裝入基本核心驅動程序;
    第六階段:釋放一些已經完成使命的裝入初始數據塊;
    第七階段:進一步初始化注冊庫,以便有些依賴于基本核心驅動程序的上層驅動程序能順利裝入;
    第八階段:服務控制器裝入應該由該服務控制器裝入的各種驅動程序。

    §2.2.2 fddi網卡驅動程序的加載過程
    在windows nt啟動的第五個階段,將加載核心驅動程序。而對于ndis網卡驅動程序是在ndis接口(ndis.sys)加載后調入運行,向ndis wrapper注冊、初始化、查詢設置參數等。
    windows nt啟動時,相應的實體如nt的服務控制器根據注冊庫中yhfddi驅動程序的配置注冊信息,初始化ndis wrapper,并裝入相應的驅動程序,生成驅動程序管理塊結構,申請內存以保存各種信息,向ndis wrapper注冊驅動程序。初始化和注冊完畢后,再由服務控制器讀取注冊庫中相應的鏈接信息。
    在ndis wrapper和yhfddi驅動程序初始化和注冊成功后,ndis wrapper根據系統相應的注冊信息,加入和yhfddi驅動程序所對應的fddi網卡,同時讀入網卡的注冊信息,并進行網卡注冊和網卡初始化。
    在以上過程成功后,wrapper將查詢和設置驅動程序的各種參數,了解驅動程序對哪些操作支持,決定對上層驅動程序的支持范圍。
    第三節fddi網卡驅動程序的注冊
    driverentry函數是windows nt ddk規定的核心驅動程序的入口點,wrapper識別到入口點后,調入驅動程序,在driverentry函數內完成兩個基本注冊任務:
    調用ndisminitializewapper函數向ndis接口報告驅動程序將以miniport類網卡驅動程序注冊。ndis建立它需要記錄的驅動程序狀態信息,同時返回ndiswrapperhandle,驅動程序保存這個句柄,以利后來調用ndisxxxconfiguration和initialization等函數。
    填寫ndisxx_miniport_characteristics屬性結構,主要記錄ndis版本號和驅動程序支持的miniportxxx函數的入口點,然后調用ndismregisterminiport函數實現驅動程序的整體注冊。
    以yhfddi為例所要注冊的屬性結構的內容大致如下:
    ndis_miniport_characteristics yhfddichar;
    (ndis_miniport_characteristics這個結構將在第三章介紹)
    yhfddichar.majorndisversion=yhfddi_ndis_major_version;
    yhfddichar.minorndisversion=yhfddi_ndis_minor_version;
    這兩個屬性決定驅動程序是ndis的哪個版本所支持,我們所用的是ndis3.0
    yhfddichar.disableinterrupthandler=yhfddidisableinterrupt;
    yhfddichar.enableinterrupthandler=yhfddienableinterrupt;
    yhfddichar.isrhandle=yhfddiinterruptservice;
    yhfddichar.handleinterrupthandler=yhfddihandleinterrupt;
    以上四項屬性是中斷處理所需的上邊緣服務函數的入口點(句柄)。fddi網卡驅動程序需要有smt站管理功能,而smt是以中斷處理方式進行的,故這四項屬性在fddi網卡驅動程序中是很重要的。
    yhfddichar.initializehandler=yhfddiinitialize;
    此項注冊的是驅動程序的初始化函數句柄。
    yhfddichar.queryinformationhandler= yhfddiqueryinformation;
    yhfddichar.setinformationhandler=yhfddisetinformation;
    這兩項注冊的是參數查詢和設置函數的句柄。
    yhfddichar.sendhanler= yhfddisend;
    yhfddichar.transferdatahandler= yhfdditransferdata;
    主要提供數據發送和接收函數句柄。  
    yhfddichar.resethandler=yhfddireset;
    此項注冊網卡軟硬件重置函數句柄。
    yhfddichar.halthandler= yhfddihalt;
    此項注冊網卡驅動程序掛起函數句柄。
    yhfddichar.checkforhandler=null;
    yhfddichar.reconfigurehandler=null;
    這兩個上邊緣服務函數是fddi網卡驅動程序所不提供的,故置為null。
    填好這些結構以后,調用以下函數實現驅動程序的注冊:
    ndismregisterminiport(
    yhfddiwrapperhandle,

    【windowsnt環境下fddi網卡驅動程序設計2】相關文章:

    windows nt環境下fddi網卡驅動程序設計03-18

    I2C總線在uClinux操作系統下的驅動程序設計11-22

    WindowsCE.Net下CAN卡的驅動程序設計03-20

    嵌入式Linux下CAN總線驅動程序設計03-07

    Windows CE環境下無線網卡的自動安裝03-19

    在Linux下驅動STN彩色LCD03-18

    基于PCI總線的雙DSP系統及WDM驅動程序設計03-19

    在嵌入式linux2.4.18內核中實現CS8900A網卡驅動03-07

    任務驅動下物流教學探討論文11-20

    主站蜘蛛池模板: 2022国产精品不卡a| 国产精品美女久久久久AV福利| 久久伊人精品青青草原高清| 日韩美女18网站久久精品| 国产精品久久久久影院嫩草 | 蜜臀久久99精品久久久久久| 久久精品国产影库免费看 | 亚洲国产小视频精品久久久三级| 国产精品第1页| 久久国产精品久久久| 99re热这里只有精品视频中文字幕| 久久精品国产99久久无毒不卡| 亚洲国产精品成人午夜在线观看| 精品人妻V?出轨中文字幕| 91po国产在线精品免费观看| 91久久婷婷国产综合精品青草| 国产三级久久久精品麻豆三级| 久久亚洲私人国产精品| 自拍偷在线精品自拍偷无码专区 | 久久亚洲精品视频| 国产精品久久久久天天影视| 99国产精品久久| 丰满人妻熟妇乱又仑精品| 精品熟女少妇av免费久久| 无码精品国产VA在线观看DVD| 亚洲婷婷国产精品电影人久久| 欧美亚洲日本久久精品| 精品久久久久久国产免费了| 国产观看精品一区二区三区| 国产精品秘入口福利姬网站| 国产精品免费观看视频| 精品久久久久久久久久中文字幕 | 久久精品国产精品青草app| 国产精品亚洲片夜色在线| 国产精品久久波多野结衣| 国产69精品久久久久777| 国产精品18久久久久久vr | 国产99视频精品免费专区| 69国产成人综合久久精品| 97热久久免费频精品99| 99久久婷婷免费国产综合精品|