• <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>

            任我行

            一天一個腳印......
            每日一句:
            posts - 54, comments - 218, trackbacks - 1, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            驅動開程序發—安裝

            Posted on 2006-01-03 10:11 任我行 閱讀(2320) 評論(4)  編輯 收藏 引用 所屬分類: 驅動開發

            作為一個完整的例子,你開發出來驅動還必須要能安裝。所以下面我講一下安裝。

            如果前面的編譯過程沒有錯誤的話,現在我們應該已經得到了一個HelloWDM.sys文件,假設它是放在D:\HelloWDM\objfre\i386中。

            安裝WDM驅動程序可以用兩種方法,一種是利用注冊表,還有一種是利用INF文件。我們一般是采用INF文件(這是微軟推薦的)。INF文件可以在 WINNT\INF 目錄中找到很多。為了順利安裝,我在這里先給出 HelloWDM 所需要的 HelloWDM.INF 文件:

            ;; The Win2K DDK documentation contains an excellent INF reference.

            ;--------- Version Section ---------------------------------------------------

            [Version]
            Signature="$CHICAGO$"
            Provider=LC_Device
            DriverVer=8/21/2002,3.0.0.3

            ; If device fits one of the standard classes, use the name and GUID here,
            ; otherwise create your own device class and GUID as this example shows.

            Class=Unknown
            ClassGUID={ff646f80-8def-11d2-9449-00105a075f6b}

            ;--------- SourceDiskNames and SourceDiskFiles Section -----------------------

            ; These sections identify source disks and files for installation. They are
            ; shown here as an example, but commented out.

            [SourceDisksNames]
            1 = "HelloWDM",Disk1,,

            [SourceDisksFiles]
            HelloWDM.sys = 1,objfre\i386,

            ;--------- ClassInstall/ClassInstall32 Section -------------------------------

            ; Not necessary if using a standard class

            ; 9X Style
            [ClassInstall]
            Addreg=Class_AddReg

            ; NT Style
            [ClassInstall32]
            Addreg=Class_AddReg

            [Class_AddReg]
            HKR,,,,%DeviceClassName%
            HKR,,Icon,,"-5"

            ;--------- DestinationDirs Section -------------------------------------------

            [DestinationDirs]
            YouMark_Files_Driver = 10,System32\Drivers

            ;--------- Manufacturer and Models Sections ----------------------------------

            [Manufacturer]
            %MfgName%=Mfg0

            [Mfg0]

            ; PCI hardware Ids use the form
            ; PCI\VEN_aaaa&DEV_bbbb&SUBSYS_cccccccc&REV_dd
            ;改成你自己的ID
            %DeviceDesc%=YouMark_DDI, PCI\VEN_9999&DEV_9999

            ;---------- DDInstall Sections -----------------------------------------------
            ; --------- Windows 9X -----------------

            ; Experimentation has shown that DDInstall root names greater than 19 characters
            ; cause problems in Windows 98

            [YouMark_DDI]
            CopyFiles=YouMark_Files_Driver
            AddReg=YouMark_9X_AddReg

            [YouMark_9X_AddReg]
            HKR,,DevLoader,,*ntkern
            HKR,,NTMPDriver,,HelloWDM.sys
            HKR, "Parameters", "BreakOnEntry", 0x00010001, 0

            ; --------- Windows NT -----------------

            [YouMark_DDI.NT]
            CopyFiles=YouMark_Files_Driver
            AddReg=YouMark_NT_AddReg

            [YouMark_DDI.NT.Services]
            Addservice = HelloWDM, 0x00000002, YouMark_AddService

            [YouMark_AddService]
            DisplayName = %SvcDesc%
            ServiceType = 1 ; SERVICE_KERNEL_DRIVER
            StartType = 3 ; SERVICE_DEMAND_START
            ErrorControl = 1 ; SERVICE_ERROR_NORMAL
            ServiceBinary = %10%\System32\Drivers\HelloWDM.sys

            [YouMark_NT_AddReg]
            HKLM, "System\CurrentControlSet\Services\HelloWDM\Parameters",\
            "BreakOnEntry", 0x00010001, 0


            ; --------- Files (common) -------------

            [YouMark_Files_Driver]
            HelloWDM.sys

            ;--------- Strings Section ---------------------------------------------------

            [Strings]
            ProviderName="Flying L Co.,Ltd."
            MfgName="LC Soft"
            DeviceDesc="Hello World WDM!"
            DeviceClassName="LC_Device"
            SvcDesc="???"



            注意它可以同時在Win98或者Win2000中使用(系統會通過這個INF文件里面的字段名稱,自動選擇適合當前系統的安裝方法的)。關于INF文件的各個字段含義現在我也不知道,所以也沒有辦法說清楚,如果誰看到這篇文章,而又知道的話,不妨為我一份。

            準備好這個 HelloWDM.INF 文件后,讓我們打開控制面板,雙擊“添加/刪除硬件”,選擇“添加/排除設備故障”->“添加新設備”->“否,我想從列表選擇硬件”->“其它設備”->“從磁盤安裝”,選擇 HelloWDM.INF 所在的路徑,然后安裝。

            當安裝完成后,系統就會添加上你寫好的驅動程序了。(可以在“設備管理器”中查看到)。然后重啟電腦,這個驅動程序就投入使用啦。

            關于安裝,我也只知道這么多,到底安裝驅動程序時,操作系統都作了些什么,我也不是很清楚,等我弄明白了我再貼上。

            Feedback

            # 無  回復  更多評論   

            2006-08-28 11:29 by 大師
            十分坦誠,鉆研精神令人敬佩

            # re: 驅動開程序發—安裝   回復  更多評論   

            2006-09-28 14:48 by 路過
            謝謝.

            # re: 驅動開程序發—安裝   回復  更多評論   

            2007-08-09 19:24 by 2left
            非常好的入門,謝謝了

            # re: 驅動開程序發—安裝   回復  更多評論   

            2008-04-03 23:24 by yilian
            我很喜歡
            国产精品99久久久久久猫咪| 久久se这里只有精品| 久久久久久国产精品美女| 一级a性色生活片久久无| 久久天天躁狠狠躁夜夜avapp| 一本一本久久aa综合精品| 99久久综合狠狠综合久久止| 久久99国产一区二区三区| 精品多毛少妇人妻AV免费久久| 久久99精品久久久久久久不卡| 久久最新免费视频| 亚洲狠狠婷婷综合久久久久| 国产精品永久久久久久久久久| 狠狠色丁香久久婷婷综合蜜芽五月| 久久精品国产亚洲AV大全| 青青草国产97免久久费观看| 久久精品国产亚洲AV大全| 青青草国产97免久久费观看| 99久久国产综合精品麻豆| 久久国产免费直播| 国产福利电影一区二区三区久久老子无码午夜伦不 | 五月丁香综合激情六月久久| 欧美久久精品一级c片片| 狠狠精品久久久无码中文字幕| 精品久久久久久无码人妻蜜桃| 久久天天躁狠狠躁夜夜96流白浆| 久久一本综合| 久久久久国产亚洲AV麻豆| 久久se精品一区二区| 久久久久人妻一区二区三区vr | 中文字幕精品久久| 欧美粉嫩小泬久久久久久久| 99久久国产亚洲高清观看2024| 精品免费tv久久久久久久| 麻豆成人久久精品二区三区免费 | 亚洲日韩欧美一区久久久久我 | 国内精品久久久久久久久电影网 | 久久香蕉综合色一综合色88| 国产精品久久久久AV福利动漫| 亚洲va中文字幕无码久久不卡 | 精品久久久久久中文字幕人妻最新|