Windows 驱动程序工具包中的头文件
MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff554695(v=vs.85).aspx
Windows 驱动程序工具包 (WDK) 包含构建内核模式和用户模式驱动程序所需的所有头文件(.h 文件)。头文件在 WDK 安装文件夹中的 Include 文件夹中。示例:C:\Program Files (x86)\Windows Kits\10\Include。
头文件包含版本信息,因此不论驱动程序在哪个版本的 Windows 上运行,你都可以使用一组相同的头文件。
表示 Windows 版本的常量
WDK 中的头文件包含的条件语句指定编程元素仅在某些版本的 Windows 操作系统中才可用。进行版本管理的元素包括函数、枚举、结构以及结构成员。
若要指定编程元素在每个操作系统版本中都可用,头文件包含的预处理器条件将 NTDDI_VERSION 的值与 Sdkddkver.h 中定义的一组预定义常量值相比较。
以下是表示 Microsoft Windows 操作系统版本的预定义常量值。
| 常量 | 操作系统版本 |
|---|---|
|
NTDDI_WIN10 |
Windows 10 |
|
NTDDI_WINBLUE |
Windows 8.1 |
|
NTDDI_WIN8 |
Windows 8 |
|
NTDDI_WIN7 |
Windows 7 |
|
NTDDI_WS08SP4 |
Windows Server 2008 SP4 |
|
NTDDI_WS08SP3 |
Windows Server 2008 SP3 |
|
NTDDI_WS08SP2 |
Windows Server 2008 SP2 |
|
NTDDI_WS08 |
Windows Server 2008 |
你可以在 WDK 头文件中看到特定于版本的 DDI 元素的多个示例。此条件声明出现在 Wdm.h 中,该文件为可能由内核模式驱动程序包含的头文件。
#if (NTDDI_VERSION >= NTDDI_WIN7)
_Must_inspect_result_
NTKERNELAPI
NTSTATUS
KeSetTargetProcessorDpcEx (
_Inout_ PKDPC Dpc,
_In_ PPROCESSOR_NUMBER ProcNumber
);
#endif
在该示例中,你可以看到仅在 Windows 7 和更高版本的 Windows 中才提供 KeSetTargetProcessorDpcEx 函数。
此条件声明出现在 Winspool.h 中,该文件为可能由用户模式驱动程序包含的头文件。
#if (NTDDI_VERSION >= NTDDI_WIN7)
...
BOOL
WINAPI
GetPrintExecutionData(
_Out_ PRINT_EXECUTION_DATA *pData
); #endif // (NTDDI_VERSION >= NTDDI_WIN7)
在该示例中,你可以看到仅在 Windows 7 和更高版本的 Windows 中才提供 GetPrintExecutionData 函数。
用于内核模式驱动程序框架的头文件
WDK 支持多种版本的 Windows,并且它还支持多种版本的内核模式驱动程序框架 (KMDF) 和用户模式驱动程序框架 (UMDF)。WDK 头文件中的版本信息与 Windows 版本有关,但与 KMDF 或 UMDF 版本无关。用于不同版本的 KMDF 和 UMDF 的头文件放置在不同的目录中。
Windows 驱动程序工具包中的头文件的更多相关文章
- C语言中的头文件
1.头文件#include <> :表示引用标准库头文件,编译器会从系统配置的库环境中去寻找 2.头文件#include "":一般表示用户自己定义使用的头文件,编译器 ...
- MinGW中的头文件路径级环境变量设置
整理自 MinGW中的头文件路径 C头文件目录%MINGW_PATH%/include下有头文件,里面有strcpy等c函数的声明. C++头文件目录%MINGW_PATH%/lib/gcc/mi ...
- 理解C++中的头文件和源文件的作用【转】
一.C++编译模式通常,在一个C++程序中,只包含两类文件--.cpp文件和.h文件.其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码:而.h文件则被称作C++头文件,里面放的也是C+ ...
- C++的IO处理中的头文件以及类理解(2)<sstream>头文件
C++的IO处理中的头文件以及类理解(2)<sstream>头文件 头文件<sstream>中定义的类型都继承iostream头文件中定义的类型.除了继承得来的操作,sstre ...
- VC中添加头文件以及库
原文:http://blog.csdn.net/lwb102063/article/details/52068389 附加头文件包含 VC6.0中: VC6.0默认include包含路径:Tool ...
- Linux中常用头文件的作用--转
http://blog.sina.com.cn/s/blog_5c93b2ab0100q62k.html 1. Linux中一些头文件的作用: <assert.h>:ANSI C.提供断言 ...
- 在.h和.cpp中包含头文件的区别
1.在.h中包含头文件,是为了声明一系列这个头文件的变量等,可能会产生重复包含的问题: 2.在.cpp中包含头文件只是为了实现这个头文件或者使用其中的方法,不会有重复包含的问题,所以尽量在源文件中包含 ...
- 在Qt Creator的项目中添加头文件和库
在Qt Creator中的工程中,工程通过.pro文件管理. 额外需要连接的连接库unix:LIBS += -L your_lib_path -lyour_libwin32:LIBS += your_ ...
- linux设备驱动程序该添加哪些头文件以及驱动常用头文件介绍(转)
原文链接:http://blog.chinaunix.net/uid-22609852-id-3506475.html 驱动常用头文件介绍 #include <linux/***.h> 是 ...
随机推荐
- 解决msi文件在XP上安装未完成(提示安装程序被中断,未能安装app。需要重新启动该安装程序进行重试)的问题。
如图所示,我利用Visual Studio 2015制作了一个小程序.基于.Net 4.0.用VS的Install扩展,新建Install项目进行打包.打包为.msi文件.该安装文件在已经安装了 .N ...
- Zookeeper概论(对zookeeper的概论、原理、架构等的理解)
Zookeeper概论(对zookeeper的概论.原理.架构等的理解) 一.概论 Zookeeper是一个分布式的.开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是h ...
- 深入剖析ConcurrentHashMap(2)
转载自并发编程网 – ifeve.com本文链接地址: 深入剖析ConcurrentHashMap(2) 经过之前的铺垫,现在可以进入正题了.我们关注的操作有:get,put,remove 这3个操作 ...
- Tomcat 在mac中Operation not permitted
5.执行/Library/Tomcat/bin下的startup.sh,然后打开http://localhost:8080查看是否Tomcat已经启动,若要停止服务器就运行同目录下的shutdown. ...
- 【Django】Django 定时任务实现(django-crontab+command)
一.编写自定义django-admin命令 注:利用django-admin自定义命令我们可以ORM框架对model进行操作,如:定时更新数据库,检测数据库状态..... Django为项目中每一个应 ...
- CE取系统时间值
取时间值: void GetTime() { //取时间值 SYSTEMTIME st = {}; // 时间结构体 GetLocalTime(&st); // 把获取的系统时间信息存储到SY ...
- BLOCK封装带菊花的网络请求
#import <Foundation/Foundation.h> @class HttpRequestManager; typedef void(^httpRequestBlock) ( ...
- spring注解 aop
@Resource(name="as") 为空按类型装配 @autowired 按类型 @quafiler (name="xx") 按名称 spring继承关 ...
- Matlab语法
第一节 基本数值计算1. 变量:分为数值变量和字符变量 2. 常量:计算机中不变的量.如i.j.pi.NaN(不确定).Inf(无穷大) 3. 字符变量:将字符串作为变量.有三种方法表示: (1 ...
- ffmpeg音频编码
在弄音频采集时,需要设置缓存的大小,如果只是简单的采集和直接播放PCM数据,缓存的大小一般不影响播放和保存. 但是,如果需要使用FFMpeg音频编码,这时,音频缓存的大小必须设置av_samples_ ...