Application Specification for Microsoft Windows 2000 Server

Design Guide for Building Server Applications

Version 1.2
December 8, 1999

Microsoft Corporation


Microsoft wishes to thank the following organizations for their technical review, feedback, and consideration in the drafting of this specification. Their feedback was invaluable to help guide the content of this specification to better meet the needs of enterprise customers.

American International Group, Inc.

The Baan Company

BMC Software

Carnegie Mellon University

Charles Schwab & Co., Inc.


Credit Suisse First Boston

Ford Motor Company

Massachusetts Institute of Technology

Nortel Networks

Pfizer, Inc.

The Taylor Group

The University of Texas at Austin-The Graduate School of Business

Warburg Dillon Read


The Application Specification for Microsoft® Windows® 2000 was developed by Microsoft in cooperation with customers and third-party developers to identify the technical definition of the model business application for Windows 2000. This specification will help software developers take advantage of the new technologies in Windows 2000 so that your application is more manageable, more reliable, and reduces cost of ownership for your customers. It is intended for developers of all kinds, including independent software vendors and corporate application developers.

The specification has two versions. This document details the requirements for multi-user server applications. A similar specification for building single-user-primarily desktop-applications, is available at

Top reasons your customers will benefit

An application that meets this specification:

  • Supports a globally available infrastructure for easier access for the user and easier management for the administrator.

  • Provides secure access to resources and security for client server interactions.

  • Is ready to run on a server cluster (for applications that certify on Windows 2000 Advanced Server and Datacenter Server). By exploiting Cluster service features, an application can minimize the service downtime caused by system failures or planned server maintenance and upgrades.

Certified for Windows

The Application Specification for Windows 2000 defines the technical requirements for applications to earn the "Certified for Microsoft Windows" logo. Applications may carry the "Certified for Microsoft Windows" logo, once they have passed compliance testing and executed a logo license agreement with Microsoft. This logo lets your customers know that your application offers a high quality computing experience available on Windows.

Windows Certification for server applications is available for any of the following operating systems:

  • Windows 2000 Server

  • Windows 2000 Advanced Server

  • Windows 2000 Datacenter Server (see Endnote 1)

The logo you receive will indicate the version(s) of Windows for which your product is certified. Samples logos are shown in Figure 1.

Figure 1. Samples of Windows logos

Compliance testing for the Windows Certification program is performed by VeriTest, an independent testing lab. Compliance testing will be done using the latest released versions of Windows 2000, including any service packs.

For additional information on how to test for the "Certified for Windows" logo, see

Note To simplify the logo programs for both customers and independent software vendors (ISVs), the requirements for the Windows 2000 Server logo will—over time—equal the core baseline Microsoft BackOffice® logo requirements. For more information on the current BackOffice logo, see BackOffice Logo Program.


Resource Address
"Application Specification for Microsoft Windows 2000 for Desktop Applications"
"Certified for Windows" Logo Program
VeriTest Logo Lab e-mail
Certified for Windows Logo e-mail
Windows 2000 Developer information
BackOffice Logo Program
Knowledge Base
Microsoft Platform SDK

(Software Developer Kit) Documents the Win32® and Win64™ application programming interfaces (APIs)

Provided with the Microsoft Developer Network (MSDN) Professional Subscription. To subscribe, visit

Checklist for Windows Certification

Chapter 1. Windows Fundamentals

1.1 Perform primary functionality and maintain stability.

1.2 Provide 32-bit components and document any 16-bit code.

1.3 Support Long File Names (LFNs) and universal naming convention (UNC) paths.

1.4 Support printers with long names and UNC paths.

1.5 Do not read from or write to Win.ini, System.ini, Autoexec.bat or Config.sys.

1.6 Ensure that non-hidden files outside of your application directory have associated file types, and all file types have associated icons, descriptions and actions.

1.7 Perform Windows version-checking correctly.

1.8 Kernel mode drivers must pass verification testing.

1.9 Hardware drivers must pass Windows Hardware Quality Labs (WHQL) testing.

