Triggering Program Compatibility Assistant for New Software

During the development of Windows Vista, Microsoft and the Windows Beta testers tested a large number of applications on the new OS. When incompatibilities were found in these programs that could not be remedied by Microsoft, the programs were registered for Program Compatibility Assistant (PCA) events called “blocks.”  There are two kinds of blocks: “hard blocks” and “soft blocks.” 

Hard blocks prevent the program from installing, running on Windows Vista, or prevent an upgrade of a computer to Windows Vista (any one or all three types may be implemented). Hard blocks do not allow the user to proceed with the operation. Hard blocks are reserved for cases where the computer would encounter a kernel-mode bug check (blue screen crash). This type of error could leave the system in an unrecoverable state.

Compared to hard blocks, soft blocks are more like warnings. They are provided for software programs that have known incompatibilities but do not run the risk of crashing the OS. The soft block message can connect the user with useful information from the software vendor that can help them fix the problem, work around it, or find a new version of the software that is fully compatible with Windows Vista. The user can also ignore the soft block and continue using the program with no further action. 

Figure: Example of dialog presented by a softblock

To help end users have a good experience on Windows Vista, Microsoft will implement new hard block and soft blocks in updates to Windows Vista as the need arises. Software vendors that have incompatibilities on Windows Vista and would like a PCA block need to meet a set of criteria, and then follow the submission procedure below.



1. Blocks will only be implemented for legacy software that was released prior to Windows Vista consumer launch in January 2007. New software releases should be compatible with Windows Vista.

2. The incompatibility must be predictable. Intermittent failures do not qualify.

Hard Block:

The software must exhibit the following behavior to qualify for a hard block:

1. The OS is rendered unusable and unrecoverable (includes bug check).

2. The hard block is preferable to the alternative user experience, including:

a. The OS would be left partially functional, and no in-context guidance can be given to the user, and the hard block can provide steps to remedy the problem.
b. An application would be left unusable and unrecoverable (can’t be repaired by uninstall or upgrade). This should be an extremely rare case, since recovering from an application installation should be possible through install/uninstall software. The vendor would need to prove that that is not an option.

Soft Block:

Soft blocks may be implemented for failures that meet at least one of these criteria:

1. Critical Failure—Bug causes system crash or data loss.

2. Bug causes major functionality or other severe problems; product crashes in obscure cases.


1. Send a description of the problem to, and indicate whether you need a hard block or a soft block.

2. If the problem you describe meets the above criteria, you will be issued a problem ticket for the block. You will then need to supply the following to Microsoft:

a. A complete bug description and steps to reproduce the problem. Note: the failure must be 100% reproducible.
b. A copy of the software to be blocked along with necessary license keys.
c. A signed test agreement allowing Microsoft to use the software for compatibility testing.

1. If the failure is reproduced and a block is implemented, the implementation will be provided to you for review. You will need to provide the URL that users will be directed to before the block can be implemented.

2. Blocks will be released in scheduled groups at least every six months via Windows Update.