ASSERT3U(KeGetCurrentIrql(), == , PASSIVE_LEVEL);
+ if (__PdoGetDevicePowerState(Pdo) == PowerDeviceD0)
+ goto done;
+
KeRaiseIrql(DISPATCH_LEVEL, &Irql);
status = XENBUS_SUSPEND(Acquire, &Pdo->SuspendInterface);
if (!NT_SUCCESS(status))
goto fail4;
+done:
#pragma prefast(suppress:28123)
(VOID) IoSetDeviceInterfaceState(&Pdo->Dx->Link, TRUE);
#pragma prefast(suppress:28123)
(VOID) IoSetDeviceInterfaceState(&Pdo->Dx->Link, FALSE);
+ if (__PdoGetDevicePowerState(Pdo) == PowerDeviceD3)
+ goto done;
+
XENCONS_CONSOLE_ABI(D0ToD3, &Pdo->Abi);
KeRaiseIrql(DISPATCH_LEVEL, &Irql);
KeLowerIrql(Irql);
+done:
Trace("(%s) <====\n", __PdoGetName(Pdo));
}