对于流驱动来说,如果是多个设备(接口)共用一个驱动(.dll),该如何判断当前执行的代码是哪个设备(接口)在用?也就是说在驱动代码中需要根据当前是哪个设备(接口)来执行一些不同的操作。下面以串口驱动为例来说明。

 

COM_Init(ULONG   Identifier)函数中参数Identifier是设备管理器在枚举注册表之后生成的在active下的对应该串口的一个注册表路径句柄。可以通过该句柄调用OpenDeviceKey函数来获得该路径下的一个叫“key”的路径句柄,在active下该key的值就是驱动加载时对应的注册表原始路径,再通过该路径下的index值(或者别的标志值)可以判断当前是哪个设备接口在使用驱动程序(.dll