Handling Special String Characters

[This is preliminary documentation and subject to change.]

When writing messages, paths, and registry locations to an INF file, your migration DLL may need to pass certain characters that have special meanings to Setup and to the operating system. When writing messages or paths, the string must be enclosed in double-quotes if it contains any of the following:

    "

    %

    ,

    ;

    [

    ]

In addition, embedded percent and double-quote characters must be formatted properly before the string is written to the INF file. For example,

This "example" illustrates how to escape the percent (%) symbol

Must appear in an INF file as

"This ""example"" illustrates how to escape the percent (%%) symbol"

When writing registry locations to an INF file, you must replace the characters listed below as well as all characters with ASCII values greater than 127 (including double-byte characters) with their hexadecimal values enclosed in tilde (~).

Character Hex value
" 0x22
% 0x25
, 0x2C
; 0x3B
[ 0x5B
] 0x5D
~ 0x7E

For example, replace a semicolon (;) with the string ~3B~ .