A brief review of key concepts from the Windows NT internals class. This section also points out driver-related highlights of the Win32 APIs.
Describes the required and optional kernel objects and data structures used by device drivers, their interrelationships, and their relationship to the I/O hardware. Introduces the code to create and initialize the various objects. Provides guidelines for designing driver-defined data structures for various types and configurations of I/O hardware.
Presents details of the routines of a "standard" device driver, and how each routine is involved in processing an application's I/O request.
Provides further information about how a driver services interrupts from its device controllers, and on how driver routines synchronize with each other and with various parts of the NT executive. Synchronization techniques for single-processor systems are covered first, and then the additional requirements of multiprocessor (SMP) systems are added to the model.
Adds details on the methods provided by Windows NT for accessing user-space buffers, both for programmed I/O and DMA device controllers. The various types of DMA support hardware are discussed, including system vs. busmaster DMA, the presence or absence of scatter/gather hardware, and etc., and the ramifications of these on the design and coding of the driver's routines.
Describes how to configure Windows NT to allow a new driver to be loaded into the system, in both debug and production environments. The driver routines that are executed at load time are reviewed at this time, in the context of the new information about the system mechanisms that control the load.
Describes how to install and use the Microsoft-supplied tools for building drivers, and how to use the WinDbg interface to the NT kernel-mode debugger. Also describes the interpretation of the bugcheck display (blue screen) and the use of crash dump files with the debugger.
Builds on the previous material by providing information on various techniques that may be used in more complex drivers than the ones addressed so far. These techniques include:
OTHER SEMINARS BY David Solomon Expert Seminars