1. 程式人生 > >WFP 驅動環境搭建(WIN10)和編譯

WFP 驅動環境搭建(WIN10)和編譯

網易部落格遷移,不知道為什麼封禁了帳號,先遷移部分部落格過來到csdn (吐槽:網易莫名其妙的封禁了部落格帳號,也不告知是什麼原因! 所以這種雲上的或者外部網站的,真的不好,哪天你的大量心血就沒了!:( , 這個對使用者知識太不尊重了!CSDN最好能夠提供設定部落格分享許可權的功能,因為有時候自己工作的一些筆記會記錄,但是由於設定商業機密,這樣就不能放在部落格上進行分享,此時設定下部落格許可權,至少對一般人是可以遮蔽的!!) 1. 按照VS2015開發工具 (實際測試採用版本,1607,對應的版本為) Microsoft Visual Studio Professional 2015 ( 專業版:HMGNV-WCYXV-X7G9W-YCX63-B98R2 企業版:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV) Debugging Tools for Windows   10.0.14393.0 2. 按照WDK10開發包 (Windows Driver Kit   10.0.14393.0) 注意: 一定SDK和WDK版本必須一致,否則會出現各種環境錯誤,編譯不通過問題 https://developer.microsoft.com/zh-cn/windows/hardware/windows-driver-kit 3. 輸入測試程式碼 4. 設定工程屬性 設定工程為多位元組 C/C++ -- > 告警刪除 C/C++ -- > 開啟預處理定義,增加:  NDIS630, _WINSOCK_DEPRECATED_NO_WARNINGS(這個是關閉WINSock的一些告警) 連結--> 新增庫uuid.lib;ndis.lib;fwpkclnt.lib Driver Setting --> general --> Target OS Version: windows10 / windows7選擇自己的除錯目標平臺, 編譯對應平臺的驅動。 Driver Signing: Sign Mode  -->Off  , 關閉簽名(如果開啟簽名,則直接安裝好證書後,選擇證書和交叉證書等即可)  (PS: 證書籤名還是需要使用正規的簽名證書 不過一般都是交叉證書,需要將多本證書都放在簽名指令碼中 然後開啟命令列,進入到VC\Bin\vcvar.bat環境變數設定,執行該指令碼後 就可以使用signtool來進行簽名了) 簽名指導: https://www.digicert.com/code-signing/signcode-signtool-command-line.htm https://www.digicert.com/code-signing/driver-signing-in-windows-using-signtool.htm#using_kernel_mode https://msdn.microsoft.com/en-us/library/windows/hardware/dn653569(v=vs.85).aspx https://stackoverflow.com/questions/7258613/driver-install-fails-because-cross-signing-chain-doesnt-contain-microsoft https://knowledge.verisign.com/support/code-signing-support/index?page=content&actp=CROSSLINK&id=SO5820 例如: signtool sign /v /ac ms_vericode.cer /f certcodesign.pfx /p **** /n "XXXX有限公司" /tr http://timestamp.wosign.com/rfc3161 /fd sha256  filepath.sys signtool verify /v /kp filepath.sys 附: (https://github.com/Microsoft/Windows-driver-samples/blob/master/filesys/miniFilter/minispy/filter/minispy.c#L980   -----windows在github上的驅動示例原始碼) 5. 安裝VM12(5A02H-AU243-TZJ49-GTC7K-3C61N),下載
VirtualKD,構建雙機除錯

VirtualKD 是一個開源的除錯輔助軟體,能夠幫助 WinDBG 與 VMWare 建立快速通訊

下載後文件為VirtualKD-3.0.exe, 放入到虛擬機器,開啟解壓,會有一個target目錄,右鍵“管理員”執行vminstall.exe

注意: win8以後還要禁止簽名,檢視: http://virtualkd.sysprogs.org/win8/

真機中為VMMON64.exe,開啟設定偵錯程式路徑: 點選Debugger path,選擇windebug.exe路徑, win10 kits路徑為:

C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windebug.exe

安裝windows除錯驅動:

C:\Program Files (x86)\Windows Kits\10\Remote\x64\WDK Test Target Setup x64-x64_en-us.msi

6. 重啟虛擬機器,進入核心除錯模式:

7. 開啟DebugView, 複製到reg檔案中開啟註冊,重啟虛擬機器即可。   -->這個在Win7_64(VM)對應到外面的Win10_64可以,Win7_32(VM)無法打印出來

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]

