I've received email from readers concerned about my positive review of Symantec's Norton Speed Disk 5.1 ("Enterprise Defragmentation Utilities," February 2001), a defragmentation utility that circumvents a Microsoft API. I empathize with these readers' healthy caution. However, summarily rejecting a product because it doesn't follow API rules undermines software industry innovation and your commitment to using the best applications for your networks.
I don't advocate an anarchic movement to ignore APIs and abolish the Windows Logo program. Standards are implicitly valuable. API compliance reduces an application's chance of conflict with the OS and other applications, and APIs make applications portable across service pack revisions and often across OS versions. However, with the OS benefits come limitations.
While testing enterprise defragmentation utilities, I discovered that the Microsoft MoveFile (FSCTL_MOVE_FILE) API doesn't permit access to the pagefile, the Master File Table (MFT), or the metadata. Speed Disk circumvents this API to let you move all files while the OS is active. When Symantec released Speed Disk, Microsoft anticipated a rash of product-related data corruption. Microsoft even published a Knowledge Base article titled "Do Not Use Third-Party Tool to Defragment the MFT or Paging File Online," which it later withdrew. According to a Microsoft product manager, the company didn't want to appear partial to certain defragmentation utilities. Although Microsoft acknowledged that Speed Disk isn't the data-corrupter that the company had feared, Microsoft doesn't approve of the API workaround.
Another successful API renegade is Sybari Software's Antigen for Exchange, an antivirus solution for Microsoft Exchange Server. Antigen doesn't use the Microsoft Messaging API (MAPI) to access the Exchange Server Information Store (IS). Instead, when the IS starts, Antigen uses a "shimmy" technique to load its proprietary code into memory. (For more information about this technique, see Tony Redmond, "The Great Antivirus Crusade," April 2001.) At first, Microsoft refused to support Antigen-protected systems. Microsoft has since relented—somewhat—and now supports these systems if you first uninstall Antigen. After the support call, you can reinstall.
Developing and distributing applications with functions that Microsoft actively opposes is risky. For these vendors, the risk appears to have paid off. However, the real payoff comes to users who benefit from the enhanced functionalities.
Vendors that are willing to color outside the lines also nudge Microsoft to improve. For example, after Antigen's release, Microsoft developed the Virus Scanning API (VS API), which gives antivirus applications access to the IS. Although the VS API isn't a perfect solution, it might still be on the drawing board if not for Sybari. Symantec's work in the defragmentation arena prompted, in part, improvement of Microsoft's defragmentation API. Windows 2000 permits online moving of directories. Windows XP will permit online defragmentation of the MFT and metadata.
I acknowledge that poorly written applications can wreak havoc on your systems. Use discretion before you adopt an application that skirts Microsoft APIs. But don't deny yourself the benefits of applications that come from competent rule-breakers—they might just be a step ahead of Microsoft.