I think you'll find when Microsoft adds its own wrinkle it precedes it with double underscores. If you are using MS compilers it's always a good idea to check their documention. A good example is try exception handling in C++. There's the C++ exception mechanism using try..catch, then there's MS home grown Structured Exception Handling that uses __try ..except instead of try. They are not the same.
In this case it may just be using C 'restrict' keyword in C++ as __restrict but I wouldn't take anything for granted.
Here's a simple explanation more succinct than on MS page I think:
http://www.devx.com/tips/Tip/13825
(for some reason we all want to put the 'ed' on the end of restrict to get restricted. I just did it too)
