任何人都可以解释什么是Windows HAL以及它用于什么?

3 c drivers hal device

干杯...

我知道它代表硬件抽象层,但它究竟是做什么的?它是否设计用于VB等高级语言与硬件进行通信?那些IN/OUT指令如何调用HAL例程或者是否通过I/O管理器直接与硬件的设备驱动程序通信?

提前致谢

asv*_*kau 5

我知道它代表硬件抽象层,但它究竟是做什么的?

它本质上是NT内核的"非可移植"部分,作为一个单独的模块提供,以便NT可以移植到多个处理器体系结构.示例:中断路由.

它是否设计用于VB等高级语言与硬件进行通信?

不.它意味着NT内核的支持例程.如果您在用户模式下进行编码(就像在VB等高级语言中那样),则无需知道它是否存在.

那些IN/OUT指令如何调用HAL例程或者是否通过I/O管理器直接与硬件的设备驱动程序通信?

当您使用inout指令时,这是直接与CPU通信.这与您正在讨论的NT内核主题完全无关.那里没有HAL.没有NT I/O管理器.这些指令是x86指令集通过I/O地址与设备通信的指令.