Why do Windows functions begin with a pointless MOV EDI, EDI instruction? (2011)
blogs.msdn.microsoft.com
blogs.msdn.microsoft.com
Remember BASIC, the classic 10/20/30 line numbering scheme? Don't want to be caught without room to expand your program.
Microprocessors manufacture in extra gates in case they need to fix something.
Even in large construction projects you see evidence of mystery tunnels, pipes and other things that enable post-construction changes. Some of the road fly-overs in my area have branch points that are only connected in one direction (since obviously it would be ridiculously hard to retrofit the piers at the intersection 10 years from now to add a road going the other way).
Not sure if anything has changed in recent years, though.
Note that even in the MAC-based generation algorithm, it is difficult (but not impossible) to accidentally generate the same one again even on the same hardware since there is a high resolution time component as well.
Random UUIDs have a different encoded version number so it's actually impossible for a modern one to collide with the one they generated.
GetRandomRgn: http://blogs.msdn.com/b/oldnewthing/archive/2012/06/18/10321...
A good idea ruined by bad application programmers: http://blogs.msdn.com/b/oldnewthing/archive/2003/11/03/55532...
How window minimization really works: https://blogs.msdn.microsoft.com/oldnewthing/20041028-00/?p=...
See you later. J: https://blogs.msdn.microsoft.com/oldnewthing/20060523-10/?p=...
> [SHGetSpecialFolderLocation is not supported and may be altered or unavailable in the future. Instead, use SHGetFolderLocation.]
Alright, so I go and get the SHGetFolderLocation documentation:
> Deprecated.
So neither SHGetSpecialFolderLocation or SHGetFolderLocation are still the correct function for this and I have no clue which is the correct win32 function here because on the "Deprecated" one they don't tell me? And all because I went to MSDN and actually tried to read the official docs.
Microsoft always likes to blame crappy developers, but their documentation is terrible too. Instead of removing the documentation for the registry shell folder key, they should have left documentation and in that article explained why they exist and why you should not use them.
Ultimately Microsoft, particularly in the 1990s, had terrible documentation and they're in no small part to blame for how badly software was written to the platform.
[0] https://msdn.microsoft.com/en-us/library/windows/desktop/bb7... [1] https://msdn.microsoft.com/en-us/library/windows/desktop/bb7...
Also, your second link says """As of Windows Vista, this function is merely a wrapper for SHGetKnownFolderIDList. The CSIDL value is translated to its associated KNOWNFOLDERID and SHGetKnownFolderIDList is called. New applications should use the known folder system rather than the older CSIDL system, which is supported only for backward compatibility."""
(Fun Fact: I implemented much of the knownfolder and some of the old shell32 PIDL folder stuff in Wine :) )
Itanium processor overview (series) https://blogs.msdn.microsoft.com/oldnewthing/20150727-00/?p=...
Lock-free algorithms (series) https://blogs.msdn.microsoft.com/oldnewthing/20110405-00/?p=...
Undefined behavior (also see John Regehr's posts on this): https://blogs.msdn.microsoft.com/oldnewthing/20140627-00/?p=...
Windows debugging specifics:
Rescue broken stack trace: https://blogs.msdn.microsoft.com/oldnewthing/20110309-00/?p=...
Underlying object behind COM pointer: https://blogs.msdn.microsoft.com/oldnewthing/20070424-00/?p=...
View stack of user-mode thread when kernel stack is paged out: https://blogs.msdn.microsoft.com/oldnewthing/20141114-00/?p=...
Identifying an object whose DLL is unloaded: https://blogs.msdn.microsoft.com/oldnewthing/20070425-00/?p=...
Raymond also posts "little programs" occasionally, which are great small examples of various Windows techniques.
I had the impression he was still there last year.
There's no excuse for breaking existing links though, particularly for a blog as popular as this one.