惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
G
Google Developers Blog
Latest news
Latest news
Know Your Adversary
Know Your Adversary
O
OpenAI News
腾讯CDC
月光博客
月光博客
P
Privacy International News Feed
Google Online Security Blog
Google Online Security Blog
Help Net Security
Help Net Security
L
LINUX DO - 最新话题
雷峰网
雷峰网
AI
AI
Hacker News - Newest:
Hacker News - Newest: "LLM"
有赞技术团队
有赞技术团队
N
News and Events Feed by Topic
V
Vulnerabilities – Threatpost
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Docker
Google DeepMind News
Google DeepMind News
T
Tor Project blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hacker News: Ask HN
Hacker News: Ask HN
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
H
Heimdal Security Blog
I
Intezer
WordPress大学
WordPress大学
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy & Cybersecurity Law Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
博客园 - 三生石上(FineUI控件)
G
GRAHAM CLULEY
Security Archives - TechRepublic
Security Archives - TechRepublic
F
Fortinet All Blogs
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V2EX - 技术
V2EX - 技术
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
T
Tenable Blog
Microsoft Azure Blog
Microsoft Azure Blog
V
Visual Studio Blog
SecWiki News
SecWiki News
Cisco Talos Blog
Cisco Talos Blog

博客园 - 吴碧宇

NPM私有服务器架设 FOR CentOS 【转】c# 位操作 C#中调用Windows API时的数据类型对应关系 全面理解javascript的caller,callee,call,apply概念[转载] 发几个小的测式软件 用户中心 - 博客园 美杜杉 主动防御最新版 Asp.net 异步请求 IHttpAsyncHandler [转]COM线程模型-套间 [转]VC使用CRT调试功能来检测内存泄漏 [转]c#中 uint--byte[]--char[]--string相互转换汇总 [转]C++深度探索系列:智能指针(Smart Pointer) [一] [转]DirectShow+VS2005配置日记 [转]Windows API 注册表函数 特殊符号表 【转】C++反射机制的实现 ATL 开发 Com 学习笔记 常用数据类型使用转换详解 - 吴碧宇 - 博客园 [转]BSTR、char*和CString short转换
Vs2010 配置驱动开发环境
吴碧宇 · 2010-05-17 · via 博客园 - 吴碧宇

1、安装VS2010,安装WDK 7.0(DDK);

2、新建VC++->Empty Project

3、打开Configuration Manager  并新建一个名称为“ dirver ”的Solution Configuration 并将“dirver” 设为Active Solution Configuration .

4、打开View-> property Manager。

5、在"dirver"  solution configuration 上点击右键,选择Add new property Sheet。取名为“dirverProperty”. 并对他进下以下设置。

5.1. C\C++ - General - Debug Information Format = Program Database (/Zi)
5.2. C\C++ - Preprocessor - Preprocessor Definitions = _X86_ [add also DBG for Debug config]
【WIN32;_DEBUG;_X86_;i386;STD_CALL;CONDITION_HANDLING;WIN32_LEAN_AND_MEAN;NT_UP;SRVDBG;DBG;_IDWBUILD;_WIN32_WINNT=0x0400;% (PreprocessorDefinitions)】
5.3. C\C++ - Code Generation - Enable C++ Exceptions = No
5.4. C\C++ - Code Generation - Basic Runtime Checks = Default
5.5. C\C++ - Code Generation - Buffer Security Check = No (/GS-)
5.6. C\C++ - Advanced - Calling Convention = __stdcall (/Gz)
5.7. C\C++ - Advanced - Compile As = Compile as C Code (/TC) [if you are going to use plain C]
5.8. Linker - General - Output File = $(OutDir)\$(ProjectName).sys
5.9. Linker - General - Enable Incremental Linking = Default
5.10. Linker - Input - Additional Dependencies = ntoskrnl.lib hal.lib $(NOINHERIT) [add here needed libs here e.g. ntoskrnl.lib hal.lib]
【不知道上面是不是笔误,应该为:ntoskrnl.lib;hal.lib;%(AdditionalDependencies)】
5.11. Linker - Input - Ignore All Default Libraries = Yes (/NODEFAULTLIB)
5.12. Linker - Manifest File - Generate Manifest = No
5.13. Linker - System - SubSystem = Native (/SUBSYSTEM:NATIVE)
5.14. Linker - System - Driver = Driver (/DRIVER)
5.15. Linker - Advanced - Entry Point = DriverEntry
5.16. Linker - Advanced - Base Address = 0x10000
5.17. Linker - Advanced - Randomized Base Address = Disable (/DYNAMICBASE:NO)
【这个也是错误的:应该置空】
5.18. Linker - Advanced - Data Execution Prevention (DEP) = Disable (/NXCOMPAT:NO)
【这个也是错误的:应该置空】

6. Config VC++ Directories
6.1 Open Open up property manager by clicking on Menu View->Property Manager.
6.2 Expand the project node and then the Configuration|Platform nodes, you will see "Microsoft.cpp.<Platform>.users" file for each Configuration|Platform. These are the files

for the global settings, similar to the old tools/Options/VC++ Directories.
6.3 Multi-Select "Microsoft.cpp.<Platform>.users", right click and bring up the property page window
6.4 In the property page window, click on "VC++ Directories" (for example) in the left pane, add new paths for the directories such as "Include Directories". separated by

