Control Codes

Control codes are used to signify that special processing of a value or key name must take place. All control codes are prefixes to a value or key name and take the form of the code name (that is, **code.) directly followed by value name or key name.

The following control codes are defined for use with value names.

**del. Specifies that the value name following the control code should be deleted.
**delvals. Deletes all values under this key in the local registry before propagating values under this key from the policy file. When processing a particular key, a downloader must look for and process this value first. This control code is inserted by a list box control so that existing values are removed before the new values are added.
**soft. Specifies that it is a soft value. The downloader only propagates the value name following the control code if a value by that name does not exist in the local registry; that is, the downloader does not overwrite existing settings with soft values.

No control codes are currently defined for use with key names.

If a policy downloader encounters a control code that it does not understand, it must not process the key or value. If the control code is part of a value name, the policy downloader should skip that value in the hive file but continue to process other values under that key and its subkeys. If the control code is part of a key name, the downloader should ignore the key and not process any values under it or its subkeys. This behavior is important because it allows developers to create new control codes without breaking existing downloaders.

Developers may create new control codes in the same format as shown in the preceding table (that is, **code.). Developers who do so should notify Microsoft so that Microsoft can document the new codes.