1.10 Client components must comply with the Desktop Application Specification for Windows 2000.

Chapter 2. Install//Uninstall

Note   If your application uses the Windows Installer service, Requirements 2.2 through 2.8 in this Server Specification are superceded by Chapter 2 of the Desktop Application Specification. Note Desktop Requirement 2.6 is not required.

2.1 Do not attempt to replace files that are protected by Windows File Protection.

2.2 Do not overwrite non-proprietary files with older versions.

2.3 Install to Program Files by default.

2.4 Install shared files to the correct locations.

2.5 Refcount all shared application files during installation.

2.6 Support Add/Remove Programs properly.

2.7 Decrement the count on shared application files during uninstall.

2.8 Ensure correct uninstall.

Chapter 3. User Interface Fundamentals

Note   3.1 through 3.4 required only if any graphical UI is presented.

3.1 Support standard system size, color, font, and input settings.

3.2 Ensure compatibility with the High-Contrast option.

3.3 Provide documented keyboard access to all features.

3.4 Expose the location of the keyboard focus.

3.5 Do not place shortcuts to documents, help, or uninstall in the Start menu.

Chapter 4. Active Directory

4.1 Use Active Directory™ appropriately.

4.2 Document the storage and replication impact of your application.

4.3 Document your application's use of objects and attributes in the base schema.

4.4 Information stored in Active Directory must be "globally interesting."

4.5 Attribute values must not exceed 500KB in length, and the total object size must not exceed 1 MB.

4.6 If you extend the schema, adhere to Active Directory Schema extensibility rules.

Chapter 5. Security Services

5.1 Document services that require more than user-level privileges to run.

5.2 Win32 clients running in the context of a trusted domain account must support Single Sign-On (SSO).

Chapter 6. Cluster Service

Note   Cluster Services is required for Advanced Server and Datacenter Certification. Windows 2000 Datacenter Server is on a different release schedule than the other Windows 2000 operating systems. Microsoft is currently evaluating whether additional requirements specific to Datacenter will be required for Certification on Windows 2000 Datacenter server.

6.1 Applications must be able to install on two nodes for certification on Windows 2000 Advanced Server, and two, three, and four nodes on Windows 2000 Datacenter Server.

6.2 Applications must support failover to all cluster nodes.

6.3 Clients must survive failure of server application without crashing or affecting the stability of the system.

Who Is This Specification For?

This specification is intended for vendors and corporate developers building multi-user applications that run on any of the Windows 2000 Server family of operating systems. These distributed applications may be client/server applications or n-tier applications. This specification is specifically targeted at the server component of a distributed application. If you are building a single-tier application that is not a multi-user application, we suggest you consider designing to the desktop application specification for Windows 2000, available at

This specification is primarily focused on the middle-tier component(s), e.g., the component that (in most cases) runs on the server. Most, though not all, the requirements in this specification focus on what the server component of an application should do and how it should behave. In a few cases, this specification has client requirements that describe how client components that your application may have should behave when communicating with your server component. However, this specification does not attempt to describe complete requirements for applications (or components of applications) that are primarily intended to run on Windows 2000 Professional. Those requirements are described in the desktop application specification for Windows 2000.

To qualify for the Certified for Windows logo, your application must comply with this Server Specification. Additionally, if your distributed application includes client components, those client components must comply with the desktop application specification for Windows 2000. Distributed applications that have client components are eligible to carry both Server and Professional designations on their Certified for Windows logo. Note that certain types of clients may be completely or partially exempt from complying with the desktop application specification. See Requirement 1.10 and Appendix B for details.

Finally, if your application uses third-party server components, see Appendix C.


Checklist for Windows Certification
Who Is This Specification For?
Chapter 1. Windows Fundamentals
Chapter 2. Install/Uninstall
Chapter 3. User Interface Fundamentals
Chapter 4. Active Directory
Chapter 5. Security Services
Chapter 6. Cluster Service
Appendix A. Best Practices
Appendix B. Browser-Hosted Applications
Appendix C. Usage of Non-Compliant 3rd-Party Components
Appendix D. Summary of Changes