Flylib.com

Books Software

 
 
 

The Windows 2000 Device Driver Book: A Guide for Programmers (2nd Edition) - page 4

     NEXT >
[oR]

Foreword

Drivers are the most fundamental and technically difficult part of operating system development. As a reader of this book, you are probably well aware of the complexities involved. Even for the most seasoned software engineer the task can be daunting. Writing device drivers under Windows 2000 is a big challenge to learn. The most comprehensive, authoritative guide to Windows NT driver development, The Windows NT Device Driver Book by Art Baker is now a classic. I can not think of anyone better qualified to write the second edition of Art's outstanding book than Jerry Lozano. Jerry combines the qualities of strong technologist, excellent writer, and gifted educator. These qualities have translated into book form very well. Reading this book I felt I was taking one of Jerry's classes.

There are two kinds of books. Some books provide reference information that very much read like an encyclopedia. Such books are picked up occasionally to answer a specific question. Other books are tutorial in nature. They are designed to be read from front to back in order to transfer the knowledge and skill necessary to perform a task.

The Windows 2000 Device Driver Book, like its predecessor, falls clearly into the latter category. It is intended to be used as an instructional guide for device driver authors. Unlike other books on the subject, this book does not attempt to reproduce the DDK. The DDK stands as the definitive reference on the Windows 2000 device driver technology. Instead, The Windows 2000 Device Driver Book provides the guiding information needed to successfully master W2K driver development. This book gives developers the knowledge to design, write, and debug Windows 2000 devices, and is based on a course Jerry created and teaches for UCI. Based on feedback from the course, Jerry found that one of the biggest problems device driver and kernel-mode code developers face is the lack of clear, concise technical information on driver models, kernel mode programming, and hardware interfaces. In this book Jerry has succeeded in solving this problem with detailed examples and informative coverage in all areas, and presenting it with exceptional clarity.

As the book went to press, it was clear that another chapter was highly desirable. The chapter concerns USB and IEEE 1394 driver specifics. The revision author has generously agreed to include this chapter on the book's companion web site: http://www.W2KDriverBook.com. Readers that need this information should visit this informative site.

Andrew Scoppa

President

UCI Software Technical Training

     NEXT >
< BACK    NEXT >
[oR]

Preface

This book explains how to write, install, and debug device drivers for Windows 2000. It is intended to be a companion to the Microsoft DDK documentation and software.

Windows 2000 represents a major improvement to previous versions of Windows NT. Device drivers for Windows 2000 may be designed for the new Windows Driver Model (WDM) architecture. If so, the driver will be source compatible with Windows 98. This book covers the new WDM specification.

This book will also prove useful to those studying the internals of Windows 2000, particularly the I/O subsystem and related components .

< BACK    NEXT >
< BACK    NEXT >
[oR]

What You Should Already Know

All instruction assumes a base knowledge level. First, the reader should be familiar with Windows 2000 administration -security and setup, for example. Since experimentation with kernel-mode code can (and will) cause system problems, the reader should be prepared and able to restore a chaotic OS.

Second, the reader should be competent in the C programming language and somewhat familiar with C++. Only a little C++ is used in this book, and then only for the purpose of simplifying tedious code.

Third, experience with Win32 user-mode programming is useful. Knowing how user -mode code drives I/O devices is useful in designing and testing device driver code. The test code for the examples in this book rely on the console subsystem model for Windows. To review this topic, the reader is referred to the Win32 Programmers Reference, particularly the chapters on I/O primitives (CreateFile, ReadFile, WriteFile, and DeviceIoControl). The bibliography lists other references for this topic.

Finally, while no specific prior knowledge of hardware or device driver software design is assumed, it would be useful if the reader had experience with some aspect of low-level device interfacing. For example, knowledge of writing device drivers for a Unix system will prove quite useful when reading this book.

< BACK    NEXT >