阅读:854回复:0
help!!!!!!! 开发一个disk.sys的lower driver遇到一个问题
系统待机时,不能正常进入待机状态, 好像是使用了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; } |
|