阅读:1112回复:3
有没有办法在驱动程序中读出设备对应pdo的内容?
如题! :(
|
|
沙发#
发布于:2003-02-05 02:39
应该能啊。在ADDDEVICE中将得到PDO的指针,然后读就是了,不过读读就算了,千万别改牙。
|
|
板凳#
发布于:2003-02-05 04:31
对啊!我是把PDO的指针在ADDDEVICE给读出来了,可那时是个Hex的地址。我是想,能不能把由Bus Driver生成Pdo的内容给读出来!
我在C++上编程造诣很浅,尤其是和硬件打交道的时候,希望前辈能够指点一下! |
|
地板#
发布于:2003-02-06 19:29
已经有地址了就可以读了。
你可以查一下DEVICE OBJECT的定义,然后读其中的某个域: VOID QueryPdo(PDEVICE_OBJECT pdo) { PDEVICE_OBJECT DeviceObject; PDRIVER_OBJECT DriverObject; ULONG Flag; char Size; ...... ...... DeviceObject=pdo; DriverObject=DeviceObject->DriverObject; //存在其中的驱动对象 Flag=DeviceObject->Flag; //包括缓冲策略的一个标志 Size=DeviceObject->StackSize; //IO 堆栈的数量 ...... ...... } 也可以一个字节一个字节的读,当然每个字节都是hex,你自己要明白她的意思。 ULONG size=sizeof(DEVICE_OBJECT); usigned char Data[size]; for(int i=0;i<size;i++) { Data=*((unsigned char*)pdo+i); } |
|