阅读:1549回复:4
怎么取得别的没有名字的设备对象?
请问在WINDOWS 2000下怎么取得一些设备对象的地址?我曾经试过,可是取得的都不是真正的地址,返回给我的是经过系统处理的设备对象地址,请看一下WINOBJ这个程序或DDK的OBJDIR程序,这些显示设备对象和驱动程序对象的部分是怎么做的呢?它是怎么取得那些驱动程序的对象的呢?
|
|
沙发#
发布于:2001-08-15 09:57
try
WINBASEAPI DWORD WINAPI QueryDosDeviceA( LPCSTR lpDeviceName, LPSTR lpTargetPath, DWORD ucchMax ); 请问你是怎么做的? 用她就能得到你想要的,所得出的结果与用winobj.exe的到的结果一致!能得到设备的dosdevicename 和devicename. |
|
板凳#
发布于:2001-08-16 18:45
没有名字的对象需要通过历遍OBJECT MANAGER的对象树完成. 但是
OBJECT MANAGER的对象树到目前为止属于禁区. 没有几个人探索过. 即使历遍OBJECT MANAGER的对象树,有些对象仍然无法获得. 例如, 在DRIVER内部的KEVENT对象等. 因为它们没有通过OBJECT MANAGER生成. |
|
|
地板#
发布于:2001-08-16 19:08
一个方法是这样的:
得到一个关于driver_object的指针,然后用 driver_object->DeviceObject来得到一个有这个驱动 创建的device的链 |
|
地下室#
发布于:2001-08-24 13:48
请问怎么历遍对象树呢?还有它的具体地址呢?
|
|