"DEFAULT"=dword:0000000F

8. windbg的符號表路徑

!sym noise

D:\Work\DaiDoubleFCBTest\Drv_20171026_filedeny\Drv;srv*;SRV*D:\win10_net* http://msdl.microsoft.com/download/symbols

.reload /f nt   ---可以指定模組下載

錯誤1: 出現這樣的錯誤error LNK2019: unresolved external symbol [email protected] referenced in function [email protected]
解決: 將檔案修改為*.c 或者函式加上extern "C", 編譯器C++編譯為@8, 不是C的開頭。 測試程式碼如下: #include <ntddk.h> #pragma warning(push) #pragma warning(disable:4201)        #include <fwpsk.h> #pragma warning(pop) #include <fwpmk.h> #include <ws2ipdef.h> #include <in6addr.h> #include <ip2string.h> VOID DriverUnload( IN  PDRIVER_OBJECT driverObject ) {         UNREFERENCED_PARAMETER(DriverObject); KdPrint(("CloudScreen DriverUnload successful!")); DbgPrint("CloudScreen DriverUnload successful!"); return; } NTSTATUS DriverEntry( IN  PDRIVER_OBJECT  driverObject, IN  PUNICODE_STRING registryPath ) { NTSTATUS status = STATUS_SUCCESS; UNREFERENCED_PARAMETER(registryPath); driverObject->DriverUnload = DriverUnload; KdPrint(("CloudScreen DriverEntry successful!")); DbgPrint("CloudScreen DriverEntry successful!"); return status; } 參考: http://www.mycode.net.cn/language/cpp/1771.html 工具下載: https://developer.microsoft.com/zh-cn/windows/hardware/license-terms-enterprise-wdk https://developer.microsoft.com/zh-cn/windows/hardware/windows-driver-kit

相關推薦

WFP 驅動環境搭建(WIN10)編譯

