> This would require people to register with Microsoft their solutions.
Microsoft should NOT be the judge as to the ligitimacy of the need,
The situation is rather interesting.
First of all, there is no market-driven demand to keep the OS clean. Yes,
really so.
If some small company will want to do some software deeply based on hooking and
will find the investors to support them with money on startup phase - then
sorry, they will go on, and will never stop due to “hooking is bad” attitude.
So, if we will take only the monetary interests of the 3rd party ISVs, and not
moral ones - then they are pro-hooking. As about “moral ones” - these are
usually the interests of the developers and not the executive management, who
do not thing that hooking is immoral, and often admire the developers who do
hooking - “the real guys! the can go and solve the task!”.
As about “deteritoriating the platform” - they do not care, if their software
will misbehave - people will blame Microsoft 
The mass consumer cannot be anti-hooking due to absolute (usually) lack of
knowledge on how the software is developed, the decisions of
quality-vs-deadline made late in the development cycle, and so on.
So, Microsoft seems to be the only real player on the market who is really
anti-hooking. Windows crashed due to lots of hooking software == Microsoft
being blamed.
Yes, non-IT people often consider the authors of the small software titles to
be professionaly better then Microsoft, and MS is perceived among many of them
as a “huge suffocator and subjugator full of pawns and no Real Men”.
It was amazing but, when XP SP2 broke some software titles, people were blaming
Microsoft. And yes, the vendors of these titles had the betas and had the time
to prepare.
On the other hand: sometimes it is too hard for Microsoft to support the 3rd
party ISV who want to do the product in “kosher” Microsoft-approved ways. Then
the 3rd party has no other choices but hooking.
Most of this “hard to support” from MS’s side is - why not document some stuff?
Why not document PsLookupProcessByProcessId? Why not document most of Ntxxx
syscalls? Why not document the PEB structure, or some other way to get the full
EXE pathname of the process? Why not expose the interface to vendor specific
features of the ACPI EC, so that Asus and others will not use PortIO code to
access the fan speed meter?
People go on and do hooking and other dirty development styles for such things.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com