我有个问题,比如我有两个USB 设备(A和B),他们都是使用相同 WDM 驱动程序,那么它们在加载驱动的时候都会分别调用同样的 adDevice() 函数,
我想在 adDevice 函数中区分是A和B设备的调用,然后在创建相应的A_FDO, B_FDO,那么我如何区分是A设备调用的adDevice ,还是B设备调用的adDevice 中呢?是通过 传入的PDO 里面的一些数据段来区分吗? NTSTATUS AdDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT pdo)
你设置的AD DEVICE难道没有写设备描述符吗?你可以利用设备属性和标识符来区分A或B,IoGetDeviceProperty可以从你的代码种获取设备描述符来进行相应的判断
参考GPT回答:
你可以这样区分一下
可以检查 PDO 设备对象的堆栈大小(StackSize)字段的值,在创建设备对象时会设置成不同的值,以用于区分不同的设备。