阅读:1354回复:4
需要多线程吗?
同样的设备装了N个,在访问他们的时候WDM驱动需要创建线程为每个
应用程序服务吗? |
|
|
沙发#
发布于:2002-07-01 11:10
不需要,每个驱动会管理N个设备对象,驱动代码是可重入的
|
|
|
板凳#
发布于:2002-07-01 11:53
驱动程序应该会为每个硬件都调用一次AddDevice吧。然后你在AddDevice里面一般都会创建一个fdo和DeviceExtension。每个硬件私有的数据都在fdo和DeviceExtension里面,以后IO Manager调用你的例程的时候都会将fdo传给你。我想IO Manager应该不会将具体硬件和fdo搭配错把。
瞎说的。错了请指正。 |
|
|
地板#
发布于:2002-07-01 12:50
不需要。需要的是CreateFile时的不同的Symbol link对应不同的设备。而不同的Symbol link是驱动程序在AddDevice时分别创建的,比如
\\DosDevices\\000000000000001c#{a5dcbf10-6530-11d2-901f-00c04fb951ed}//一个设备 \\DosDevices\\000000000000001d#{a5dcbf10-6530-11d2-901f-00c04fb951ed}//另一个设备。 驱动程序只需在AddDevice调用IoCreateDevice时带FILE_AUTOGENERATED_DEVICE_NAME参数就可以了。 |
|
|
地下室#
发布于:2002-07-01 14:06
多谢楼上的3位高手。
|
|
|