zhuhongfeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-01
  • 最后登录2004-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1112回复:3

有没有办法在驱动程序中读出设备对应pdo的内容?

楼主#
更多 发布于:2003-01-30 18:38
如题! :(
tjm
tjm
驱动小牛
驱动小牛
  • 注册日期2002-05-18
  • 最后登录2004-10-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-05 02:39
应该能啊。在ADDDEVICE中将得到PDO的指针,然后读就是了,不过读读就算了,千万别改牙。
zhuhongfeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-01
  • 最后登录2004-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-05 04:31
对啊!我是把PDO的指针在ADDDEVICE给读出来了,可那时是个Hex的地址。我是想,能不能把由Bus Driver生成Pdo的内容给读出来!
我在C++上编程造诣很浅,尤其是和硬件打交道的时候,希望前辈能够指点一下!
tjm
tjm
驱动小牛
驱动小牛
  • 注册日期2002-05-18
  • 最后登录2004-10-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于: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);
}



  
游客

返回顶部