Eclectic Engineering, Inc.
Text and Listing Errors
| Page xlvi (Preface) Footnote 4 | Change "since I was deeply interested in
debugging works" to "since I was deeply interested in how
debugging works"
|
fixed in second printing |
| Page xlvii (Preface) | In the Acknowledgments Brian Catlin's name is misspelled
and Tom Carr should be added
|
fixed in second printing |
| Page 143 | IRP_MJ_CANCEL does not exist. The Cancel routine is
not called via an IRP major function. A Driver may provide a cancel
entry point to the I/O system. Change "Devices that do not support IRP_MJ_CANCEL" to "Devices which do not provide a cancel entry point" Change "incoming IRP_MJ_CANCEL IRP" to "IRP parameter passed to the cancel entry point" |
|
| Page 177 | In Table 9.3 the Key AutoAdminLogon is misspelled as AutoAdminLogin. AutoAdminLogon is the correct key name. | |
| Page 418 | Change config.u.type0.BusAddresses[1]
to config.u.type0.BaseAddresses[1]
|
|
| Page 419 | Jim Boemler has a new web site. His pcicode.h file is now available from http://www.yourvote.com/pci | |
| Page 437 Listing 22.2 | Change switch(Irp->Type) to PIO_STACK_LOCATION irpSp = IoGetCurrentIrpStackLocation(Irp); switch (irpSp->MajorFunction) Also note that myDriverStartRead() myDriverStartWrite() and myDriverStartDeviceControl() routines must set IoStatus, call IoCompleteRequest() and IoStartNextPacket()
|
fixed in second printing |
| Page 480 | In the last two lines. change "The Filter
Driver can create Associated IRPs by calling IoMakeAssociatedIrp to
create the new IRP." to "The highest-level
driver can create Associated IRPs by calling IoMakeAssociatedIrp to
create the new IRP."
"Filter Driver" is changed to "highest-level driver".
|
fixed in second printing |
| Page 492 Table 24.1 | The value of LOW_PRIORITY the idle thread priority is shown
as 0 The correct value is 1. The Zero page thread is priority
0 and should have been included in this table.
|
|
| Page 631 | Change switch(Irp->Type) to PIO_STACK_LOCATION irpSp = IoGetCurrentIrpStackLocation(Irp); switch (irpSp->MajorFunction) |
|
| Page 634 | Change IoStartNextPacket(deviceObject); to IoStartNextPacket(deviceObject, FALSE); | fixed in second printing |
| Page 626 Listing 27.7 and Page 628 Listing 27.8 |
The delay parameter passed to KeDelayExecution is
wrong. The parameter should be negative for an absolute delay.
|
|
Index Errors
| The index entry for USBDI should reference pages 771 and 750 as well as754. | ||
| The index entry for IOCTL_INTERNAL_USB_SUBMIT_URB is misspelled as IOCTL_INTERNAL_USB_SUBMIT_USB for 2 entries | ||
| Page 32 | Index entry for Johnson Hart missing | fixed in second printing |