Programming Server-Side Applications for Microsoft Windows 2000


Enterprise developers take an in-depth tour of Windows 2000 services — the powerful features and subsystems designed specifically to handle mission-critical data processing needs — and get expert guidance for building applications that exploit their capabilities. Covering the Service Control Manager, Registry, performance monitoring, event logging, security, asynchronous I/O, and other key topics — and featuring a CD-ROM packed with next-generation 64-bit code examples — this book provides timely and substantive ...

See more details below
Available through our Marketplace sellers.
Other sellers (Paperback)
  • All (12) from $1.99   
  • New (2) from $33.08   
  • Used (10) from $1.99   
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any coupons and promotions
Seller since 2015

Feedback rating:



New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

Brand New Item.

Ships from: Chatham, NJ

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Seller since 2015

Feedback rating:


Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Sort by
Sending request ...


Enterprise developers take an in-depth tour of Windows 2000 services — the powerful features and subsystems designed specifically to handle mission-critical data processing needs — and get expert guidance for building applications that exploit their capabilities. Covering the Service Control Manager, Registry, performance monitoring, event logging, security, asynchronous I/O, and other key topics — and featuring a CD-ROM packed with next-generation 64-bit code examples — this book provides timely and substantive instruction for creating a powerful new class of enterprise solutions.

Read More Show Less

Editorial Reviews

From Barnes & Noble
The Barnes & Noble Review
For developers building server-side web applications with Windows 2000, an in-depth understanding of services is critical. Hey, we're talking servers: You can't just reboot when you feel like it. You'd better write resource-efficient code that won't bog down the whole system and always tidies up after itself. Your code had better be easy to administer; hence, you need to understand Service Control Programs and Windows Management Instrumentation (WMI), among other topics. Need we mention that your code had better be secure? Wouldn't want to find your site tarred on the front page of The Wall Street Journal!

In this book, two of the world's most sophisticated Windows 2000 developers give you the soup-to-nuts guidance you need to write great server-side services for web and enterprise environments.

You already know Jeffrey Richter, author of the legendary Programming Applications for Microsoft Windows. If you're unfamiliar with coauthor Jason Clark, it's only because he's been too busy toiling on the Windows 2000 development team. Suffice to say: they both know their stuff.

You'll learn advanced techniques for improving performance and scalability, such as using the I/O completion port for interthread communication and device I/O. You'll learn how to build applications that log events, monitor their own performance, can be administered remotely, and more. The extensive security coverage includes a full chapter on using the Net API to create and manage trustee accounts programmatically -- essential for web apps that are restricted to specific individuals or communities.

The accompanying CD-ROM contains 15 original applications designed to help you master the fine art of building services. Highlights include: RegScan and RegNotify, which search the registry, enumerate keys and values, and receive registry notifications; SuperSCP, which shows how to programmatically add, delete, start, stop, and reconfigure services; and TimeServiceProvider, which shows how you can build in WMI administration features.

Already comfortable writing Windows C++ code? Headed for the server side? This book will carry you all the way. (Bill Camarda)

Bill Camarda is a consultant and writer with nearly 20 years' experience in helping technology companies deploy and market advanced software, computing, and networking products and services. His 15 books include Special Edition Using Word 2000 and Upgrading & Fixing Networks For Dummies®, Second Edition.

A guide for programmers who want to create custom services that make use of the scalability, security, and remote administration features in the Windows 2000 operating system. Discussion includes how to write resource-efficient code that cleans up after itself and doesn't bog down the system, and how to save CPU cycles by using the I/O completion port for interthread communication and device I/O. The CD-ROM contains source code for sample applications. Annotation c. Book News, Inc., Portland, OR (
Read More Show Less

Product Details

  • ISBN-13: 9780735607538
  • Publisher: Microsoft Press
  • Publication date: 4/22/2000
  • Series: Microsoft Programming Series
  • Pages: 400
  • Product dimensions: 7.56 (w) x 9.55 (h) x 2.07 (d)

Meet the Author

