sitation: i think nearly every prog today generates "unique" keys using
hardware information which is served by the OS

a few days ago i rememberd on zonealarm
this prog pops up a window if a unkown prog wants to access the internet
and the user can decide if the prog is allowed

the same stuff i want to do with windows function which server hardware
information

this means:
1. hooking windows functions (how does it work for my specific problem?,
hooking simple functions is easy, i can find this stuff in the knowledge
base, but hooking hardware information services, such as some windows
api functions which serve e.g. hard disk serials, network mac addresses,
cpu id's is a bit more difficult)
2. pop up a window if a prog wants to access such information
3. the user can decide what information is returned (this means the pop
up has a textfield where the user can enter the hard disk serial which
should be returned to the prog)

using this method it shouldn't be possible to generate a correct
hardware key

Q1: how do such specific hooks work?
Q2: is it a hook i need? or something different?
any hints about the whole stuff would be great (btw: i even don't
know what to google for cause i don't know which functions can do this,
or how this can work)
Q3: is there a prog which can actually do this? is there an open source
prog which does similar stuff, where i can learn from?

thanks