semicolons
(eg:Include Directories config As:
$(ddkroot)\INC
$(ddkroot)\INC\WNET
$(ddkroot)\INC\DDK\WNET
Library Directories config As:
$(ddkroot)\LIB\WNET\I386
)
6.5 Make sure to save the settings before shutting down Visual Studio.
6.6 Re-launch Visual Studio and the new settings will be in effect.
6.7 Note: If you would like to only change the settings for one project, you can right click on the project and bring up the property page. Change the settings for “VC++

Directories”, these settings will be persisted to the project file.
七. OK. Have done. Now you can test it with simple code, e.g.:

#include "ntddk.h"

NTSTATUS
DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
{
 return STATUS_UNSUCCESSFUL;
}

特别说明:
   1.
      Visual Studio 2010 在智能设备开发方面只支持Windows Phone OS 7.0。如果你要为Windows CE 5.0和Windows Mobile 6.5开发应用程序,请安装Visual Studio 2008。
   2.
      做驱动开发时,SDK的版本要和WDK的版本一致,即Win7 WDK要配Win7 SDK,否则会出现编译错误。VS2010里集成了Windows SDK 7.0A。
   3.
      如果出现类似如下编译错误,解决方法是:拷贝C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h,然后覆盖掉C:\WinDDK\7600.16385.1\inc\api\sal.h。

C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing ')' before 'const'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing '{' before 'const'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2059: syntax error : ','
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(56): error C2143: syntax error : missing ')' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(56): error C2085: '_ExceptionRecord' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(57): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(57): error C2085: '_EstablisherFrame' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(58): error C2085: '_Inout_' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(58): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(58): error C2085: '_ContextRecord' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(59): error C2085: '_Inout_' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(59): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(60): error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(60): error C2085: '_DispatcherContext' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(104): error C2082: redefinition of formal parameter '_exception_code'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(105): error C2082: redefinition of formal parameter '_exception_info'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(106): error C2082: redefinition of formal parameter '_abnormal_termination'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(92): error C2061: syntax error : identifier '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2054: expected '(' to follow '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2143: syntax error : missing ')' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2085: '_isctype_l' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2085: '_C' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2085: '_In_' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2085: '_Type' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2085: '_In_opt_' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2146: syntax error : missing ',' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2146: syntax error : missing ',' before identifier '_Locale'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93): error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(94): error C2061: syntax error : identifier '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(95): error C2086: 'int _Check_return_' : redefinition
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93) : see declaration of '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(95): error C2054: expected '(' to follow '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(95): error C2143: syntax error : missing ')' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(95): error C2085: '_isalpha_l' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(95): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(95): error C2085: '_C' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(95): error C2085: '_In_opt_' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(95): error C2146: syntax error : missing ',' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(95): error C2146: syntax error : missing ',' before identifier '_Locale'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(95): error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(96): error C2061: syntax error : identifier '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(97): error C2086: 'int _Check_return_' : redefinition
 C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93) : see declaration of '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(97): error C2054: expected '(' to follow '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(97): error C2143: syntax error : missing ')' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(97): error C2085: '_isupper_l' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(97): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(97): error C2085: '_C' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(97): error C2085: '_In_opt_' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(97): error C2146: syntax error : missing ',' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(97): error C2146: syntax error : missing ',' before identifier '_Locale'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(97): error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(98): error C2061: syntax error : identifier '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(99): error C2086: 'int _Check_return_' : redefinition
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93) : see declaration of '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(99): error C2054: expected '(' to follow '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(99): error C2143: syntax error : missing ')' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(99): error C2085: '_islower_l' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(99): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(99): error C2085: '_C' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(99): error C2085: '_In_opt_' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(99): error C2146: syntax error : missing ',' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(99): error C2146: syntax error : missing ',' before identifier '_Locale'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(99): error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(100): error C2061: syntax error : identifier '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(101): error C2086: 'int _Check_return_' : redefinition
          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93) : see declaration of '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(101): error C2054: expected '(' to follow '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(101): error C2143: syntax error : missing ')' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(101): error C2085: '_isdigit_l' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(101): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(101): error C2085: '_C' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(101): error C2085: '_In_opt_' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(101): error C2146: syntax error : missing ',' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(101): error C2146: syntax error : missing ',' before identifier '_Locale'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(101): error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(102): error C2061: syntax error : identifier '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(103): error C2086: 'int _Check_return_' : redefinition
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93) : see declaration of '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(103): error C2054: expected '(' to follow '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(103): error C2143: syntax error : missing ')' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(103): error C2085: '_isxdigit_l' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(103): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(103): error C2085: '_C' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(103): error C2085: '_In_opt_' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(103): error C2146: syntax error : missing ',' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(103): error C2146: syntax error : missing ',' before identifier '_Locale'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(103): error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(104): error C2061: syntax error : identifier '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(105): error C2086: 'int _Check_return_' : redefinition
          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93) : see declaration of '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(105): error C2054: expected '(' to follow '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(105): error C2143: syntax error : missing ')' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(105): error C2085: '_isspace_l' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(105): error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(105): error C2085: '_C' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(105): error C2085: '_In_opt_' : not in formal parameter list
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(105): error C2146: syntax error : missing ',' before identifier '_locale_t'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(105): error C2146: syntax error : missing ',' before identifier '_Locale'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(105): error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(106): error C2061: syntax error : identifier '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(107): error C2086: 'int _Check_return_' : redefinition
          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(93) : see declaration of '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(107): error C2054: expected '(' to follow '_Check_return_'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(107): error C2143: syntax error : missing ')' before 'type'
C:\Program Files\Microsoft Visual Studio 10.0\VC\include\ctype.h(107): fatal error C1003: error count exceeds 100; stopping compilation