HAL extension

Hi folks, I have some theoretical questions regarding the HAL:

-Where would I find information what exactly is going on in the HAL ?
(how interrupt controller specifics are abstracted, etc)
-Where would i find the HAL API?
-Isn’t it possible to write your own HAL extension?
If yes, where would I find the corresponding API/ SDK?
-What are the corresponding Header files and Lib files?

PS: I’m not trying to write my own HAL extension but would like to get
some more information which functionality is implemented in the HAL.

Thanks,
Robert

The HAL these days is a very thin layer. The Windows Internals book by
Russinovich and Solomon is a good reference. Microsoft used to sell a HAL
kit, I do not know if they still do but I know they discourage new HAL’s.
The appication for the kit used to require a justification of why you wanted
it, a very strong non-disclosure document, plus the cost of the kit.


Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply

“Schwarz, Robert (SCR US)” wrote in message
news:xxxxx@ntdev…
Hi folks, I have some theoretical questions regarding the HAL:

-Where would I find information what exactly is going on in the HAL ?
(how interrupt controller specifics are abstracted, etc)
-Where would i find the HAL API?
-Isn’t it possible to write your own HAL extension?
If yes, where would I find the corresponding API/ SDK?
-What are the corresponding Header files and Lib files?

PS: I’m not trying to write my own HAL extension but would like to get
some more information which functionality is implemented in the HAL.

Thanks,
Robert

Robert,

As Don says, there used to be a HAL kit for producing custom HALs, but that program doesn’t exist anymore. In general, the HAL doesn’t have public APIs. It provides support functionality for core parts of the platform that aren’t architectural - that is, they aren’t documented in Intel’s or AMD’s processor manuals. That includes things like interrupt controllers, DMA programming, processor startup, PCI configuration access, etc. Generally the kernel has the API set, and it delegates certain parts of tasks to the HAL as necessary.

Dave