First Edition (October 1997)
Trademarks and Acknowledgements
About This Book
Chapter 1. Kernel Environment
Understanding Kernel Extension Binding
Understanding Execution Environments
Understanding Kernel Threads
Using Kernel Processes
Accessing User-Mode Data While in Kernel Mode
Understanding Locking
Understanding Exception Handling
64-bit Kernel Extension Development
Chapter 2. System Calls
Understanding System Call Execution
System Calls Available to Kernel Extensions
Chapter 3. Virtual File Systems
Logical File System Overview
Virtual File System Overview
Understanding Data Structures and Header Files for Virtual File Systems
Configuring a Virtual File System
Chapter 4. Kernel Services
I/O Kernel Services
Block I/O Buffer Cache Kernel Services: Overview
Understanding Interrupts
Understanding DMA Transfers
Kernel Extension and Device Driver Management Kernel Services
Locking Kernel Services
File Descriptor Management Services
Logical File System Kernel Services
Memory Kernel Services
Understanding Virtual Memory Manager Interfaces
Message Queue Kernel Services
Network Kernel Services
Process and Exception Management Kernel Services
RAS Kernel Services
Security Kernel Services
Timer and Time-of-Day Kernel Services
Using Fine Granularity Timer Services and Structures
Using Multiprocessor-Safe Timer Services
Virtual File System (VFS) Kernel Services
Chapter 5. Asynchronous I/O Subsystem
Chapter 6. Device Configuration Subsystem
Device Configuration Database Overview
Basic Device Configuration Procedures Overview
Device Configuration Manager Overview
Device Classes, Subclasses, and Types Overview
Writing a Device Method
Understanding Device Methods Interfaces
Understanding Device States
Adding an Unsupported Device to the System
Understanding Device Dependencies and Child Devices
Accessing Device Attributes
Device Dependent Structure (DDS) Overview
List of Device Configuration Commands
List of Device Configuration Subroutines
Chapter 7. Communications I/O Subsystem
Communications Physical Device Handler Model Overview
Status Blocks for Communications Device Handlers Overview
MPQP Device Handler Interface Overview
Serial Optical Link Device Handler Overview
Configuring the Serial Optical Link Device Driver
Forum-Compliant ATM LAN Emulation Device Driver
Fiber Distributed Data Interface (FDDI) Device Driver
High-Performance (8fc8) Token-Ring Device Driver
High-Performance (8fa2) Token-Ring Device Driver
PCI Token-Ring High Performance (14101800) Device Driver
Ethernet High-Performance LAN Adapter, Integrated Ethernet, 10/100 Mbps Ethernet TX MCA, and PCI Ethernet Device Drivers
Chapter 8. Graphic Input Devices Subsystem
Chapter 9. Low Function Terminal Subsystem
Low Function Terminal Interface Functional Description
Components Affected by the Low Function Terminal Interface
Accented Characters
Chapter 10. Logical Volume Subsystem
Understanding the Logical Volume Device Driver
Understanding Logical Volumes and Bad Blocks
Changing the mwcc_entries Variable
Chapter 11. Printer Addition Management Subsystem
Adding a New Printer Type to Your System
Adding a Printer Definition
Adding a Printer Formatter to the Printer Backend
Understanding Embedded References in Printer Attribute Strings
Chapter 12. Small Computer System Interface Subsystem
SCSI Subsystem Overview
Understanding SCSI Asynchronous Event Handling
SCSI Error Recovery
A Typical Initiator-Mode SCSI Driver Transaction Sequence
Understanding SCSI Device Driver Internal Commands
Understanding the Execution of Initiator I/O Requests
SCSI Command Tag Queuing
Understanding the sc_buf Structure
Other SCSI Design Considerations
SCSI Target-Mode Overview
Required SCSI Adapter Device Driver ioctl Commands
Chapter 13. Integrated Device Electronics (IDE) Subsystem
IDE Error Recovery
A Typical IDE Driver Transaction Sequence
IDE Device Driver Internal Commands
Execution of I/O Requests
ataide_buf Structure
Other IDE Design Considerations
Required IDE Adapter Device Driver ioctl Commands
Chapter 14. Serial Direct Access Storage Device Subsystem
Chapter 15. Debugging Tools
System Dump
The crash Command
Kernel Debug Program
Kernel Debug Program Commands
Maps and Listings as Tools for the Kernel Debug Program
Using the Kernel Debug Program
Error Messages for the Kernel Debug Program
Error Logging
Debug and Performance Tracing
Memory Overlay Detection System (MODS)
Appendix A. Alphabetical List of Kernel Services