kevinwu
驱动牛犊
驱动牛犊
  • 注册日期2007-02-15
  • 最后登录2007-03-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1128回复:0

help!!!!!!! 开发一个disk.sys的lower driver遇到一个问题

楼主#
更多 发布于:2007-02-15 16:39
  系统待机时,不能正常进入待机状态, 好像是使用了IRP completion routine的原因。
因为在filter driver 中有个需求就是所有读写IRP必须串行,就是一个做完了在发另一个,所以使用了IRP completion routine。

而在DispatchPower函数没有任何特殊的操作:
NTSTATUS
XXXDispatchPower(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    )
{
 PDEVICE_EXTENSION deviceExtension;
    PIO_STACK_LOCATION  irpSp = IoGetCurrentIrpStackLocation(Irp);
    NTSTATUS status;

    deviceExtension = (PDEVICE_EXTENSION)DeviceObject->DeviceExtension;

    PoStartNextPowerIrp(Irp);
    IoSkipCurrentIrpStackLocation(Irp);

    status = PoCallDriver(deviceExtension->TargetDeviceObject, Irp);

    return status;
}
游客

返回顶部