当前位置:网站首页>(14) [driver development] configuration environment vs2019 + wdk10 write XP driver
(14) [driver development] configuration environment vs2019 + wdk10 write XP driver
2022-07-25 05:45:00 【One orange per bite】
List of articles
Reference resources : Reference blog
install SDK and WDK
What I use here is VS2019. The environment is already equipped , Just write it down . later VS2019 Can not be visual studio installer distinguish , And put new things , Then the official website vs The downloader has only VS2022, Think about updating it , So I reconfigured it , because C Disc shortage , Just put VS2019 Completely uninstalled . Who wants to ,VS2022 No longer supported win10 Of WDK( That expansion can't be installed ), and 2022 Of WDK There is no driver x86 Version of , Come and go . ok , It's reloaded VS2019.
Friendship tips : The newer the version, the better 
Hook this in the installer
WDK Install Links 
I seem to use 2004 Version of , It's still 10.19041.1, A little magic
Last ,VS20xx Is not important , It doesn't matter which one you install , The important thing is to remember SDK and WDK The version corresponds to
Finish loading WDK You will be prompted whether to install VS2019 add-in , Click Install
It doesn't matter if you don't pop up , Start looking

Double click the file , Can be installed ( If you don't use the default installation location , Then think about where to put it )
Create project
Create a new one Kernel Mode Driver, empty (KMDF) Project 
Just name yourself

Right click ==> attribute , That menu is too long , No screenshots.
Create a new one xxx.c file , Do not xxx.cpp



If you report an error : This project needs to alleviate Spectre Vulnerability Library
So please check 
If you have to toss , Then please move vs Find a corresponding version of the mitigation Library in the installer and install , Anyway, I installed several unmatched versions , I'm too lazy to
Programming
// Equivalent to ordinary program windows.h
#include <ntddk.h>
// Unload function
void DriverUnload(PDRIVER_OBJECT object) {
// Print a sentence , Convenient observation
DbgPrint("hello world: driver is unloading...");
}
// The main function , amount to main
//driver There is some information in , It's about this drive
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) {
// Driver USES DbgPrint(), For ordinary programs printf(), I know what you mean
DbgPrint("hello world");
// You can think that we assigned a callback function pointer
// The right time ( When uninstalling this driver ), Will call this function pointer
driver->DriverUnload = DriverUnload;
// Namely return 0 nothing more , Just look good
return STATUS_SUCCESS;
}
compile , Then pull to winxp Try it
dbgView I also checked the monitoring core , But sometimes it works and sometimes it doesn't work , Don't make a fool of yourself
Anyway, when it doesn't work windbg It will also print
I checked the surveillance core , But neither of them printed , Really weird
Other tools
There is a dual machine debugging tool called VirtualKD-Reduxz, Than windbg Naked even faster ,github There is , Search directly and you're done
There are also installation tutorials and use tutorials , Fool operation , I won't go into details
If something goes wrong during configuration , You can refer to what I wrote before
Virtual KD appear Still cannot find RPC dispatcher table
It hasn't been updated for a long time , No one looked at it. , No power . Just write it for yourself
边栏推荐
- flex布局常用属性总结
- Unity中使用UniRx入门总结
- R language uses LM function to build multiple linear regression model and write regression equation according to model coefficient
- systemverilog中function和task区别
- Softing pngate series gateway: integrate PROFIBUS bus into PROFINET network
- HTB-Optimum
- After Oracle user a deletes a table under user B's name, can user B recover the deleted table through the recycle bin?
- Unity接入ChartAndGraph图表插件
- 暑期总结2
- 剖析kubernetes集群内部DNS解析原理
猜你喜欢

HTB-Optimum

Application of hard coding and streaming integration scheme based on spice protocol in cloud games

An SQL execution process

Realsense D435i 深度图优化_高精度模式

同条网线电脑正常上网,手机连接wifi成功,但是无法访问互联网

Productivity tool in the new era -- flowus information flow comprehensive evaluation

Difference between NPX and NPM

SystemVerilog中interface(接口)介绍

基于ISO13209(OTX)实现EOL下线序列

ECS is exclusive to old users, and the new purchase of the remaining 10 instances is as low as 3.6% off
随机推荐
Arm PWN basic tutorial
Obj file format and.Mtl file format
ECS is exclusive to old users, and the new purchase of the remaining 10 instances is as low as 3.6% off
10、渲染基础
Sword finger offer special shock edition day 9
SystemVerilog中$write与$display区别
Unity接入ChartAndGraph图表插件
PHP warehouse inventory management system source code WMS source code
R language data The table package performs aggregation transforms of data packets and calculates the grouping interquartile range (IQR) of dataframe data
Switch NPM source to private source library
Introduction summary of using unirx in unity
HTB-Granpa
Leetcode 0121. the best time to buy and sell stocks - simulation from back to front
Equal proportion of R language test group: use the prop.test function to test whether the success proportion of the two groups is equal
50: Chapter 5: develop admin management service: 3: develop [query whether the admin user name already exists, interface]; (this interface can only be called when logging in; so we have written an int
sqlilabs less-29
PostgreSQL learning 04 PG_ hint_ Plan installation and use, SQL optimization knowledge
leetcode/整数除法
VPP cannot load up status interface
Softing pnGate系列网关:将PROFIBUS总线集成到PROFINET网络