自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (44)
  • 收藏
  • 关注

转载 实现抽象工厂

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 抽象工厂要解决的问题是:要创建一系列的产品对象,而这一系列对象是构建新的对象所需要的组成部分,也就是说,这一系列被创建的对象之间是存在约束的。 为了解决这个问题,模式中定义了一个抽象工厂,在抽象工厂中虚拟地创建客户端需要的这一系列对象。抽象工厂仅仅是定义了一些抽象方法,并不真正实现。而是将实现留给抽象工厂的子

2013-07-21 21:51:02 730

转载 网上找到linux 简单模块编译脚本

PWD=$(shell pwd) VER=$(shell uname -r) KERNEL_BUILD=/lib/modules/$(VER)/build # Later if you want to package the module binary you can provide an INSTALL_ROOT # INSTALL_ROOT=/tmp/install-root around

2012-04-02 17:07:26 584

原创 linux 在文件中搜索需要的内容

grep '需要查找的内容' ./* -r

2012-04-01 17:25:14 623

转载 网上找到一个解决 zune 连接错误的方法。

Zune无法连接到windows phone 7。当你把手机插上电脑的时候,打开zune可能会提示zune无法连接到你的手机。请断开连接,重新启动手机后,再次尝试连接。 - Can't connect to your phone. Disconnect it, Restart it, then try connecting again 经过反复尝试,这样的错误只会发生在USB连接的情况下

2011-12-09 19:02:36 4533

原创 WP7 报 Element is already the child of another element. [Line: 0 Position: 0]

最近在做开发WP7应用 的时候,发现在模板找资源不到的时候也会报这个错!记录一下,以后研究

2011-11-25 14:34:46 949 1

原创 WPF ListBox Style

                                                                                                                                                                                                  

2011-06-25 17:49:00 1628

原创 MVVM 纪要

MVVM交互图如下:

2011-04-06 16:17:00 585

原创 Canvas

<br />public class CusCanvas : Canvas<br />    {<br />        // Methods<br />        protected override Size ArrangeOverride(Size arrangeSize)<br />        {<br />            foreach (UIElement element in base.InternalChildren)<br />            {<br />   

2011-03-06 14:58:00 441

原创 WM 实现程序全屏

<br /><br />SHFullScreen(m_pMainWnd->m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON);<br />MoveWindow(m_pMainWnd->m_hWnd, 0,0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), FALSE);

2010-10-27 14:18:00 549

原创 c++自动类型转换

<br />class A<br />{<br />      A(CString s);<br />}<br /> <br />class B<br />{<br />       CString funcStr(const A& a);<br />}<br /> <br />B b;<br /> <br />CString s = L"Hello World!";<br /> <br />b.funcStr(s);<br /> <br /> <br />调用成功!

2010-08-10 09:25:00 534

原创 missing type specifier - int assumed. Note: C++ does not support default-int

C++ 头文件互相引用会引起:missing type specifier - int assumed. Note: C++ does not support default-int或者使用标准库时没有用std::前缀也没有用 use namespace std 也可能会引起同样的问题。

2010-08-10 09:16:00 1187

转载 WebKit 在Windows 平台下编译小结(转)

<br />WebKit 是世界公认的优秀的开源浏览器内核。具有渲染速度快,灵活可定制,多平台支持等优点。国内知名的Maxthon 和 UCWeb都将WebKit选作浏览器内核。谷歌公司和苹果公司也分别在WebKit 基础上只做了Chrome 浏览器和Safari 浏览器。 <br />     虽然WebKit 已经越来越多的被广大程序员接受,但其编译过程却非常之痛苦。下面将我编译WebKit 代码的经验与大家分享。<br /> <br />1) 获取WebKit 源代码<br />     WebKit

2010-07-27 08:56:00 570

转载 Webkit内核探究【1】——Webkit简介

Webkit内核探究【1】——Webkit简介 注:【转载请注明文章来源、保持原样】 出处:http://www.cnblogs.com/jyli/archive/2010/01/31/1660355.html 作者:李嘉昱 研究Webkit内核已经有一段时间了,在这期间我花了很多时间去研读webkit代码,并在网上查阅了不少的资料。在这之后,我开始尝试对Webkit内核进行剪裁,以便得到自己所需的部分。 俗语有言,“独学而无友 则孤陋而寡闻”,遂本着交流的态度拿出来与大家分享

2010-07-26 17:21:00 613

原创 VS2005(VS2008)快捷键

<br />快捷键 功能 <br />CTRL + SHIFT + B生成解决方案 <br />CTRL + F7 生成编译 <br />CTRL + O 打开文件 <br />CTRL + SHIFT + O打开项目 <br />CTRL + SHIFT + C显示类视图窗口 <br />F4 显示属性窗口 <br />SHIFT + F4显示项目属性窗口 <br />CTRL + SHIFT + E显示资源视图 <br />F12 转到定义 <br />CTRL + F12转到声明 <br />CTRL

2010-07-26 08:52:00 464

原创 关注点

<br />1、功能性(Functionality)<br />     产品向它的用户提供哪些功能?<br />2、可变性(Changeability)<br />     软件将来需要哪些改变?哪些改变不太可能发生<br />3、性能(Performance)<br />     产品将达到怎样的性能?<br />4、容量(Capacity)<br />     多少用户将并发使用该系统?该系统将为用户保存多少数据?<br />5、生态系统(Ecosystem)<br />     在部署的生态环境中,

2010-07-21 10:05:00 540

Android+NDK+Beginner's+Guide

Android+NDK+Beginner's+Guide

2012-05-11

MSBuild的简单介绍与使用

MSBuild 是 Microsoft 和 Visual Studio 的新生成系统。它不仅仅是一个构造工具,应该称之为拥有相当强大扩展能力的自动化平台。

2011-12-27

集成开发环境的配置及使用说明

本文讲解如何编写MSBuild脚本文件执行编译系统、运行FxCop检查代码、运行NUnit以及NCover进行单元测试、运行SandCastle生成帮助文档四项功能,并如何在集成开发环境中使用

2011-12-27

软件设计师考试冲刺指南

软件设计师考试冲刺指南 软件设计师考试冲刺指南 软件设计师考试冲刺指南 软件设计师考试冲刺指南

2011-04-02

2009年软件设计师考试大纲与培训指南

2009年软件设计师考试大纲与培训指南 欢迎大家下载 希望对大家有帮助

2011-04-02

好用的反编译工具.NET Reflector 6.1.0.11

NET程序员的开发利器.NET Reflector 一、 简介   程序集,作为.NET时代的动态链接库,蕴藏了太多的软件秘密。为此,Visual Studio内置的ILDASM成为最初挖掘程序集的上佳工具。但自从Reflector出现后,ILDASM相形见拙。因为,Reflector能提供更多的程序集信息,而且是免费的工具。   如今,在Visual Studio.NET中编译源代码(无论是VB还是C#)时,编译器都会将高级源代码翻译成MSIL,即“微软中间语言”,而不是特定的机器指令。具有更多安全性、版本控制、共享能力与其它相关元数据的中间语言(IL),是包在一个或多个DLL或可执行文件中的。   基于ILDASM检查程序集中的IL有时很有用,但它要求我们熟悉MSIL。通常,比起IL,大多数开发人员对像C#或Visual Basic这样的高级程序设计语言更为熟悉。   Reflector的出现使.NET程序员眼前豁然开朗,因为这个免费工具可以将.NET程序集中的中间语言反编译成C#或者Visual Basic代码。除了能将IL转换为C#或Visual Basic以外,Reflector还能够提供程序集中类及其成员的概要信息、提供查看程序集中IL的能力以及提供对第三方插件的支持。   二、 下载与运行Reflector   Reflector是由微软员工Lutz Roeder编写的免费程序。这个软件经常更新,你可以在http://www.aisto.com/roeder/dotnet下载最新的版本。在本文成文之时,Reflector的最新版本为5.0.35.0,仅有1M大小。只要双击下载后的Reflector.exe文件即可运行Reflector。   默认情况下,Reflector会打开一组公共程序集(mscorlib、System、System.Data、System.Drawing等等)。每个打开的程序集都列在Reflector的主窗口中。单击程序集旁边的+图标可以展开树结构并展示程序集的命名空间。每个命名空间旁边都有一个相关的+图标,单击这个图标将显示这个命名空间内的类。除此以外,还可以展开每个类,显示类的成员:事件、字段、方法与属性。   要想查看其它程序集(包括我们自己创建的程序集)的细节,你可以使用菜单命令“File→Open”。然后,浏览到想要查看的程序集。只要选择了有效的.NET程序集,这个程序集就可以在Reflector的主窗口中与其它默认程序集共同显示。要想从Reflector的主窗口中删除程序集,只需右击程序集并选择“Close”。   三、 使用Reflector反汇编程序集   提供基本的程序集是Reflector唾手可得的功能,然而,Reflector真正的威力体现在它的反汇编能力。只要浏览到类级的成员,就可以通过Tools菜单中的Disassembler项(或在该项上单击右键)反汇编此成员。这将打开第二个窗格,以C#、Visual Basic、Delphi或者IL显示反汇编后的内容。图2以C#语言展示了对SmtpClient类中Abort方法的反汇编结果。   有了Reflector的反编译功能,要研究.NET框架基类库就容易多了。我们完全可以在没有源代码的情况下研究我们所创建或者正在使用的程序集相应源代码。   不用太担心,你自己的.NET应用程序还有其它受保护措施。但是,想阻止别人查看.NET程序集的IL(继而反编译成C#或者Visual Basic)是不可能的,但你可以使用“混淆”技术使IL变得混乱。目前,市场上有许多.NET混淆产品,比如:PreEmptive Solution的Dotfuscator、WiseOwl的Dmeanor以及Remotesoft的.NET Obfuscator等。   四、 Reflecator的其它功能   除了作为对象浏览器与反汇编器之外,Reflector还可以显示类与其成员的调用与被调用图、提供单键访问Google或MSDN搜索的能力并提供了允许第三方开发人员为Reflector创建插件的框架。   要查看调用或被调用图,只需要在树视图中选择一个成员,访问Tools菜单,选择Call Graph或Callee Graph选项即可。Call Graph会列出所选项所调用的成员,而Callee Graph列出调用所选项的成员。   通过使用插件,Reflector的功能可以得到进一步扩展。目前有能显示程序集依赖图、自动加载当前运行中的程序集、输出整个程序集的反汇编内容以及在Visual Studio中作为Reflector的宿主等的插件。还有更多插件都列在http://www.codeplex.com/reflectoraddins中。在此,我极力推荐有兴趣的读者前去一看。   不出乎所料,的确存在一个Reflector.VisualStudio插件。有了这个插件,就可以让Reflector集成在Visual Studio环境中,进而取代以前那个有些“拙漏”的对象浏览器。   首先,我们需要在机器上准备Reflector的最新版,然后从http://www.testdriven.NET/reflector下载最新版本的Reflector.VisualStudio插件。据说安装了此插件之后,Reflector能够与Visual Studio完美融合。但遗憾的是,本人试下载此软件并安装(仅能得到TestDriven.NET-2.8.2130 RTM个人测试版本,时间7/30/2007,大小3.3M)后,没有大发现—仅是在VS2005中添加“Go to Reflector”和一个帮助菜单项。点击“Go to Reflector”菜单项仅是从VS2005内部启动Reflector而已。   有了Reflector.VisualStudio插件(正版,下面是根据在线资料介绍),Reflector可以寄在Visual Studio中Reflector不仅是一个对象浏览器、反汇编器,包裹在同一个程序中的所有功能还可以寄于Visual Studio中。   五、 小结   还记得Spy++吗?在Win32时代,这个软件对于我们分析一个陌生软件的设计思路可谓立下汗马功劳。在如今的.NET时代,Reflector又成为每个严肃的.NET开发人员工具箱中必不可少的精髓工具之一。怎么样,请赶紧试锋吧。

2011-03-06

Microsoft_Press_ebook_Programming_Windows_Phone_7_PDF

Introduction ................................................................................. xii Part I The Basics 1 Hello, Windows Phone 7 ............................................................... 2 Targeting Windows Phone 7 ........................................................................... 2 The Hardware Chassis ...................................................................................... 4 Sensors and Services ........................................................................................ 6 File | New | Project ........................................................................................... 7 A First Silverlight Phone Program .................................................................. 8 The Standard Silverlight Files ........................................................................ 10 Color Themes .................................................................................................. 17 Points and Pixels ............................................................................................. 18 The XAP is a ZIP .............................................................................................. 20 An XNA Program for the Phone ................................................................... 21 2 Getting Oriented .......................................................................... 29 Silverlight and Dynamic Layout .................................................................... 29 Orientation Events .......................................................................................... 36 XNA Orientation ............................................................................................. 38 Simple Clocks (Very Simple Clocks) .............................................................. 41 3 An Introduction to Touch ........................................................... 47 Low-Level Touch Handling in XNA ............................................................... 47 The XNA Gesture Interface ............................................................................ 51 Low-Level Touch Events in Silverlight .......................................................... 52 The Manipulation Events ............................................................................... 56 Routed Events ................................................................................................. 59 Some Odd Behavior? ...................................................................................... 61 4 Bitmaps, Also Known as Textures .............................................. 62 XNA Texture Drawing .................................................................................... 63 The Silverlight Image Element ...................................................................... 65 Images Via the Web ....................................................................................... 66 Image and ImageSource ................................................................................ 70 Loading Local Bitmaps from Code ................................................................ 71 vi Capturing from the Camera .......................................................................... 73 The Phone’s Photo Library ............................................................................ 76 5 Sensors and Services ................................................................... 80 Accelerometer ................................................................................................. 80 A Simple Bubble Level ................................................................................... 86 Geographic Location ...................................................................................... 91 Using a Map Service ....................................................................................... 95 6 Issues in Application Architecture ........................................... 103 Basic Navigation .......................................................................................... 103 Passing Data to Pages ................................................................................. 110 Sharing Data Among Pages ........................................................................ 112 Retaining Data across Instances ................................................................ 117 The Multitasking Ideal ................................................................................ 120 Task Switching on the Phone ..................................................................... 120 Page State ..................................................................................................... 122 Isolated Storage ........................................................................................... 126 Xna Tombstoning and Settings .................................................................. 130 Testing and Experimentation ..................................................................... 136 Part II Silverlight 7 XAML Power and Limitations ................................................... 138 A TextBlock in Code .................................................................................... 139 Property Inheritance ................................................................................... 141 Property-Element Syntax ............................................................................ 143 Colors and Brushes ...................................................................................... 144 Content and Content Properties ................................................................ 151 The Resources Collection ............................................................................ 154 Sharing Brushes ........................................................................................... 156 x :Key and x:Name ........................................................................................ 159 An Introduction to Styles ............................................................................ 160 Style Inheritance .......................................................................................... 161 Themes .......................................................................................................... 163 Gradient Accents ......................................................................................... 163 8 Elements and Properties ........................................................... 165 Basic Shapes ................................................................................................. 165 vii Transforms ................................................................................................... 167 Animating at the Speed of Video .............................................................. 175 Handling Manipulation Events .................................................................. 177 The Border Element ..................................................................................... 178 TextBlock Properties and Inlines ............................................................... 182 More on Images ........................................................................................... 185 Playing Movies ............................................................................................. 188 Modes of Opacity ........................................................................................ 188 Non-Tiled Tile Brushes ................................................................................ 190 9 The Intricacies of Layout .......................................................... 192 The Single-Cell Grid ..................................................................................... 193 The StackPanel Stack .................................................................................. 195 Text Concatenation with StackPanel ......................................................... 199 Nested Panels ............................................................................................... 201 Visibility and Layout .................................................................................... 202 Two ScrollViewer Applications ................................................................... 205 The Mechanism of Layout .......................................................................... 211 Inside the Panel ........................................................................................... 213 A Single-Cell Grid Clone .............................................................................. 214 A Custom Vertical StackPanel .................................................................... 218 The Retro Canvas ......................................................................................... 220 Canvas and ZIndex ...................................................................................... 226 The Canvas and Touch ................................................................................ 226 The Mighty Grid ........................................................................................... 228 10 The App Bar and Controls ........................................................ 232 ApplicationBar Icons ................................................................................... 232 Jot and Application Settings ...................................................................... 240 Jot and Touch .............................................................................................. 245 Jot and the ApplicationBar ......................................................................... 247 Elements and Controls ................................................................................ 252 RangeBase and Slider .................................................................................. 254 The Basic Button .......................................................................................... 261 The Concept of Content .............................................................................. 265 Theme Styles and Precedence .................................................................... 270 The Button Hierarchy .................................................................................. 271 Toggling a Stopwatch ................................................................................. 274 Buttons and Styles ....................................................................................... 284 viii TextBox and Keyboard Input ..................................................................... 286 11 Dependency Properties ............................................................. 296 The Problem Illustrated .............................................................................. 296 The Dependency Property Difference ....................................................... 299 Deriving from UserControl ......................................................................... 310 A New Type of Toggle ................................................................................ 321 Panels with Properties ................................................................................ 326 Attached Properties .................................................................................... 332 12 Data Bindings ............................................................................. 338 Source and Target ....................................................................................... 338 Target and Mode ......................................................................................... 341 Binding Converters ...................................................................................... 343 Relative Source ............................................................................................ 348 The “this” Source ......................................................................................... 349 Notification Mechanisms ............................................................................ 353 A Simple Binding Server ............................................................................. 354 Setting the DataContext ............................................................................. 360 Simple Decision Making ............................................................................. 366 Converters with Properties ......................................................................... 370 Give and Take ............................................................................................... 374 TextBox Binding Updates ........................................................................... 380 13 Vector Graphics ......................................................................... 393 The Shapes Library ...................................................................................... 393 Canvas and Grid ........................................................................................... 395 Overlapping and ZIndex ............................................................................. 396 Polylines and Custom Curves ..................................................................... 398 Caps, Joins, and Dashes .............................................................................. 403 Polygon and Fill ........................................................................................... 411 The Stretch Property ................................................................................... 413 Dynamic Polygons ....................................................................................... 414 The Path Element ........................................................................................ 417 Geometries and Transforms ....................................................................... 423 Grouping Geometries .................................................................................. 428 The Versatile PathGeometry ....................................................................... 429 The ArcSegment ........................................................................................... 431 Bézier Curves ................................................................................................ 440 ix The Path Markup Syntax ............................................................................ 450 How This Chapter Was Created ................................................................. 455 14 Raster Graphics .......................................................................... 461 The Bitmap Class Hierarchy ........................................................................ 461 WriteableBitmap and UIElement ............................................................... 463 The Pixel Bits ................................................................................................ 470 Vector Graphics on a Bitmap ...................................................................... 474 Images and Tombstoning ........................................................................... 480 Saving to the Picture Library ...................................................................... 489 Becoming a Photo Extras Application ....................................................... 497 15 Animations ................................................................................. 508 Frame-Based vs. Time-Based ...................................................................... 508 Animation Targets ....................................................................................... 512 Click and Spin ............................................................................................... 513 Some Variations ........................................................................................... 516 XAML-Based Animations ............................................................................ 520 A Cautionary Tale ........................................................................................ 523 Key Frame Animations ................................................................................ 530 Trigger on Loaded ....................................................................................... 534 Animating Attached Properties (or Not) .................................................. 543 Splines and Key Frames ............................................................................... 548 The Bouncing Ball Problem ........................................................................ 557 The Easing Functions ................................................................................... 561 Animating Perspective Transforms ........................................................... 567 Animations and Property Precedence ....................................................... 573 16 The Two Templates ................................................................... 578 ContentControl and DataTemplate ............................................................ 578 Examining the Visual Tree .......................................................................... 583 ControlTemplate Basics ............................................................................... 589 The Visual State Manager ........................................................................... 601 Sharing and Reusing Styles and Templates .............................................. 610 Custom Controls in a Library ...................................................................... 614 Variations on the Slider .............................................................................. 619 The Ever-Handy Thumb .............................................................................. 629 Custom Controls .......................................................................................... 634 x 17 Items Controls ............................................................................ 641 Items Controls .............................................................................................. 641 Items Controls and Visual Trees ................................................................. 642 Customizing Item Displays ......................................................................... 649 ListBox Selection .......................................................................................... 653 Binding to ItemsSource ............................................................................... 658 Databases and Business Objects ................................................................ 663 Fun with DataTemplates ............................................................................. 682 Sorting .......................................................................................................... 685 Changing the Panel ..................................................................................... 690 The DataTemplate Bar Chart ...................................................................... 692 A Card File Metaphor .................................................................................. 699 18 Pivot and Panorama .................................................................. 712 Compare and Contrast ................................................................................ 712 Music by Composer ..................................................................................... 725 The XNA Connection ................................................................................... 728 The XNA Music Classes : MediaLibrary ...................................................... 731 Displaying the Albums ................................................................................ 737 The XNA Music Classes : MediaPlayer ....................................................... 742 Part III XNA 19 Principles of Movement ............................................................ 750 The Naïve Approach .................................................................................... 750 A Brief Review of Vectors ........................................................................... 753 Moving Sprites with Vectors ...................................................................... 758 Working with Parametric Equations ......................................................... 760 Fiddling with the Transfer Function .......................................................... 763 Scaling the Text ........................................................................................... 764 Two Text Rotation Programs ..................................................................... 768 20 Textures and Sprites .................................................................. 775 The Draw Variants ....................................................................................... 775 Another Hello Program? ............................................................................. 777 Driving Around the Block ........................................................................... 782 Movement Along a Polyline ....................................................................... 786 The Elliptical Course .................................................................................... 791 A Generalized Curve Solution .................................................................... 794 xi 21 Dynamic Textures ...................................................................... 799 The Render Target ....................................................................................... 799 Preserving Render Target Contents .......................................................... 808 Drawing Lines .............................................................................................. 812 Manipulating the Pixel Bits ........................................................................ 819 The Geometry of Line Drawing .................................................................. 823 Modifying Existing Images ......................................................................... 835 22 From Gestures to Transforms .................................................. 840 Gestures and Properties .............................................................................. 840 Scale and Rotate .......................................................................................... 844 Matrix Transforms ....................................................................................... 853 The Pinch Gesture ........................................................................................ 856 Flick and Inertia ........................................................................................... 864 The Mandelbrot Set ..................................................................................... 867 Pan and Zoom .............................................................................................. 878 Game Components ...................................................................................... 885 Affine and Non-Affine Transforms ............................................................ 889 23 Touch and Play .......................................................................... 900 More Game Components ............................................................................ 900 The PhingerPaint Canvas ............................................................................ 905 A Little Tour Through SpinPaint ................................................................ 916 The SpinPaint Code ..................................................................................... 918 The Actual Drawing ..................................................................................... 923 PhreeCell and a Deck of Cards ................................................................... 928 The Playing Field ......................................................................................... 929 Play and Replay ............................................................................................ 938 24 Tilt and Play ............................................................................... 952 3D Vectors .................................................................................................... 952 A Better Bubble Visualization .................................................................... 955 The Graphical Rendition ............................................................................. 964 Follow the Rolling Ball ................................................................................ 972 Navigating a Maze ...................................................................................... 984

2010-12-29

Android开发教程.pdf

Android开发教程.pdf 很不错的资料!不妨下下看。。。。

2010-09-09

经典SQL语句大全(全面提升你的SQL水平)

经典SQL语句大全(全面提升你的SQL水平) 适用于初学者与中等水平的人

2010-09-01

Webkit编译详解

Webkit编译详解 WebKit分析,体系介绍

2010-09-01

Windows驱动开发技术详解

第1篇 入门篇 第1章 从两个最简单的驱动谈起 2 本章向读者呈现两个最简单的Windows驱动程序,一个是NT式的驱动程序,另一个是WDM式的驱动程序。这两个驱动程序没有操作具体的硬件设备,只是在系统里创建了虚拟设备。在随后的章节中,它们会作为基本驱动程序框架,被本书其他章节的驱动程序开发所复用。笔者将带领读者编写代码、编译、安装和调试程序。 1.1 DDK的安装 2 1.2 第一个驱动程序HelloDDK的代码分析 3 1.2.1 HelloDDK的头文件 4 1.2.2 HelloDDK的入口函数 5 1.2.3 创建设备例程 6 1.2.4 卸载驱动例程 8 1.2.5 默认派遣例程 9 1.3 HelloDDK的编译和安装 9 1.3.1 用DDK环境编译HelloDDK 9 1.3.2 用VC集成开发环境编译HelloDDK 11 1.3.3 HelloDDK的安装 14 1.4 第二个驱动程序HelloWDM的代码分析 16 1.4.1 HelloWDM的头文件 16 1.4.2 HelloWDM的入口函数 17 1.4.3 HelloWDM的AddDevice例程 18 1.4.4 HelloWDM处理PNP的回调函数 20 1.4.5 HelloWDM对PNP的默认处理 22 1.4.6 HelloWDM对IRP_MN_REMOVE_DEVICE的处理 23 1.4.7 HelloWDM对其他IRP的回调函数 23 1.4.8 HelloWDM的卸载例程 24 1.5 HelloWDM的编译和安装 24 1.5.1 用DDK编译环境编译HelloWDM 24 1.5.2 HelloWDM的编译过程 25 1.5.3 安装HelloWDM 25 1.6 小结 29 第2章 Windows操作驱动的基本概念 31 驱动程序被操作系统加载在内核模式下,它与Windows操作系统内核的其他组件进行密切交互。本章主要介绍Windows操作系统内核的基本概念,同时还介绍应用程序和驱动程序之间的通信方法。 2.1 Windows操作系统概述 31 2.1.1 Windows家族 31 2.1.2 Windows特性 32 2.1.3 用户模式和内核模式 34 2.1.4 操作系统与应用程序 36 2.2 操作系统分层 37 2.2.1 Windows操作系统总体架构 37 2.2.2 应用程序与Win32子系统 38 2.2.3 其他环境子系统 40 2.2.4 Native API 41 2.2.5 系统服务 41 2.2.6 执行程序组件 42 2.2.7 驱动程序 44 2.2.8 内核 44 2.2.9 硬件抽象层 45 2.2.10 Windows与微内核 45 2.3 从应用程序到驱动程序 46 2.4 小结 48 第3章 Windows驱动编译环境配置、安装及调试 49 本章将带领读者一步步对驱动程序进行编译、安装和简单的调试工作。这些步骤虽然简单,但往往困惑着初次接触驱动程序的开发者。 3.1 用C语言还是用C++语言 49 3.1.1 调用约定 50 3.1.2 函数的导出名 52 3.1.3 运行时函数的调用 53 3.2 用DDK编译环境编译驱动程序 54 3.2.1 编译版本 55 3.2.2 nmake工具 55 3.2.3 build工具 56 3.2.4 makefile文件 57 3.2.5 dirs文件 58 3.2.6 sources文件 58 3.2.7 makefile.inc文件 59 3.2.8 build工具的环境变量 60 3.2.9 build工具的命令行参数 61 3.3 用VC编译驱动程序 62 3.3.1 建立驱动程序工程 62 3.3.2 修改编译选项 62 3.3.3 修改链接选项 63 3.3.4 其他修改 64 3.3.5 VC编译小结 65 3.4 查看调试信息 66 3.4.1 打印调试语句 66 3.4.2 查看调试语句 67 3.5 手动加载NT式驱动 68 3.6 编写程序加载NT式驱动 68 3.6.1 SCM组件和Windows服务 69 3.6.2 加载NT驱动的代码 71 3.6.3 卸载NT驱动的代码 74 3.6.4 实验 76 3.7 WDM式驱动的加载 78 3.7.1 WDM的手动安装 78 3.7.2 简单的INF文件剖析 79 3.8 WDM设备安装在注册表中的变化 81 3.8.1 硬件子键 81 3.8.2 类子键 83 3.8.3 服务子键 85 3.9 小结 86 第4章 驱动程序的基本结构 87 本章首先对Windows驱动程序的两个重要数据结构进行介绍,分别是驱动对象和设备对象数据结构。另外还要介绍NT驱动程序和WDM驱动程序的入口函数、卸载例程、各种IRP派遣上函数等。 4.1 Windows驱动程序中重要的数据结构 87 4.1.1 驱动对象(DRIVER_OBJECT) 87 4.1.2 设备对象(DEVICE_OBJECT) 89 4.1.3 设备扩展 91 4.2 NT式驱动的基本结构 92 4.2.1 驱动加载过程与驱动入口函数(DriverEntry) 92 4.2.2 创建设备对象 95 4.2.3 DriverUnload例程 97 4.2.4 用WinObj观察驱动对象和设备对象 98 4.2.5 用DeviceTree观察驱动对象和设备对象 101 4.3 WDM式驱动的基本结构 102 4.3.1 物理设备对象与功能设备对象 102 4.3.2 WDM驱动的入口程序 104 4.3.3 WDM驱动的AddDevice例程 105 4.3.4 DriverUnload例程 107 4.3.5 对IRP_MN_REMOVE_DEVICE IRP的处理 108 4.3.6 用Device Tree查看WDM设备对象栈 109 4.4 设备的层次结构 110 4.4.1 驱动程序的垂直层次结构 111 4.4.2 驱动程序的水平层次结构 112 4.4.3 驱动程序的复杂层次结构 112 4.5 实验 114 4.5.1 改写HelloDDK查看驱动结构 114 4.5.2 改写HelloWDM查看驱动结构 116 4.6 小结 117 第5章 Windows内存管理 118 本章围绕着驱动程序中的内存操作进行了介绍。在驱动程序开发中,首先要注意分页内存和非分页内存的使用。同时,还需要区分物理内存地址和虚拟内存地址这两个概念。 5.1 内存管理概念 118 5.1.1 物理内存概念(Physical Memory Address) 118 5.1.2 虚拟内存地址概念(Virtual Memory Address) 119 5.1.3 用户模式地址和内核模式地址 120 5.1.4 Windows驱动程序和进程的关系 121 5.1.5 分页与非分页内存 122 5.1.6 分配内核内存 123 5.2 在驱动中使用链表 124 5.2.1 链表结构 124 5.2.2 链表初始化 125 5.2.3 从首部插入链表 126 5.2.4 从尾部插入链表 126 5.2.5 从链表删除 127 5.2.6 实验 129 5.3 Lookaside结构 130 5.3.1 频繁申请内存的弊端 130 5.3.2 使用Lookaside 130 5.3.3 实验 132 5.4 运行时函数 133 5.4.1 内存间复制(非重叠) 133 5.4.2 内存间复制(可重叠) 134 5.4.3 填充内存 134 5.4.4 内存比较 135 5.4.5 关于运行时函数使用的注意事项 135 5.4.6 实验 137 5.5 使用C++特性分配内存 137 5.6 其他 139 5.6.1 数据类型 139 5.6.2 返回状态值 140 5.6.3 检查内存可用性 142 5.6.4 结构化异常处理(try-except块) 142 5.6.5 结构化异常处理(try-finally块) 144 5.6.6 使用宏需要注意的地方 146 5.6.7 断言 147 5.7 小结 147 第6章 Windows内核函数 148 本章介绍了Windows内核模式下的一些常用内核函数,这些函数在驱动程序的开发中将会经常用到。 6.1 内核模式下的字符串操作 148 6.1.1 ASCII字符串和宽字符串 148 6.1.2 ANSI_STRING字符串与UNICODE_STRING字符串 149 6.1.3 字符初始化与销毁 151 6.1.4 字符串复制 152 6.1.5 字符串比较 153 6.1.6 字符串转化成大写 154 6.1.7 字符串与整型数字相互转换 155 6.1.8 ANSI_STRING字符串与UNICODE_STRING字符串相互转换 157 6.2 内核模式下的文件操作 158 6.2.1 文件的创建 158 6.2.2 文件的打开 161 6.2.3 获取或修改文件属性 163 6.2.4 文件的写操作 166 6.2.5 文件的读操作 167 6.3 内核模式下的注册表操作 169 6.3.1 创建关闭注册表 170 6.3.2 打开注册表 172 6.3.3 添加、修改注册表键值 173 6.3.4 查询注册表 175 6.3.5 枚举子项 178 6.3.6 枚举子键 180 6.3.7 删除子项 182 6.3.8 其他 183 6.4 小结 185 第7章 派遣函数 186 本章重点介绍了驱动程序中的处理IRP请求的派遣函数。所有对设备的操作最终将转化为IRP请求,这些IRP请求会被传送到派遣函数处理。 7.1 IRP与派遣函数 186 7.1.1 IRP 186 7.1.2 IRP类型 188 7.1.3 对派遣函数的简单处理 188 7.1.4 通过设备链接打开设备 190 7.1.5 编写一个更通用的派遣函数 191 7.1.6 跟踪IRP的利器IRPTrace 193 7.2 缓冲区方式读写操作 196 7.2.1 缓冲区设备 196 7.2.2 缓冲区设备读写 197 7.2.3 缓冲区设备模拟文件读写 200 7.3 直接方式读写操作 203 7.3.1 直接读取设备 204 7.3.2 直接读取设备的读写 205 7.4 其他方式读写操作 207 7.4.1 其他方式设备 207 7.4.2 其他方式读写 208 7.5 IO设备控制操作 209 7.5.1 DeviceIoControl与驱动交互 209 7.5.2 缓冲内存模式IOCTL 210 7.5.3 直接内存模式IOCTL 212 7.5.4 其他内存模式IOCTL 214 7.6 小结 216 第2篇 进阶篇 第8章 驱动程序的同步处理 218 本章介绍了驱动程序中常用的同步处理办法,并且将内核模式下的同步处理方法和用户模式下的同步处理方法做了比较。另外,本章还介绍了中断请求级、自旋锁等同步处理机制。 8.1 基本概念 218 8.1.1 问题的引出 218 8.1.2 同步与异步 219 8.2 中断请求级 219 8.2.1 中断请求(IRQ)与可编程中断控制器(PIC) 220 8.2.2 高级可编程控制器(APIC) 221 8.2.3 中断请求级(IRQL) 221 8.2.4 线程调度与线程优先级 222 8.2.5 IRQL的变化 223 8.2.6 IRQL与内存分页 223 8.2.7 控制IRQL提升与降低 224 8.3 自旋锁 224 8.3.1 原理 224 8.3.2 使用方法 225 8.4 用户模式下的同步对象 225 8.4.1 用户模式的等待 226 8.4.2 用户模式开启多线程 226 8.4.3 用户模式的事件 227 8.4.4 用户模式的信号灯 229 8.4.5 用户模式的互斥体 230 8.4.6 等待线程完成 232 8.5 内核模式下的同步对象 232 8.5.1 内核模式下的等待 232 8.5.2 内核模式下开启多线程 234 8.5.3 内核模式下的事件对象 236 8.5.4 驱动程序与应用程序交互事件对象 237 8.5.5 驱动程序与驱动程序交互事件对象 239 8.5.6 内核模式下的信号灯 240 8.5.7 内核模式下的互斥体 241 8.5.8 快速互斥体 243 8.6 其他同步方法 244 8.6.1 使用自旋锁进行同步 245 8.6.2 使用互锁操作进行同步 247 8.7 小结 249 第9章 IRP的同步 250 本章详细地介绍了IRP的同步处理方法和异步处理方法。另外,本章还介绍了StartIO例程、中断服务例程、DPC服务例程。 9.1 应用程序对设备的同步异步操作 250 9.1.1 同步操作与异步操作原理 250 9.1.2 同步操作设备 252 9.1.3 异步操作设备(方式一) 253 9.1.4 异步操作设备(方式二) 254 9.2 IRP的同步完成与异步完成 256 9.2.1 IRP的同步完成 256 9.2.2 IRP的异步完成 257 9.2.3 取消IRP 262 9.3 StartIO例程 264 9.3.1 并行执行与串行执行 264 9.3.2 StartIO例程 265 9.3.3 示例 267 9.4 自定义的StartIO 270 9.4.1 多个串行化队列 270 9.4.2 示例 271 9.5 中断服务例程 273 9.5.1 中断操作的必要性 273 9.5.2 中断优先级 274 9.5.3 中断服务例程(ISR) 274 9.6 DPC例程 275 9.6.1 延迟过程调用例程(DPC) 275 9.6.2 DpcForISR 275 9.7 小结 276 第10章 定时器 277 本章总结了在内核模式下的四种等待方法,读者可以利用这些方法灵活地用在自己的驱动程序中。最后本章还介绍了如何对IRP的超时情况进行处理。 10.1 定时器实现方式一 277 10.1.1 I/O定时器 277 10.1.2 示例代码 278 10.2 定时器实现方式二 280 10.2.1 DPC定时器 280 10.2.2 示例代码 282 10.3 等待 284 10.3.1 第一种方法:使用KeWaitForSingleObject 284 10.3.2 第二种方法:使用KeDelayExecutionThread 285 10.3.3 第三种方法:使用KeStallExecutionProcessor 285 10.3.4 第四种方法:使用定时器 286 10.4 时间相关的其他内核函数 286 10.4.1 时间相关函数 286 10.4.2 示例代码 288 10.5 IRP的超时处理 289 10.5.1 原理 289 10.5.2 示例代码 289 10.6 小结 291 第 11章 驱动程序调用驱动程序 292 本章主要介绍了如何在驱动程序中调用其他驱动程序。比较简单的方法是将被调用的驱动程序以文件的方式操作。比较高级的方法是构造各种IRP,并将这些IRP传送到被调用的驱动程序中。 11.1 以文件句柄形式调用其他驱动程序 292 11.1.1 准备一个标准驱动 292 11.1.2 获得设备句柄 294 11.1.3 同步调用 295 11.1.4 异步调用方法一 297 11.1.5 异步调用方法二 299 11.1.6 通过符号链接打开设备 301 11.2 通过设备指针调用其他驱动程序 303 11.2.1 用IoGetDeviceObjectPointer获得设备指针 304 11.2.2 创建IRP传递给驱动的派遣函数 305 11.2.3 用IoBuildSynchronousFsdRequest创建IRP 306 11.2.4 用IoBuildAsynchronousFsdRequest创建IRP 308 11.2.5 用IoAllocateIrp创建IRP 311 11.3 其他方法获得设备指针 314 11.3.1 用ObReferenceObjectByName获得设备指针 314 11.3.2 剖析IoGetDeviceObjectPointer 317 11.4 小结 318 第12章 分层驱动程序 319 本章主要介绍了分层驱动的概念。分层驱动可以将功能复杂的驱动程序分解为多个功能简单的驱动程序。多个分层的驱动程序形成一个设备堆栈,IRP请求首先发送到设备堆栈的顶层,然后依次穿越每层的设备堆栈,最终完成IRP请求。 12.1 分层驱动程序概念 319 12.1.1 分层驱动程序的概念 319 12.1.2 设备堆栈与挂载 321 12.1.3 I/O堆栈 322 12.1.4 向下转发IRP 323 12.1.5 挂载设备对象示例 324 12.1.6 转发IRP示例 325 12.1.7 分析 326 12.1.8 遍历设备栈 327 12.2 完成例程 330 12.2.1 完成例程概念 330 12.2.2 传播Pending位 332 12.2.3 完成例程返回STATUS_SUCCESS 333 12.2.4 完成例程返回STATUS_MORE_PROCESSING_REQUIRED 334 12.3 将IRP分解成多个IRP 336 12.3.1 原理 336 12.3.2 准备底层驱动 337 12.3.3 读派遣函数 338 12.3.4 完成例程 341 12.3.5 分析 342 12.4 WDM驱动程序架构 344 12.4.1 WDM与分层驱动程序 344 12.4.2 WDM的加载方式 345 12.4.3 功能设备对象 346 12.4.4 物理设备对象 346 12.4.5 物理设备对象与即插即用 348 12.5 小结 349 第13章 让设备实现即插即用 350 本章首先介绍即插即用的概念和驱动程序支持即插即用功能的必要性。另外,本章还介绍如何利用WDM驱动程序开发框架设计支持即插即用功能的驱动程序。 13.1 即插即用概念 350 13.1.1 历史原因 350 13.1.2 即插即用的目标 351 13.1.3 Windows中即插即用相关组件 351 13.1.4 遗留驱动程序 352 13.2 即插即用IRP 352 13.2.1 即插即用IRP的功能代码 353 13.2.2 处理即插即用IRP的派遣函数 353 13.3 通过设备接口寻找设备 356 13.3.1 设备接口 356 13.3.2 WDM驱动中设置接口 357 13.3.3 应用程序寻找接口 359 13.3.4 查看接口设备 360 13.4 启动和停止设备 361 13.4.1 为一个实际硬件安装HelloWDM 362 13.4.2 启动设备 364 13.4.3 转发并等待 366 13.4.4 获得设备相关资源 367 13.4.5 枚举设备资源 368 13.4.6 停止设备 372 13.5 即插即用的状态转换 373 13.5.1 状态转换图 373 13.5.2 IRP_MN_QUERY_STOP_DEVICE 374 13.5.3 IRP_MN_QUERY_REMOVE_DEVICE 374 13.6 其他即插即用IRP 375 13.6.1 IRP_MN_FILTER_RESOURCE_REQUIREMENTS 375 13.6.2 IRP_MN_QUERY_CAPABILITIES 376 13.7 小结 377 第14章 电源管理 378 本章主要介绍了如何在WDM驱动程序中进行电源处理。电源处理主要是处理好电源状态和设备状态。 14.1 WDM电源管理模型 378 14.1.1 概述 378 14.1.2 热插拔 378 14.1.3 电源状态 379 14.1.4 设备状态 379 14.1.5 状态转换 380 14.2 处理IRP_MJ_POWER 381 14.3 处理IRP_MN_QUERY_CAPABILITIES 381 14.3.1 DEVICE_CAPABILITIES 381 14.3.2 一个试验 382 14.4 小结 384 第3篇 实用篇 第15章 I/O端口操作 386 本章总结了多种I/O 端口操作的方法。这些方法本质上是一样的,都是将端口输入输出的汇编指令运行在内核模式中。 15.1 概述 386 15.1.1 从DOS说起 386 15.1.2 汇编实现 387 15.1.3 DDK实现 389 15.2 工具软件WinIO 390 15.2.1 WinIO简介 390 15.2.2 使用方法 390 15.3 端口操作实现方法一 391 15.3.1 驱动端程序 391 15.3.2 应用程序端程序 393 15.4 端口操作实现方法二 394 15.4.1 驱动端程序 394 15.4.2 应用程序端程序 396 15.5 端口操作实现方法三 397 15.5.1 驱动端程序 397 15.5.2 应用程序端程序 398 15.6 端口操作实现方法四 399 15.6.1 原理 399 15.6.2 驱动端程序 400 15.6.3 应用程序端程序 401 15.7 驱动PC喇叭 402 15.7.1 可编程定时器 402 15.7.2 PC喇叭 403 15.7.3 操作代码 404 15.8 操作并口设备 405 15.8.1 并口设备简介 405 15.8.2 并口寄存器 406 15.8.3 并口设备操作 408 15.9 小结 410 第16章 PCI设备驱动 411 本章主要介绍PCI设备的驱动开发。首先介绍了PCI总线协议。作为驱动程序员,开发PCI驱动程序首先要了解PCI配置空间。根据读取PCI配置空间,可以得到PCI设备的所有资源。另外,本章还总结了四种获取PCI配置空间的方法。 16.1 PCI总线协议 411 16.1.1 PCI总线简介 411 16.1.2 PCI配置空间简介 412 16.2 访问PCI配置空间方法一 414 16.2.1 两个重要寄存器 414 16.2.2 示例 415 16.3 访问PCI配置空间方法二 417 16.3.1 DDK函数读取配置空间 417 16.3.2 示例 418 16.4 访问PCI配置空间方法三 419 16.4.1 通过即插即用IRP获得PCI配置空间 420 16.4.2 示例 420 16.5 访问PCI配置空间方法四 421 16.5.1 创建IRP_MN_READ_CONFIG 422 16.5.2 示例 422 16.6 PCI设备驱动开发示例 423 16.6.1 开发步骤 424 16.6.2 中断操作 424 16.6.3 操作设备物理内存 425 16.6.4 示例 426 16.7 小结 429 第17章 USB设备驱动 430 本章首先介绍了USB总线协议的基本框架,其中包括USB总线的拓扑结构,USB通信的流程,还有USB的四种传输模式。另外,本章介绍了如何编写USB总线设备的驱动程序。 17.1 USB总线协议 430 17.1.1 USB设备简介 430 17.1.2 USB连接拓扑结构 431 17.1.3 USB通信的流程 433 17.1.4 USB四种传输模式 435 17.2 Windows下的USB驱动 438 17.2.1 观察USB设备的工具 438 17.2.2 USB设备请求 440 17.2.3 设备描述符 440 17.2.4 配置描述符 442 17.2.5 接口描述符 443 17.2.6 端点描述符 443 17.3 USB驱动开发实例 444 17.3.1 功能驱动与物理总线驱动 444 17.3.2 构造USB请求包 445 17.3.3 发送USB请求包 446 17.3.4 USB设备初始化 447 17.3.5 USB设备的插拔 447 17.3.6 USB设备的读写 448 17.4 小结 450 第18章 SDIO设备驱动 451 本章首先介绍了SDIO协议,讲述了SD内存卡和SDIO卡的兼容问题。然后介绍了 SDIO协议中的发送命令、回应命令、传送数据等相关协议。随后,本章又介绍了Windows中,DDK提供的对SDIO卡设备的支持。然后介绍了如何利用总线驱动,使SDIO设备初始化,接收中断,发送和接收数据等操作。 18.1 SDIO协议 451 18.1.1 SD内存卡概念 451 18.1.2 SDIO卡概念 452 18.1.3 SDIO总线 452 18.1.4 SDIO令牌 453 18.1.5 SDIO令牌格式 455 18.1.6 SDIO的寄存器 456 18.1.7 CMD52命令 458 18.1.8 CMD53命令 459 18.2 SDIO卡驱动开发框架 459 18.2.1 SDIO Host Controller驱动 459 18.2.2 SDIO卡的初始化 460 18.2.3 中断回调函数 461 18.2.4 获得和设置属性 462 18.2.5 CMD52 464 18.2.6 CMD53 465 18.3 SDIO开发实例 467 18.4 小结 467 第19章 虚拟串口设备驱动 469 本章介绍了串口开发的框架模型,在串口的AddDevice例程中需要暴露出一个串口的符号连接,另外在相应的注册表中需要进行设置。在串口与应用程序的通信中,主要是一组DDK定义的IO控制码,这些IO控制码负责由应用程序向驱动发出请求。 19.1 串口简介 469 19.2 DDK串口开发框架 470 19.2.1 串口驱动的入口函数 470 19.2.2 应用程序与串口驱动的通信 473 19.2.3 写的实现 475 19.2.4 读的实现 477 19.3 小结 478 第20章 摄像头设备驱动程序 479 本章主要介绍了微软提供的摄像头驱动框架。在该框架中,微软提供了类驱动和小驱动的概念。对于驱动程序员的任务就是编写小驱动程序。 20.1 WDM摄像头驱动框架 479 20.1.1 类驱动与小驱动 479 20.1.2 摄像头的类驱动与小驱动 480 20.1.3 编写小驱动程序 480 20.1.4 小驱动的流控制 481 20.2 虚拟摄像头开发实例 482 20.2.1 编译和安装 482 20.2.2 虚拟摄像头入口函数 484 20.2.3 对STREAM_REQUEST_BLOCK的处理函数 485 20.2.4 打开视频流 487 20.2.5 对视频流的读取 488 20.3 小结 489 第4篇 提高篇 第21章 再论IRP 492 本章将相关IRP的操作做了进一步的总结。首先是转发IRP,归纳了几种不同的方式。其次总结了创建IRP的几种不同方法。创建IRP总的来说分为创建同步IRP和创建异步 IRP。对于创建同步IRP,操作比较简单,I/O管理器会负责回收IRP的相关内存,但是使用不够灵活。对于创建异步IRP,操作比较复杂,程序员需要自己负责对IRP及相关内存回收,但使用十分灵活。 21.1 转发IRP 492 21.1.1 直接转发 492 21.1.2 转发并且等待 492 21.1.3 转发并且设置完成例程 494 21.1.4 暂时挂起当前IRP 495 21.1.5 不转发IRP 496 21.2 创建IRP 496 21.2.1 IoBuildDeviceIoControlRequest 497 21.2.2 创建有超时的IOCTL IRP 498 21.2.3 用IoBuildSynchronousFsdRequest创建IRP 499 21.2.4 关于IoBuildAsynchronousFsdRequest 501 21.2.5 关于IoAllocateIrp 502 21.3 小结 505 第22章 过滤驱动程序 506 本章主要介绍WDM和NT式过滤驱动程序开发。过滤驱动程序开发十分灵活,可以修改已有驱动程序的功能,也可以对数据进行过滤加密。另外,利用过滤驱动程序还能编写出很多具有相当功能强大的程序来。 22.1 文件过滤驱动程序 506 22.1.1 过滤驱动程序概念 506 22.1.2 过滤驱动程序的入口函数 506 22.1.3 U盘过滤驱动程序 509 22.1.4 过滤驱动程序加载方法一 510 22.1.5 过滤驱动程序加载方法二 511 22.1.6 过滤驱动程序的AddDevice例程 512 22.1.7 磁盘命令过滤 513 22.2 NT式过滤驱动程序 516 22.2.1 NT式过滤驱动程序 516 22.2.2 NT过滤驱动的入口函数 517 22.2.3 挂载过滤驱动 517 22.2.4 过滤键盘读操作 518 22.3 小结 520 第23章 高级调试技巧 521 本章将介绍一些Windows开发驱动的高级调试技巧。有一些高级驱动程序调试技巧,可以帮助程序员找出驱动程序中的Bug。另外,利用一些第三方工具软件,也可以帮助程序员找到驱动程序中的漏洞,从而提高开发效率。 23.1 一般性调试技巧 521 23.1.1 打印调试信息 521 23.1.2 存储dump信息 521 23.1.3 使用WinDbg调试工具 522 23.2 高级内核调试技巧 524 23.2.1 安装VMWare 525 23.2.2 在虚拟机上加载驱动程序 526 23.2.3 VMWare和WinDbg联合调试驱动程序 527 23.3 用IRPTrace调试驱动程序 528 23.4 小结 530

2010-08-23

VisualSVNKenKeyGen 1.7.3

VisualSVN 1.7.3 破解版 在vs2005下成功

2010-08-03

MDI多窗体学员信息管理系统源码

MDI多窗体学员信息管理系统源代码 用C++编写 ADO连接ACCESS数据库

2010-07-15

MDI多文档tag bar实现,包括最小化程序到任务栏并有图标闪烁功能(vc源码)

MDI多文档tag bar实现,包括最小化程序到任务栏并有图标闪烁功能(vc源码)

2010-07-15

工资管理系统VC源码

工资管理系统VC源码,一套很好的代码!<br><br>可以自己学习分析

2010-07-15

webkit研究报告2.pdf

一.Webkit介绍.. 3 二.Webkit编译详解.. 5 1.依赖库及介绍.. 5 2.X11+Gtk+WebKit交叉编译详解.. 7 3.编译出错Q&A:.. 12 三.WebKit分析.. 14 1.体系结构.. 14 2.解析流程.. 16 3.浏览器系统结构.. 17 四.各种浏览器比较分析.. 18 1.网页浏览器列表.. 18 2.浏览参数性能比较.. 20 3.浏览器使用率分析.. 25 4.WebKit的SWOT分析.. 26 五.浏览器的未来.. 26 1.微软的梦魇.. 27 2.云端技术的发展.. 28 3.浏览器的未来

2010-07-14

《疯狂坦克III》游戏设计方案

一、游戏世界设定 二、游戏特色单元 1、全新出击:游戏兵种单元 2、制造焦点:游戏行动规则 3、智力竞逐:游戏多人模式 4、变化无限:游戏互动道具 5、伴我成长:积分与荣誉等级 6、战友同盟:角色扮演团队机制 7、扩展无限:开放式游戏关卡 8、进阶之路:平衡与进阶技巧 9、自由空间:游戏3D环境 三、产品用户定位 四、游戏设定简要 1、角色与兵种设定 (1)玩家角色设定 (2)兵种单元设定 (3)兵种单元特性分析 (4)兵种单元属性关系图 2、地图与关卡设定 (1)地图空间特性 (2)地图元素设定 (3)关卡编辑设定 (4)关卡设定范例 (5)游戏地图列表 (6)地图元素列表 3、武器与道具设定 (1)兵种武器设定 (2)游戏道具设定 (3)游戏道具列表(A类) (4)游戏道具列表(B类) (5)视觉效果设定 4、游戏规则设定 (1)游戏行动规则 (2)游戏战斗规则 (3)游戏网络规则 (4)界面与键鼠操作 (5)游戏系统流程图 5、游戏环境设定 (1)网络与图形技术 (2)客户端硬件环境

2010-07-14

Windows CE API 手册 v2.0

《Windows CE API手册》是Blitz Force团队继 Xarm和ROS开发系统之后之后又一重要作品。本手册收录并翻译了 MSDN Library for Visual Studio 2008 中超过2000 个API函数和宏的资料信息。分为:系统函数、COM函数、驱动函数、网络通信4个大类,有以下特点: 01. 资料权威。本手册中收录的绝大多数函数和宏都取自微软MSDN,权威性比较有保证。部分从DLL中找到的API在MSDN中尚未介绍。我们收录这部分MSDN未介绍的API主要是认为这些API似乎比较重要,希望有熟悉这部分API使用的高手能够多多指教。 02. 分类详细。本手册根据API函数的功能进行了详细分类。通过分类 方便读者查找和扫描学习API,提高学习效率。 03. 提供编程示例和开发经验。本手册取自Xarm开发系统,我们已经用Xarm系统试验了1000个左右的函数,在试验中获得的经验教训都保存在本手册中。用户使用本手册除了可以查询函数的使用方法,还可以参考我们提供的心得体会加深对API的理解。查看Xarm编写的函数示例可以到我们的联系站点下载Xarm 1.0。 04. 不断更新。本手册1.0版在2008年4月底完成后,发给Blitz Force队员做内部测试并收到很多反馈意见,本次发布的是2.0版。我们还会继续努力发布新的版本,根据新系统增加新函数,不断完善旧函数说明,提供更多示例。希望使用本手册的朋友如果发现手册中有错误或者有好的改进意见给我们发邮件或者留言。《作者简介》中有详细的联系方式。

2010-06-22

Visual Assist X 10.5.1738.0 官方最新版

Visual Assist X 10.5.1738.0 官方最新版

2010-06-17

Symbian入门与环境配置.

symbian 的入门资料,很好的, 适合刚刚Symbian起步的用户,呵呵

2010-06-03

ibatis-2.3.0.677.zip

ibatis-2.3.0.677 iBATIS是当前公认的最简单的持久层框架之一。简单是iBATIS团队设计目标的核心,其重要性几乎要超过其它任何方面。它的简单是通过它构建的基础来达到的:ADO.NET和SQL。iBATIS对于.NET程序员来说是简单的,因为它使用起来像ADO.NET,只不过代码少了许多。几乎所有您对ADO.NET的了解都适用于iBATIS,我们可以把iBATIS视作以XML格式描述的ADO.NET代码。前面说过,iBATIS包含很多ADO.NET所不具备的架构上的优点,我们会在后面讨论。iBATIS对于数据库管理员和SQL开发人员来说也是简单的。几乎任何拥有SQL编程经验的开发人员都很容易理解iBATIS的配置文件。

2010-05-25

PMBOK(第4版).pdf

这套项目管理知识体系(PMBOK)指南是项目管理学会(PMI)推荐的一套准则与最佳实践指导教材。重点内容是获得广泛认可的项目管理认证:项目管理专业人员资格认证。 第一部分:向读者提供了透彻了解PMBOK的指导内容,还包括了PMP(项目管理专业人员资格认证)与CAPM(认证协理工程项目管理)认证资格考试的完整备考内容。 本课程对整个项目管理知识体系指南进行了高层次的概述,将为后续的课程打下良好的基础。读者将了解到项目生命周期与项目管理阶段相关内容。 工作文件包含在内。 第二部分:向读者提供了透彻了解PMBOK的指导内容,还包括了PMP(项目管理专业人员资格认证)与CAPM(认证协理工程项目管理)认证资格考试的完整备考内容。 本课程对PMBOK指南的前三部分的知识内容进行了详细的阐述:项目集成,项目范围,项目时间。帮助读者对这部分知识领域透彻了解,并对它们的协同工作进行了高层次的探讨研究。 工作文件包含在内。 第三部分:本课程对PMBOK指南的第四部分的知识内容进行了详细的阐述:工程造价,工程质量,项目人力资源。帮助读者对这部分知识领域透彻了解,并对它们的协同工作进行了高层次的探讨研究。

2010-05-18

一个完整的餐饮管理程序的源代码

这是个一个完整的餐饮管理程序的源代码,学习VC++的入门。这个程序,是基于对话框,包括了一些基本控件(tree、listctrl、page等)的使用,数据库应用,打印的程序。很适合初学者。初始用户和密码:Admin,1234。另外,在&ldquo;前台销售&rdquo;窗口的ListCtrl中,有个Button,要在第一个空白行的&ldquo;名称&rdquo;列的最右边点击才会显示出来。非常感谢vckbase,我从这里学到了很多有用的知识和经验。我很愿意和大家交流学习。

2010-05-13

LoadRunner9.0破解

LoadRunner9.0破解 打开Loadrunner,发现以下几个dll可能和注册有关,mlr5lprg.dll、licensebundles.dll、lm50.dll、lm70.dll。 最后确认mlr5lprg.dll、lm70.dll是关键dll。 破解方法类似与LR8.1 a、用LR8.0中的mlr5lprg.dll、lm70.dll覆盖LR9.0安装目录下“bin”文件夹中的对应文件; b、然后使用老的注册码就可以使用了; c、golba-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGI web-10000: AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB

2010-05-11

MFC深入浅出.chm

MFC深入浅出 很好的学习windows编程资料。。。

2010-05-09

Windows Mobile 应用程序开发

WindowsMobile应用程序开发.ppt 很好的培训材料

2010-05-06

osworkflow-chinese-manual.pdf

osworkflow-chinese-manual.pdf

2010-04-13

Spring-Reference_zh_CN.chm

Spring-Reference_zh_CN.chm

2010-04-13

Spring Security 2.0.x中文参考文档.pdf

Spring Security 2.0.x中文参考文档.pdf

2010-04-13

spring框架,技术详解及使用指导.pdf

spring框架,技术详解及使用指导.pdf

2010-04-13

Spring专业开发指南(中文).pdf

Spring专业开发指南(中文).pdf

2010-04-13

iBATIS-SqlMaps-2-Tutorial_cn.pdf

iBATIS-SqlMaps-2-Tutorial_cn.pdf

2010-04-13

iBATIS-SqlMaps-2_cn.pdf

iBATIS-SqlMaps-2_cn.pdf 中文手册

2010-04-13

EXT 中文手册.pdf

EXT 中文手册.pdf Extjs 开发入门教程,工具手册

2010-04-13

DIV+CSS完美布局

DIV+CSS完美布局.pdf web开发经典教程,网站开发不可或缺的工具书!

2010-04-13

基于J2EE架构的企业应用开发新思维

本文先从Web开发的现状困境开始,分析造成目前困境的原因,然后通过回顾B/S技术架构的演化,以及对比C/S和B/S的开发模式的差异,提出一套新的开发解决思路,最后介绍WebDW系列产品的设计目的和简单功能,再以此为基础来进行扩展讨论。

2010-04-13

ajax实战(中文).pdf

ajax实战(中文).pdf Ajax经典教程

2010-04-13

Flex 3 RIA开发详解与精深实践

Flex 3 RIA开发详解与精深实践.zip

2010-04-13

JavaFx script 教程

JavaFx 教程 JavaFx_script.pdf JavaFx script 教程 适合初学者入门使用

2010-04-13

Windows Mobile 实例开发

Windows+Mobile实例开发.pdf

2010-04-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除