|
The Windows 2000 Device Driver Book(c) A Guide for Programmers Authors: Baker A., Lozano J. Published year: 2000 Pages: 64-66/156 |
[oR]
Testing Driver Dispatch RoutinesEven though a driver may be far from complete when only the DriverEntry, Unload, and Dispatch routines are present, significant code paths can be tested at this point. In particular, all of the following can be verified with a simple Win32 console program:
While the successful completion of these tests is hardly earth-shattering, it does form a tried-and-true recipe for driver authoring: Build a driver framework that is proven before adding hardware interaction. Testing ProcedureThe following procedure checks all the code paths through a driver's Dispatch routines:
Sample Test ProgramThis is an example of a Win32 console test program that can be used to verify code paths through a driver's Dispatch routines.
#include <windows.h>
#include <stdio.h>
void main() {
HANDLE hDevice;
BOOL status;
hDevice = CreateFile( "\.\LBK1" ... );
:
status = ReadFile( hDevice, ... );
:
status = WriteFile( hDevice, ... );
:
status = DeviceIoControl( hDevice, ... );
:
status = CloseHandle( hDevice );
}
|
[oR]
SummaryDispatch routines form the basic interface between a requestor and a driver. This chapter presented the framework for these functions and discussed the details for accessing the user 's buffers and other parameters. Read, Write, and DeviceIoControl requests can now be presented to the driver. The next chapter begins the interface with the real device. The path from starting the device to register data transfer to interrupt handling is discussed.
|
[oR]
Chapter 8. Interrupt-Driven I/OCHAPTER OBJECTIVES
Some devices transfer data through registers, requiring continual CPU interaction. Such devices usually move small amounts of data at relatively infrequent intervals. For example, the mouse and keyboard transfer just a few bytes sporadically. Such devices remain idle for minutes (or hours) at a time and so are given the ability to interrupt the processor whenever data is available. This chapter explains how to write the data transfer routines for drivers of this kind of hardware.
|
|
The Windows 2000 Device Driver Book(c) A Guide for Programmers Authors: Baker A., Lozano J. Published year: 2000 Pages: 64-66/156 |