日期:2014-05-17  浏览次数:21700 次

驱动中?DO_POWER_PAGABLE的疑问
有高手知道这个?DO_POWER_PAGABLE这个标志是什么意思么,我查看MSDN的文档,发现了一些疑问
In Windows 2000 and later versions of Windows, drivers of devices that are in the paging path must not set the DO_POWER_PAGABLE flag. Drivers that do not set the flag must be callable at IRQL = DISPATCH_LEVEL.

这个  in the paging path must not set the DO_POWER_PAGABLE flag就什么意思?
另外Windows 2000 and later drivers that can be paged must set the DO_POWER_PAGABLE flag. The power manager calls such drivers at IRQL = PASSIVE_LEVEL...这个drivers that can be paged must set the DO_POWER_PAGABLE flag.又是神马意思。。跪求高手,困忧我好久的一个问题
------解决方案--------------------
似乎是说,如果设备上有页面文件,就要清设备对象中flag成员的这一位。否则就要置这一位。写磁盘过滤的时候似乎就要考虑这个问题。。。如果你过滤的磁盘上可能会有分页文件,就要清这一位,否则要置这一位。。我也不很懂,猜测性的理解<寒江独钓>上有提到
------解决方案--------------------
如果IRP_MJ_POWER请求的派遣函数必须运行在PASSIVE_LEVEL级别,你需要设置DO_POWER_PAGABLE标志。该标志的名称含有相关的含义,因为只有在PASSIVE_LEVEL级上才允许分页操作。如果你把该标志设置为0,则电源管理器可以在DISPATCH_LEVEL级上向你发送电源管理请求
------解决方案--------------------
如果IRP_MJ_POWER请求的派遣函数必须运行在PASSIVE_LEVEL级别,你需要设置DO_POWER_PAGABLE标志。该标志的名称含有相关的含义,因为只有在PASSIVE_LEVEL级上才允许分页操作。如果你把该标志设置为0,则电源管理器可以在DISPATCH_LEVEL级上向你发送电源管理请求