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

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

楼主#
更多 发布于:2007-02-15 16:43
  系统待机时,不能正常进入待机状态, 好像是使用了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;
}
游客

返回顶部