Chapter 1: Windows Internals Overview
         Processes
         Virtual Memory
         Page States
         System Memory
         Threads
         Thread Stacks
         System Services (a.k.a. System Calls)
         General System Architecture
         Handles and Objects
         Object Names
         Accessing Existing Objects
         Chapter 2: Getting Started with Kernel Development
         Installing the Tools
         Creating a Driver Project
         The DriverEntry and Unload Routines
         Deploying the Driver
         Simple Tracing
         Exercises
         Summary
         Chapter 3: Kernel Programming Basics
         General Kernel Programming Guidelines
         Unhandled Exceptions
         Termination
         Function Return Values
         IRQL
         C++ Usage
         Testing and Debugging
         Debug vs. Release Builds
         The Kernel API
         Functions and Error Codes
         Strings
         Dynamic Memory Allocation
         Lists
         The Driver Object
         Device Objects
         Summary
         Chapter 4: Driver from Start to Finish
         Introduction
         Driver Initialization
         Passing Information to the Driver
         Client / Driver Communication Protocol
         Creating the Device Object
         Client Code
         The Create and Close Dispatch Routines
         The DeviceIoControl Dispatch Routine
         Installing and Testing
         Summary
         Chapter 5: Debugging
         Debugging Tools for Windows
         Introduction to WinDbg
         Tutorial: User mode debugging basics
         Kernel Debugging
         Local Kernel Debugging
         Local kernel Debugging Tutorial
         Full Kernel Debugging
         Configuring the Target
         Configuring the Host
         Kernel Driver Debugging Tutorial
         Summary
         Chapter 6: Kernel Mechanisms
         Interrupt Request Level
         Raising and Lowering IRQL
         Thread Priorities vs. IRQLs
         Deferred Procedure Calls
         Using DPC with a Timer
         Asynchronous Procedure Calls
         Critical Regions and Guarded Regions
         Structured Exception Handling
         Using __try/__except
         Using __try/__finally
         Using C++ RAII Instead of __try / __finally
         System Crash
         Crash Dump Information
         Analyzing a Dump File
         System Hang
         Thread Synchronization
         Interlocked Operations
         Dispatcher Objects
         Mutex
         Fast Mutex
         Semaphore
         Event
         Executive Resource
         High IRQL Synchronization
         The Spin Lock
         Work Items
         Summary
         Chapter 7: The I/O Request Packet
         Introduction to IRPs
         Device Nodes
         IRP Flow
         IRP and I/O Stack Location
         Viewing IRP Information
         Dispatch Routines
         Completing a Request
         Accessing User Buffers
         Buffered I/O
         Direct I/O
         User Buffers for IRP_MJ_DEVICE_CONTROL
         Putting it All Together: The Zero Driver
         Using a Precompiled Header
         The DriverEntry Routine
         The Read Dispatch Routine
         The Write Dispatch Routine
         Test Application
         Summary
         Chapter 8: Process and Thread Notifications
         Process Notifications
         Implementing Process Notifications
         The DriverEntry Routine
         Handling Process Exit Notifications
         Handling Process Create Notifications
         Providing Data to User Mode
         The User Mode Client
         Thread Notifications
         Image Load Notifications
         Exercises
         Summary
         Chapter 9: Object and Registry Notifications
         Object Notifications
         Pre-Operation Callback
         Post-Operation Callback
         The Process Protector Driver
         Object Notification Registration
         Managing Protected Processes
         The Pre-Callback
         The Client Application
         Registry Notifications
         Handling Pre-Notifications
         Handling Post-Operations
         Performance Considerations
         Implementing Registry Notifications
         Handling Registry Callback
         Modified Client Code
         Exercises
         Summary
         Chapter 10: Introduction to File System Mini-Filters
         Introduction
         Loading and Unloading
         Initialization
         Operations Callback Registration
         The Altitude
         Installation
         INF Files
         Installing the Driver
         Processing I/O Operations
         Pre Operation Callbacks
         Post Operation Callbacks
         The Delete Protector Driver
         Handling Pre-Create
         Handling Pre-Set Information
         Some Refactoring
         Generalizing the Driver
         Testing the Modified Driver
         File Names
         File Name Parts
         RAII FLT_FILE_NAME_INFORMATION wrapper
         The Alternate Delete Protector Driver
         Handling Pre-Create and Pre-Set Information
         Testing the Driver
         Contexts
         Managing Contexts
         Initiating I/O Requests
         The File Backup Driver
         The Post Create Callback
         The Pre-Write Callback
         The Post-Cleanup Callback
         Testing the Driver
         Restoring Backups
         User Mode Communication
         Creating the Communication Port
         User Mode Connection
         Sending and Receiving Messages
         Enhanced File Backup Driver
         The User Mode Client
         Debugging
         Exercises
         Summary
         Chapter 11: Miscellaneous Topics
         Driver Signing
         Driver Verifier
         Example Driver Verifier Sessions
         Using the Native API
         Filter Drivers
         Filter Driver Implementation
         Attaching Filters
         Attaching Filters at Arbitrary Time
         Filter Cleanup
         More on Hardware-Based Filter Drivers
         Device Monitor
         Adding a Device to Filter
         Removing a Filter Device
         Initialization and Unload
         Handling Requests
         Testing the Driver
         Results of Requests
         Driver Hooking
         Kernel Libraries
         Summary
      · · · · · ·     (
收起)