Jeffrey Richter is a cofounder of Wintellect ( training, debugging, and consulting firm dedicated to helping companies build better software faster. He is the author of the previous editions of this book, Windows via C/C++, and several other Windows®-related programming books. Jeffrey has been consulting with the Microsoft® .NET Framework team since October 1999.

Jason Clark, once a developer on the Microsoft Windows NT/Windows 2000 Server team, now spends his time providing training and consulting for Microsoft and Wintellect. Jason coauthored Programming Server-Side Applications for Microsoft Windows 2000, and he writes for various industry magazines, including MSDN Magazine. Jason may be contacted at

Read More Show Less

Read an Excerpt

Chapter 1: The Discipline Of Service Development

We all agree that good programming requires a great deal of talent. Implementing proper error checking, anticipating the resources available on a system, predicting all the potential inputs from various users-this is the work that makes programming an art form. Writing services requires total mastery of this art form. Neglecting to handle every nuance is not catastrophic for application software; failures usually affect a single user, not the entire enterprise. But server software is mission critical and therefore requires strict attention to all details. The disciplined developer of servers writes code to address these details. The following sections describe some of the disciplines that a server designer must pay strict attention to.

Fault Tolerance and Tidy Code

Today's software is so complex that anticipating every execution environment is impossible. By "environment" I mean the contents of your process's address space, the values of your function's parameters, and the effects of other processes running on the same system. Because of the complexity, services, which run continuously for months on end, must be fault tolerant. Most of us have had our share of college professors who adamantly expressed their views on how to perform proper error checking and recovery from within our functions. We developers know that writing error-tolerant code is what we should do, but frequently we view the required attention to detail as tedious and so omit it. We've become complacent, thinking that the operating system will "just take care of us." Many developers out there actually believe that memory is endless, and that leaking various resources is OK because they know that the operating system will clean up everything automatically when the process dies.

Certainly many applications are implemented in this way, and the results are not devastating because the applications tend to run for short periods of time and then are restarted. However, services run forever, and omitting the proper error-recovery and resource-cleanup code is catastrophic!

In my opinion the only way to write an application capable of running 24 hours a day, seven days a week, is to use exception handling. For this reason, I highly recommend that you become familiar with exception handling techniques. There are two types of exception handling: structured exception handling, a mechanism offered by Windows operating systems; and C++ exception handling, a mechanism offered by the compiler. Both of these mechanisms allow you to write code capable of recovering from unanticipated failures and hard errors such as access violations, divisions by zero, and stack overflows.

Both exception handling mechanisms are useful in different scenarios, and fortunately Microsoft Visual C++ allows us to use them interchangeably within a single application. The sample applications in this book demonstrate the concepts involved in creating robust server applications, and many of them use exception handling liberally. If you desire more information about exception handling, see Programming Applications for Microsoft Windows, Fourth Edition (Jeffrey Richter, Microsoft Press, 1999).

Proper use of C++ in a service can make your coding life substantially easier. I find that wrapping simple Windows objects in C++ classes is useful for several reasons, which follow. Many of the sample applications in this book use C++ classes for exactly these reasons.

By placing the code to close the object in the C++ class's destructor, , the compiler ensures that the object is destroyed. Wrapping calls to Windows functions inside C++ class methods allows you to enforce the proper calling of Windows functions.

Calling Windows functions via a C++ class method allows you to place certain checks and verify assertions in one place. This makes it substantially easier to find bugs in your code.

C++ classes reduce the amount of code you write, making your code more readable and maintainable. You get code reuse by using C++ classes. If you use C++ template classes, you can create generic solutions while preserving type safety.

Scalability and Performance

In the early days of programming, developers had limited system resources. This forced developers to implement crafty and un-maintainable algorithms to eke out as much system performance as possible. Today, computer system performance and storage capabilities have increased enormously, allowing developers to design simpler and more maintainable algorithms.

Unfortunately, these advances have also allowed developers to become lazy. I know developers who don't even think twice about allocating megabytes of storage for tasks that need no more than a few kilobytes, tops. I also know developers who use mutex objects where critical sections would more than suffice. These developers simply don't care that functions that reference a mutex require a user-mode to kernel-mode round-trip transition, which requires about 1000 CPU cycles-and that doesn't even include the code that must execute once in kernel mode. In contrast, critical sections usually stay entirely in user mode and require about 100 CPU cycles to execute.

More and more people are using computers because servers offer the information that improves our quality of living. Studies show that users become easily frustrated with an unresponsive server and seek out desired information elsewhere, which translates into loss of business and revenue. Similarly, an enterprise with an unresponsive server frustrates employees and ultimately affects productivity-this also translates into a loss of business and revenue.

In some situations, you can improve server responsiveness by adding more computers. However, for many reasons you are usually better off running your server on a single machine when you can. First, writing server software that has various parts of itself executing on different machines is much harder than writing software that executes on a single machine. Second, the complexity of administering multiple machines often increases at a greater-than-linear rate. Third, you introduce several more potential points of failure, malting errors much more difficult to locate and correct...

Read More Show Less

Table of Contents

Part I: Required Reading
Chapter One: The Discipline of Service Development
Chapter Two Device I/O and Interthread Communication
Part II: Services
Chapter Three: Service Applications
Chapter Four: Service Control Programs
Part III: Administration
Chapter Five: The System Registry
Chapter Six: Event Logging
Chapter Seven: Performance Monitoring
Chapter Eight: Windows Management Instrumentation
Part IV: Security
Chapter Nine: Managing Trustees
Chapter Ten: Access Control
Chapter Eleven: User Context
Chapter Twelve: Secure Connectivity
Part V: Appendixes
Appendix A: The Build Environment
Appendix B: The Class Library
Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)