12 karma · joined June 15, 2013
As for 'internal OS DLLs' I think it's subjective as to whether those APIs have any use outside of OS components (and indeed what constitutes an 'OS component'). I happen to think there's some really useful stuff in there. Anyway, I only brought it up to highlight that there are some things Microsoft has decided we can't use for whatever reason. Again, I think it's reasonable to consider them 'private', non-public, internal. I'm not saying any of this is good\bad or that they shouldn't have the right to do this sort of thing. Just that it exists.
As for AARD, technically it did 'ship' as the code was included in Win3.1 but was benign thanks to a runtime flag. Even in beta form it highlights that this sort of thing, relying on undocumented behavior, has been used at Microsoft for a very long time. Perhaps it's an insignificant example but it did cost them close to $300M in a settlement so seemed pretty relevant to me.
Anyway, I shall leave it to other readers to decide if any of this constitutes evidence of so-called private APIs by Microsoft.
Thanks.
Or search msdn for "This API is not intended to be used directly from your code" for examples of other APIs that are 'private' to Microsoft and will similarly get you booted.
Going back in time, there were (still are) a great many dlls and services in Windows with unnamed exports and not available to the general public (eg win32k, csrss, milcore etc).
Go back to the dark ages and as others have already mentioned there's the famous AARD example that used undocumented DOS data structures to distinguish MS-DOS from other variants.
Like I said, nothing new.
It's nothing new, they have had so-called 'private' APIs since the early days of Windows.