阅读:1255回复:2
设备堆栈的疑问
小弟在看DDK例子程序时,对下面涵数的第二个参数搞不懂。
IoAttachDeviceToDeviceStack( IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice ); 它是堆栈最底层的真实物理设备对象吗? 各位大虾能讲讲总线设备对象,物理设备对象的关系吗? 如果在DriverEntry中调IoCreateDevice和IoAttachDeviceToDeviceStack,IoAttachDeviceToDeviceStack的第二个参数如何得到。 |
|
沙发#
发布于:2002-01-14 21:31
如果是PNP结构的驱动程序,那么在ADDDEVICE例程入口系统提供了一个PDEVICE_OBJECT类型的参数,这个参数就是这个函数的第二个参数
如果不是PNP的话,那么第二个参数就必须自己取得,可以使用 NTSTATUS IoGetDeviceObjectPointer( IN PUNICODE_STRING ObjectName, IN ACCESS_MASK DesiredAccess, OUT PFILE_OBJECT *FileObject, OUT PDEVICE_OBJECT *DeviceObject ); 这个函数 其中第一个参数就是你要钩挂的设备对象的名称 |
|
板凳#
发布于:2002-01-15 10:06
谢谢guardee,送你十分,但我惭愧找不到给分按扭。
可我还想知道 它是堆栈最底层的真实物理设备对象吗? 大虾能讲讲总线设备对象,物理设备对象的关系吗? |
|