IoCreateDevice,该怎么处理
IoCreateDevice
1)创建设备的时候这个 NextDevice 是指向空还是指向哪里....(当他创建的时候是怎么样给它赋值的);
它是怎么知道它的下一个设备的...还是有个链表 创建一个就插入一个...
2)一个驱动可以有多个设备...那么设备扩展是不是也可以创建多个..如果创建了多个有什么需要注意的地方么...
------最佳解决方案--------------------
每个设备扩展可以不同,但程序自己要能够区分,例如扩展结构中先用一个变量表示具体类型。
这句蓝屏应该是DeviceObject指针无效,检查一下这个指针是怎么来的。
------其他解决方案--------------------
友情帮顶一下
------其他解决方案--------------------
2)一个驱动可以有多个设备
这个好像说反了吧,一个设备可以有多个驱动
------其他解决方案--------------------
一个驱动可以创建多个类型的设备。 应用层可以打开设备多次 所以也可以存在某种设备多个。
------其他解决方案--------------------
进来学习一下
------其他解决方案--------------------
不是吧....
------其他解决方案--------------------
1、同一驱动创建的多个设备对象通过NextDevice构成一个单向链表,创建设备时指针为空,创建下一个设备时指向新设备。
2、设备扩展是专属于某一个设备对象的,每个设备有自己的设备扩展,互不干扰,驱动程序在设备扩展中记录与该设备有关的信息。
------其他解决方案--------------------
1)创建设备的时候这个 NextDevice 是指向空还是指向哪里....(当他创建的时候是怎么样给它赋值的);
它是怎么知道它的下一个设备的...还是有个链表 创建一个就插入一个...
2)一个驱动可以有多个设备...那么设备扩展是不是也可以创建多个..如果创建了多个有什么需要注意的地方么...
------最佳解决方案--------------------
每个设备扩展可以不同,但程序自己要能够区分,例如扩展结构中先用一个变量表示具体类型。
这句蓝屏应该是DeviceObject指针无效,检查一下这个指针是怎么来的。
------其他解决方案--------------------
友情帮顶一下
------其他解决方案--------------------
2)一个驱动可以有多个设备
这个好像说反了吧,一个设备可以有多个驱动
PAGED_CODE();
KdPrint(("Enter HelloWDMAddDevice\n"));
NTSTATUS status;
PDEVICE_OBJECT fdo;
UNICODE_STRING devName;
RtlInitUnicodeString(&devName,L"\\Device\\MyWDMDevice");
status = IoCreateDevice(
DriverObject,
sizeof(DEVICE_EXTENSION),
&(UNICODE_STRING)devName,
FILE_DEVICE_UNKNOWN,
0,
FALSE,
&fdo);
if( !NT_SUCCESS(status))
return status;
status = IoCreateDevice(
gFileSpyDriverObject, //DriverObject
sizeof(FILESPY_DEVICE_EXTENSION), //DeviceExtensionSize
NULL, //DeviceName
DeviceObject->DeviceType, //DeviceType
0, //DeviceCharacteristics
FALSE, //Exclusive
&newDeviceObject); //DeviceObject
//这里是 这个为这个驱动创建的设备对象
------其他解决方案--------------------
一个驱动可以创建多个类型的设备。 应用层可以打开设备多次 所以也可以存在某种设备多个。
------其他解决方案--------------------
进来学习一下
------其他解决方案--------------------
不是吧....
------其他解决方案--------------------
1、同一驱动创建的多个设备对象通过NextDevice构成一个单向链表,创建设备时指针为空,创建下一个设备时指向新设备。
2、设备扩展是专属于某一个设备对象的,每个设备有自己的设备扩展,互不干扰,驱动程序在设备扩展中记录与该设备有关的信息。
------其他解决方案--------------------