osr.com
      Home
      Consulting
      Development
      Toolkits
      Seminars
      Publications
      Resources
      About OSR
      Contact OSR
      OSR Online


This errata page lists errors outstanding in OSR's reprint of 1/06.

If you have any error reports or technical questions, you can send them to press@osr.com.

This page was updated on 6 February 2006.

Language Change/Minor Formatting Error
Important Language Change (None)
Minor Technical Error
Serious Technical Error
Reader Request for Clarification (None)

Language Change/Minor Formatting Error
----------------------------------------
P. 46 In the eighth paragraph descibing Buffer, the paragraph reads:

"The is a pointer to the actual wide-character..."

It should read:

"This is a pointer to the actual wide-character..."

P.162 Figure 4-5: the top left box which reads

                 I/O Manager
                 or other kernel
                 made driver

should read

                 I/O Manager
                 or other kernel-
                 mode driver

Important Language Change
-------------------------
None.

Minor Technical Error
-----------------------
P.171 In the second full bulleted paragraph, the fourth sentence
reads:

                 "Use IoInitializeIrp(), in conjunction with IoAllocateIrp(),
                 to initialize the common fields in the IRP header."

On page 638, there is a warning that you should NOT do this. In
addition, the Windows DDK is wrong (it says to do what page 171
says) and there is a knowledge base article on the subject at MS
saying that the DDK is wrong.

So, page 638 is correct and page 171 is incorrect.

P.672 The function prototype for NTCreateFile() is missing.
All the parameters are then described (but not their data types).

It should read:

              NTSTATUS
              NtCreateFile(
                            OUT PHANDLE FileHandle,
                            IN ACCESS_MASK DesiredAccess,
                            IN POBJECT_ATTRIBUTES ObjectAttributes,
                            OUT PIO_STATUS_BLOCK IoStatusBlock,
                            IN PLARGE_INTEGER AllocationSize, // OPTIONAL
                            IN ULONG FileAttributes,
                            IN ULONG ShareAccess,
                            IN ULONG CreateDisposition,
                            IN ULONG CreateOptions,
                            IN PVOID EaBuffer, // OPTIONAL
                            IN ULONG EaLength)


Serious Technical Error
--------------------------
P.410 and supplied source The 27th-29th lines of code now read:

RequestedDisposition =
           ((PtrIoStackLocation->Parameters.Create.Options >> 24)
                  && 0xFF);

Should be:

RequestedDisposition =
           ((PtrIoStackLocation->Parameters.Create.Options >> 24)
                  & 0xFF);

There is an extra "&" in the last line. The same error exists in the
supplied source code.

P.704 7th paragraph (1st paragraph of description of EaIndex paramter for NtQueryEaFile);
The description for the EaIndex parameter of NtQUeryEaFile says that it is a zero-
based index. In reality, it is a one-based index.


Reader Request for Clarification
--------------------------------
None

 

   

 

Top of Page
Home | Consulting | Development | Toolkits | Seminars | Publications | Resources | About OSR | Contact Us

©2008 OSR Open Systems Resources, Inc, ALL RIGHTS RESERVED