網易部落格遷移,不知道為什麼封禁了帳號,先遷移部分部落格過來到csdn (吐槽:網易莫名其妙的封禁了部落格帳號,也不告知是什麼原因! 所以這種雲上的或者外部網站的,真的不好,哪天你的大量心血就沒了!:( , 這個對使用者知識太不尊重了!CSDN最好能夠提供設定部落格分享

ionic+angluar vscode開發環境搭建流程專案編譯打包 真機除錯

沒搞過ionic專案 中間遇見了很多坑,記錄下環境搭建及專案編譯備日後用的時候參考 整個過程: 編譯器:vscode 需要安裝的環境: node.js ,java jdk, gradle ,android sdk ,ionic  cordova  

LinuxserverJboss執行環境搭建步驟開機自己主動啟動腳本編寫執行

web bin 路徑 for scrip 環境變量 pro app 版本號 Jboss執行環境:Linux+Jdk+Jboss+jsp系統Jboss軟件說明:相似於Tomcat。就是一個跑Jsp系統的環境,他的網站路徑跟Tomcat相似,Tomcat存放網站文件到web

Java基礎002 Java9開發環境搭建(Win10平臺)

question 硬盤 oracle clip file 名稱 ubuntu16 load 頁面 搭建Java9開發環境 本篇文章目標 下載和安裝JDK 裸寫Java代碼、運行代碼 下載和安裝Eclipse IDE、設置 Eclipse 開發環境、了解主要的 Eclip

openWRT Ubuntu環境搭建及交叉編譯工具製作與使用

Openwrt本身不支援直接編譯C語言的,不支援GCC,因此,我們在Ubuntu下寫好的程式碼,通過gcc編譯後的可執行檔案是不能直接在openWRT上執行的。 因此,我們需要製作基於openWRT的交叉編譯工具 toolchain。 1

Tomcat9.0環境搭建與原始碼編譯

使用IntelliJ IDEA  搭建Tomcat9.0專案   準備條件:   下載原始碼 這裡我們下載的Tomcat的原始碼版本是9.0.12。 下載地址: https://tomcat.apache.org/download-90.cgi   &

win下Golang環境搭建筆記包安裝

1.下載Golang 我的安裝路徑是 D:\soft\Go 2.配置系統環境變數 GOROOT,就是安裝路徑 2.1 新增到path %GOROOT%\bin 3.配置 GOPATH,就是你的專案理解,如果有多個專案用分號 ; 分隔 4.

go環境搭建(win10)

下載壓縮包 golang中國,解壓到指定目錄D:\software\go 設定環境變數 GOROOT:D:\software\go Path:D:\software\go\bin ide

jsp-servlet(1)環境搭建(Tomcatmyeclipse)基本概念

1 Tomcat安裝 下載並解壓; 點選bin目錄下的start.bat檔案啟動(這裡可能會報錯,initinternal failed ,檢查8080埠是不是被佔用了,然後重新啟動); 訪問localhost:8080即可轉到下面的官方網站,因為I:\apache-tomcat-8.5.37\weba

【linux學習筆記--第一篇】基於nanopim2a的環境搭建,uboot編譯及下載

          接觸一個星期,搭建了虛擬機器,雙系統,行動硬碟ubuntu , 總結下來, 行動硬碟的系統最方便,硬碟可以分為2個分割槽,一個裝系統, 一個放檔案(windows也可以識別),感覺還是挺爽的。           以下是這幾天折騰u-boot的一

EOS開發環境搭建,如何編譯安裝構建EOSIO

獲取程式碼 下載所有的EOSIO程式碼,clone eos庫和所有的子模組。 shell 命令如下: git clone https://github.com/EOSIO/eos --recursive 如果忘記加 --recursive 引數也沒關

Lua學習筆記1:開發環境搭建(windowslinux)

一 windows 1 下載安裝“Lua For Windows” 2 安裝  3 編碼 開啟SciTE,輸入: print("hello,lua!"); 然後儲存,字尾名一定要是".lua",不然無法執行 4 執行 Tools-》Go,或者快捷鍵F5 二

BeeGFS開發環境搭建4-原始碼編譯

如果我們需要動態除錯和開發BeeGFS,那麼就需要自己手動編譯了,而且能夠用最簡單的方式執行起來,下面就講解自己探索和分析的過程。

Mac最新Flutter環境搭建執行對比理解宣告式UI

  前言         這段時間一直都在學習和寫關於SwiftUI的東西,前面也總結了四篇文章來大體上說了下Demo中功能實現的一些細節,後面準備開始瞭解學習一下Flutter,爭取在年前能再用Flutter寫一份專案Demo 出來,這個事在進行中,有需要

WIN10網狐開發環境搭建與Android客戶端編譯

ces text water cto img term 技術 分享 環境 http://i2.51cto.com/images/blog/201802/09/2e8eb644b82d1642df8b920f053a7bb0.png?x-oss-process=image/w

Ubuntu 14.04 CaffeTensorFlow的ARM NN SDK編譯環境搭建及MNIST程式測試

Ubuntu 14.04下Caffe和TensorFlow的ARM NN SDK的aarch64編譯環境搭建及MNIST程式測試 ARM官方測試環境 1. SCons安裝 2.安裝CMake 3.下載安裝boost 4.使用 S

ESP8266模組使用,環境搭建編譯燒錄

經過一陣子的搗漿糊,無數次的迷茫,困惑,終於慢慢看到點希望的曙光。網上的資料很多,但都不繫統,講地也不詳細,一半靠努力學,一半靠悟。阻擋了很多菜鳥的進步,我現在把我的經驗分享出來,希望少點痛苦多點成就感。      學習這個主要分兩大塊

esp8266~入坑sdk 3.0 IDF框架linux交叉編譯環境搭建

一、交叉編譯環境搭建步驟 1、安裝virtualbox、ubuntu虛擬機器共享windows資料夾,注!virtualbox最好裝在C盤,不然安裝虛擬工具經常會失敗。 2、新建共享目錄,掛載共享目錄到虛擬機器中 sudo mount -t vboxsf share /mn

更換git版本之後,win10下PX4編譯環境搭建

本文目的:更換git版本之後,以前搭建的PX4環境下,git clone不了程式碼  在這裡記錄一下新的搭建過程 參考:WINDOWS7建立PX4的Eclipse開發環境.pdf 步驟: (1)下載安裝cmake-3.6.1-win64-x64.msi,安裝的時候選擇a

## **Windows驅動編譯環境搭建(Visual Studio 2017 + WDK)*

*Windows驅動編譯環境搭建(Visual Studio 2017 + WDK) 在Win10環境下開發Windows驅動程式需要依賴WDK,微軟在”WDK7600“以後就不再提供獨立的核心驅動開發包了,而是必須首先安裝微軟整合開發環境VisualStud