However the description of "Submits a custom shader message to the information queue." doesn't really explain what it does. What is the Information Queue.

It also includes the remark "This operation does nothing on devices that do not support it.".

So, what does it do (On devices that do support it)?

Obviously it can't output a message for every invocation as pixel shaders are exeuted millions of times a second (Typically).

I thought maybe it outputs something but only when stepping through the code in a debugger, so I tried that...

Compiling a shader with a printf in the code succeeds and it runs fine (But with the printf not doing anything obvious), but if I try to debug it (In Visual Studio 2012) the debugger crashes immediately (i.e. long before it ever actually gets to execute the printf line).

What annoys me is that the HLSL documentation doesn't clearly state that. There are other functions in HLSL that it doesn't seem to be clear on too, such as the 'noise' function that isn't actually a HLSL function at all but rather part of the Effects Framework as far as I could tell (As the ability to fill a texture from a function is part of the Effects framework).