NTSTATUS NTAPI FinishDevPoUpIrp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PDEVICE_EXTENSION DeviceExtension) { NTSTATUS ntStatus; FreeBT_DbgPrint(3, ("FBTUSB: FinishDevPoUpIrp: Entered\n")); ntStatus = Irp->IoStatus.Status; if(Irp->PendingReturned) { IoMarkIrpPending(Irp); } if(!NT_SUCCESS(ntStatus)) { PoStartNextPowerIrp(Irp); FreeBT_DbgPrint(3, ("FBTUSB: FinishDevPoUpIrp::")); FreeBT_IoDecrement(DeviceExtension); return STATUS_SUCCESS; } SetDeviceFunctional(DeviceObject, Irp, DeviceExtension); FreeBT_DbgPrint(3, ("FBTUSB: FinishDevPoUpIrp: Leaving\n")); return STATUS_MORE_PROCESSING_REQUIRED; }
NTSTATUS FinishDevPoUpIrp( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PDEVICE_EXTENSION DeviceExtension ) /*++ Routine Description: completion routine for the device power UP irp with minor function IRP_MN_SET_POWER. Arguments: DeviceObject - pointer to device object Irp - I/O request packet DeviceExtension - pointer to device extension Return Value: NT status value --*/ { NTSTATUS ntStatus; // // initialize variables // ntStatus = Irp->IoStatus.Status; MobiUsb_DbgPrint(3, ("file mobipwr: FinishDevPoUpIrp - begins\n")); if(Irp->PendingReturned) { IoMarkIrpPending(Irp); } if(!NT_SUCCESS(ntStatus)) { PoStartNextPowerIrp(Irp); MobiUsb_DbgPrint(3, ("file mobipwr: FinishDevPoUpIrp::")); MobiUsb_IoDecrement(DeviceExtension); return STATUS_SUCCESS; } SetDeviceFunctional(DeviceObject, Irp, DeviceExtension); MobiUsb_DbgPrint(3, ("file mobipwr: FinishDevPoUpIrp - ends\n")); return STATUS_MORE_PROCESSING_REQUIRED; }