windows驱动编程入门(第一个程序)
1. 工具
vc6.0
WINDDK 3790.1830
Dbgview
驱动加载工具InstDrv32位/64位中文版
2. 代码
first.c
///
/// @file first.c
/// @author crazy_chu
/// @date2008-11-1
/// #include <ntddk.h> // 提供一个Unload函数只是为了
VOID DriverUnload(PDRIVER_OBJECT driver)
{
// 但是实际上我们什么都不做,只打印一句话:
DbgPrint("first: Our driver is unloading…\r\n");
} // DriverEntry,入口函数。相当于main。
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
#if DBG
_asm int
#endif
// 这是我们的内核模块的入口,可以在这里写入我们想写的东西。
// 我在这里打印一句话。因为”Hello,world” 常常被高手耻笑,所以
// 我们打印一点别的。
DbgPrint("first: Hello, my salary!"); // 设置一个卸载函数便于这个函数能退出。
driver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
makefile
!IF 0
Copyright (C) Microsoft Corporation, 1999 - 2002
Module Name:
    makefile.
Notes:
    DO NOT EDIT THIS FILE!!!  Edit .\sources. if you want to add a new source
    file to this component.  This file merely indirects to the real make file
    that is shared by all the components of Windows NT (DDK)
!ENDIF
!INCLUDE $(NTMAKEENV)\makefile.def
sources
TARGETNAME=first
TARGETTYPE=DRIVER
SOURCES=first.c
TARGETPATH=obj
mybuild.bat
set root=%~d0
set curdir=%cd%
set ddk_path=d:\WINDDK\3790~1.183\bin
del %ddk_path%\ChngeDir.bat
echo %root%>>%ddk_path%\ChngeDir.bat
echo cd %curdir%>>%ddk_path%\ChngeDir.bat
echo build>>%ddk_path%\ChngeDir.bat
call %ddk_path%\setenv.bat d:\WINDDK\3790~1.183 chk WXP
call %ddk_path%\ChngeDir.bat
pause
3. 学习书籍
寒江独钓-Windows内核安全编程
windows驱动编程入门(第一个程序)的更多相关文章
- (转)Windows驱动编程基础教程
		版权声明 本书是免费电子书. 作者保留一切权利.但在保证本书完整性(包括版权声明.前言.正文内容.后记.以及作者的信息),并不增删.改变其中任何文字内容的前提下,欢迎任何读者 以任何形式(包括 ... 
- 《Windows核心编程》第一讲 对程序错误的处理
		一个Windows函数通常都有一个有意义的返回值类型,它标志着这个函数的运行状态,即函数运行成功与否.windows常用的函数类型如下图: 从系统内部来讲,当一个Windows函数检测到一个错误时,它 ... 
- windows 驱动开发入门——驱动中的数据结构
		最近在学习驱动编程方面的内容,在这将自己的一些心得分享出来,供大家参考,与大家共同进步,本人学习驱动主要是通过两本书--<独钓寒江 windows安全编程> 和 <windows驱动 ... 
- 0x02 译文:Windows桌面应用Win32第一个程序
		本节课我们将用C++ 写一个最简单的Windows 程序. 目录: 创建一个窗口 窗口消息 编写窗口过程 绘制窗口 关闭窗口 管理应用程序状态 代码如下: #ifndef UNICODE #defin ... 
- Windows驱动开发入门指引
		1. 前言 因工作上项目的需要,笔者需要做驱动相关的开发,之前并没有接触过相关的知识,折腾一段时间下来,功能如需实现了,也积累了一些经验和看法,所以在此做番总结. 对于驱动开发的开发指引,微软 ... 
- Windows多线程编程入门
		标签(空格分隔): Windows multithread programming 多线程 并发 编程 背景知识 在开始学习多线程编程之前,先来学习下进程和线程 进程 进程是指具有一定独立功能的程序在 ... 
- 梦织未来Windows驱动编程 第03课 驱动的编程规范
		最近根据梦织未来论坛的驱动教程学习了一下Windows下的驱动编程,做个笔记备忘.这是第03课<驱动的编程规范>. 驱动部分包括基本的驱动卸载函数.驱动打开关闭读取写入操作最简单的分发例程 ... 
- windows驱动编程(目录)
		目录 第一章 入门 配置开发环境 第一个程序 应用程序调用内核函数的流程 
- COM编程入门第一部分——什么是COM,如何使用COM
		本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念.内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件.本文不包括如何编写自己的COM对象和接口. CO ... 
随机推荐
- ms sql 根据表名查询 表中所有字段的属性值 sql语句
			SELECT表名=case when a.colorder=1 then d.name else '' end,--表说明=case when a.colorder=1 then isnull(f.v ... 
- ios  异步多线程 获取数据
			简介 iOS有三种多线程编程的技术,分别是: (一)NSThread (二)Cocoa NSOperation (三)GCD(全称:Grand Central Dispatch) 这三种编程方式 ... 
- Java线程状态:BLOCKED与WAITING的区别
			Doc说明: /** * Thread state for a thread blocked waiting for a monitor lock. * A thread in the blocked ... 
- Unix is 命令
			输入正整数n以及n个文件名,排序后按列优先的方式左对齐输出.假设最长文件名有M字符,则最右列有M字符,其他列都是M+2字符. 附加条件每行最多输出60个字符,在此条件下要求行最少. Sample in ... 
- C++ Primer Plus 6th 读书笔记 - 第6章 分支语句和逻辑运算符
			1. cin读取错误时对换行符的处理 #include <iostream> using namespace std; int main() { double d; char c; cin ... 
- SqlServer日期查询
			一.sql server日期时间函数 Sql Server中的日期与时间函数 1. 当前系统日期.时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返 ... 
- vs2010中socket链接错误LINK2019
			解决方法参考下面链接: http://blog.163.com/strive_only/blog/static/893801682009225112354746/ 
- Spyder调试错误-"TypeError: decoding Unicode is not supported"
			这是Spyder 2.7.4版本的一个Bug,升级到最新版本(2.7.9)即可. pip install --upgrade spyder Reference: https://github.com/ ... 
- python3.4 伪装成浏览器获取页面信息失败
			最近学了下网络爬虫,打算从一个网站上提取点东西,自己练练手,刚开始还从这个网站上取了正确的html,后来百般尝试还是不能取正确的html,希望能得到大家的帮助~ 我刚开始的代码是: 1 url=&qu ... 
- win7 Oracle 11g安装及安装中遇到的问题
			根据自己的系统从oracle官方下载安装包,官方地址:http://www.oracle.com/index.html win7的oracle 11g 安装包(2个): http://223.20.2 ... 
