|
|||||||||||||||||
|
|||||||||||||||||
|
正文: | ||
WDM还引入了功能设备对象FDO(Functional Device Object)与物理设备对象PDO(Physical Device Object)两个新类来描述硬件,一个PDO对应一个真实硬件。一个硬件只允许有一个PDO,却可以拥有多个FDO,在驱动程序中直接操作的不是硬件而是相应的PDO与FDO。在用户态和内核态通讯方面,系统为每一个用户请求打包形成一个IRP结构,将其发送至驱动程序,并通过识别IRP中的PDO来区别是发送给哪一个设备的。另外,在驱动程序的加载方面,WDM不通过驱动程序名称识别,而是通过一个128位的全局唯一标识符GUID来实现驱动程序的识别。我们用上图来说明设备驱动程序的分层及调用。 |