<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      WINDOWS內核編程(一)Hello Drv的實現

      我們開始編寫第一個驅動程序,首先我們需要進行項目的創建,在以前的隨筆中,我們已經學會了如何去建立雙機調試環境。

      我們打開VS2017,建立如圖所示的項目,取名為:MyFirstDriver.點擊確定

      由于,我寫這個都是寫.C的文件,因此我嘗試使用.CPP文件,實現一下第一個FirstDriver.

      建立一個.cpp文件。

      然后輸入我們的代碼

      #ifdef __cplusplus
      
      extern  "C"
      {
          void DriverUnload(PDRIVER_OBJECT);
          NTSTATUS DriverEntry(PDRIVER_OBJECT, PUNICODE_STRING);
      
      }
      #else
      
      void DriverUnload(PDRIVER_OBJECT);
      NTSTATUS DriverEntry(PDRIVER_OBJECT, PUNICODE_STRING);
      
      #endif

      解釋一下__cplusplus這個宏,我們可以通過這個宏定義判斷我們的文件是.CPP還是.C后綴的文件,

      另外,我們都知道C++中有函數重載的機制,但是在驅動中一般都是C語言編寫,我們要避免名稱粉碎機制,

      就要使用extern"C"。

      然后就是DriverEntry 這個函數,這是兩個參數就是固定的參數,規定是這樣寫的,記住就行了,

      另外就是DriverUnload 這個函數,這個參數就是固定的參數,是驅動的卸載函數,記住就行了,

      然后我們來看一下這個兩個函數的實現,在編譯一下這個項目

      完整代碼如下:

       1 #include<ntifs.h>
       2 
       3 //為了避免名稱粉碎機制
       4 
       5 #ifdef __cplusplus
       6 
       7 extern  "C"
       8 {
       9     void DriverUnload(PDRIVER_OBJECT);
      10     NTSTATUS DriverEntry(PDRIVER_OBJECT, PUNICODE_STRING);
      11 
      12 }
      13 #else
      14 void DriverUnload(PDRIVER_OBJECT);
      15 NTSTATUS DriverEntry(PDRIVER_OBJECT, PUNICODE_STRING);
      16 #endif
      17 
      18 void DriverUnload(PDRIVER_OBJECT pDriver)
      19 {
      20     UNREFERENCED_PARAMETER(pDriver);
      21     return;
      22 }
      23 NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver_object, PUNICODE_STRING  pPath)
      24 {
      25     DbgPrint("Hello Drv!\n");
      26     pDriver_object->DriverUnload = DriverUnload;
      27     return STATUS_SUCCESS;
      28 }

      編譯以上代碼,我們可能會遇到

      error C2220: 警告被視為錯誤 - 沒有生成“object”文件
      warning C4100: “pPath”: 未引用的形參

      這樣的報錯,我們要如何解決這個問題呢?

      UNREFERENCED_PARAMETER(pPath);

      這樣就可以解決這個問題了,也可以通過VS項目的設置來降低對VS項目的警告等級解決這個問題,

      我們還需要進行項目的一些其他的設置。

       

      然后編譯生成將我們生成的驅動文件,放到我們的虛擬機中,并使用驅動加載工具進行加載。

      至此我們的第一個驅動程序就完成了

      posted @ 2019-04-17 17:24  飄雨的河  閱讀(2945)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 18禁黄无遮挡网站免费| 久久综合给合久久狠狠狠88| 农村肥熟女一区二区三区| 久久精品国产99久久六动漫| 国产精品免费看久久久| 午夜通通国产精品福利| 亚洲精品综合第一国产综合| 国产极品丝尤物在线观看| 国产精品理论片| 久久香蕉国产线看观看猫咪av| 性一交一乱一乱一视频| 日韩av毛片福利国产福利| 国产毛片基地| 久久久久久综合网天天| 国产福利视频区一区二区| 国内少妇偷人精品免费| 亚洲精品乱码久久久久久中文字幕 | 中国女人高潮hd| 在线观看人成视频免费| 日韩有码中文字幕国产| 日本免费精品| 亚洲人成色7777在线观看不卡| 久久中文字幕无码一区二区| 国产亚洲精品在av| 国产黄色一区二区三区四区| 疯狂做受xxxx高潮欧美日本| 欧美国产综合视频| 狠狠色综合久久丁香婷婷| 国产爽视频一区二区三区| 成人免费视频一区二区三区| 成人乱码一区二区三区四区| 兴义市| 国产99精品成人午夜在线| 日韩熟女精品一区二区三区| 欧美精品人人做人人爱视频| 国产午夜亚洲精品国产成人| 少妇人妻偷人精品免费| jizz国产免费观看| 青青国产揄拍视频| 亚洲欧美v国产蜜芽tv| 黑人玩弄人妻中文在线|