Join Books.org — it's free

Systems Analysis and Design - Programming
Windows 2000 Programming Black Book (Black Book (Coriolis Group Books Paperback)) by A. Williams β€” book cover

Windows 2000 Programming Black Book (Black Book (Coriolis Group Books Paperback))

by A. Williams
Write a review
Log in to track your reading progress.

Overview

Windows 2000 Systems Programming Black Book is a complete guide to advanced Windows 2000 features for programmers writing system-level utilities and applications. Windows veteran Al Williams explores a multitude of special features found in Windows 2000, including multithreading, synchronization, inter-process communications, and virtual memory management. Complete with real-world examples and a CD-ROM with source code and evaluation software, Windows 2000 Systems Programming Black Book will help developers make the most of the Windows 2000 operating system.

Reviews

There are no reviews yet. Log in to write one.

Editorials

Electronic Review of Computer Books

While there are now several "Windows 2000 Programming" titles on bookstore shelves, I picked up the Windows 2000 Systems Programming Black Book by Al Williams first because both the author and publisher have good reputations. I'd have to get another book, too, if I wanted to do "user programming" instead of "systems programming." Apparently, the distinction is that a user programming book covers the user interface as well, but Williams considers that "systems programming" mainly deals with threads, file I/O, IPC, memory management, security, the registry, and advanced Visual C++ topics such as ActiveX and ATL.

As a reference, this text has to compete with the online documentation that comes with the Windows SDK. For example, the following compares the two in discussing the CreateFile function. First from page 202 of Williams's book:

dwShareMode: Set of bit flags that specifies how the object can be shared. If dwShareMode is 0, the object cannot be shared. Subsequent open operations on the object will fail, until the handle is closed. If you want to share the file, use any combination of FILE_SHARE_DELETE, FILE_SHARE_READ, or FILE_SHARE_WRITE.

And now, the Windows NT SDK equivalent:

dwShareMode: Set of bit flags that specifies how the object can be shared. If dwShareMode is 0, the object cannot be shared. Subsequent open operations on the object will fail, until the handle is closed. To share the object, use a combination of one or more of the following values: FILE_SHARE_DELETE (Windows NT only) subsequent open operations on the object will succeed only if delete access is requested. FILE_SHARE _READ subsequent open operations on the object will succeed only if read access is requested. FILE_SHARE_WRITE subsequent open operations on the object will succeed only if write access is requested.

From examples like this, I conclude that Williams is adding very little in his description. On the other hand, Williams goes on to give a programming example -- the Windows document doesn't -- so if your preferred language is C rather than English, you could learn something new about CreateFile parameters.

In general, the examples are in Visual C++, with occasional ActiveX plus MFC use, and they are clear and solid. Of course, I could quibble about the assumptions. For example, one of the programs will not work unless strlen() returns a count in bytes (an unsafe assumption in this Unicode era). But quibbles aside, I'd rate the examples as one of the book's strengths.

Williams's writing is clear. Chapters begin with personal anecdotes -- a common feature in Coriolis books -- and proceed quickly to an in-depth discussion of the programming topic. Chapters end with a lengthy summary, and usually contain several examples. I do object to the book jacket's use of the words "complete reference," which isn't possible in a 600-page book. Thus, I noticed that the Winsock in-depth discussion said nothing about what happens if, say, the recv buffer is smaller than the message size. So, I'd be reckless to try a real Winsock project without reading another source. Williams is honest about this. "You'll have to look in the Winsock specification to find out more," he says. I think that a similar statement would apply to all of the topics he tackles.

I have above-average or average knowledge of C and Windows. So, if I gained something, then so should average people. Well, I did learn something: That you can share memory between processes using DLLs. Also, though my eyes tend to glaze-over when confronted with heaps of C example code, I appreciate the CD-ROM and will doubtless find a use for it sometime. As far as I can tell, the book says little about new features that are specific to Windows 2000 (I wish there were margin notes like "this will not work with Windows 95," as in other books). I searched in vain for coverage of AWE and other issues that are supposed to be important features of the new operating system.

So, all things considered, it's a good book to borrow from the library and go through for a refresher about generic Windows systems programming issues. As a reference, it cannot match or replace what's in your online documentation if you have a professional edition of Visual C++ or C++ Builder. You should shell out $49.99 if -- and only if -- you're building up a large collection.

Book Details

Published
October 1, 1998
Publisher
Coriolis Group,U.S.
Pages
615
Format
Paperback
ISBN
9781576102800

More by A. Williams

Similar books