49 ULONG PciState, TimeoutEntry, PmcsrOffset, TryCount;
91 Interval.QuadPart = -10 * TimeoutEntry;
109 PCI_VERIFIER_DETECTED_VIOLATION,
139 DPRINT1(
"PCIX - Cannot disable decodes on this device, ignoring PM request...\n");
148 DeviceExtension->CapabilitiesPtr,
187 DPRINT1(
"PCIX - No PM on this device, ignoring request\n");
194 if (DeviceState < DeviceExtension->
PowerState.CurrentDeviceState)
234 DPRINT1(
"PCIX - Bus failed to enter device state %lu (0x%08lx)\n",
294 DPRINT1(
"PCIX - Could not request device state %lu (0x%08lx)\n",
312 DPRINT1(
"PCIX - Bus wake arming is not implemented, passing wait-wake down\n");
327 DeviceExtension->PowerState.CurrentDeviceState =
State.DeviceState;
331 DeviceExtension->PowerState.CurrentSystemState =
State.SystemState;
332 if (DeviceExtension->DeviceState !=
PciStarted)
345 PoCallDriver(DeviceExtension->AttachedDeviceObject,
Irp);
360 DPRINT1(
"PCIX - Wake-aware power queries are not implemented, accepting the state\n");
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
_Check_return_ _In_ ULONG _In_ DEVICE_POWER_STATE DevicePowerState
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI PciPassIrpFromFdoToPdo(IN PPCI_FDO_EXTENSION DeviceExtension, IN PIRP Irp)
NTSTATUS NTAPI PciSetResources(IN PPCI_PDO_EXTENSION PdoExtension, IN BOOLEAN DoReset, IN BOOLEAN SomethingSomethingDarkSide)
VOID NTAPI PciWriteDeviceConfig(IN PPCI_PDO_EXTENSION DeviceExtension, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
UCHAR NTAPI PciReadDeviceCapability(IN PPCI_PDO_EXTENSION DeviceExtension, IN UCHAR Offset, IN ULONG CapabilityId, OUT PPCI_CAPABILITIES_HEADER Buffer, IN ULONG Length)
PPCI_VERIFIER_DATA NTAPI PciVerifierRetrieveFailureData(IN ULONG FailureCode)
BOOLEAN NTAPI PciCanDisableDecodes(IN PPCI_PDO_EXTENSION DeviceExtension, IN PPCI_COMMON_HEADER Config, IN ULONGLONG HackFlags, IN BOOLEAN ForPowerDown)
VOID NTAPI PciReadDeviceConfig(IN PPCI_PDO_EXTENSION DeviceExtension, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
static REQUEST_POWER_COMPLETE PciFdoDevicePowerCompletion
NTSTATUS NTAPI PciFdoWaitWake(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
NTSTATUS NTAPI PciFdoSetPowerState(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
ULONG PciPowerDelayTable[PowerDeviceD3 *PowerDeviceD3]
NTSTATUS NTAPI PciStallForPowerChange(IN PPCI_PDO_EXTENSION PdoExtension, IN DEVICE_POWER_STATE PowerState, IN ULONG_PTR CapOffset)
NTSTATUS NTAPI PciSetPowerManagedDevicePowerState(IN PPCI_PDO_EXTENSION DeviceExtension, IN DEVICE_POWER_STATE DeviceState, IN BOOLEAN IrpSet)
NTSTATUS NTAPI PciFdoIrpQueryPower(IN PIRP Irp, IN PIO_STACK_LOCATION IoStackLocation, IN PPCI_FDO_EXTENSION DeviceExtension)
static IO_COMPLETION_ROUTINE PciFdoSystemPowerCompletion
#define KeGetCurrentIrql()
#define KeDelayExecutionThread(mode, foo, t)
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
#define KeStallExecutionProcessor(MicroSeconds)
__in UCHAR __in POWER_STATE __in_opt PVOID __in PIO_STATUS_BLOCK IoStatus
#define _In_reads_opt_(s)
#define UNREFERENCED_PARAMETER(P)
#define IoCopyCurrentIrpStackLocationToNext(Irp)
#define IoCompleteRequest
ULONG NTAPI KeQueryTimeIncrement(VOID)
VOID NTAPI PoStartNextPowerIrp(IN PIRP Irp)
NTSTATUS NTAPI PoRequestPowerIrp(_In_ PDEVICE_OBJECT DeviceObject, _In_ UCHAR MinorFunction, _In_ POWER_STATE PowerState, _In_opt_ PREQUEST_POWER_COMPLETE CompletionFunction, _In_opt_ __drv_aliasesMem PVOID Context, _Outptr_opt_ PIRP *pIrp)
VOID __cdecl VfFailDeviceNode(IN PDEVICE_OBJECT PhysicalDeviceObject, IN ULONG BugCheckMajorCode, IN ULONG BugCheckMinorCode, IN VF_FAILURE_CLASS FailureClass, IN OUT PULONG AssertionControl, IN PSTR DebuggerMessageText, IN PSTR ParameterFormatString,...)
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
#define STATUS_DEVICE_PROTOCOL_ERROR
#define PCI_HACK_NO_PM_CAPS
#define STATUS_MORE_PROCESSING_REQUIRED
union _IO_STACK_LOCATION::@1814 Parameters
struct _IO_STACK_LOCATION::@5020::@5056 Power
PDEVICE_OBJECT FunctionalDeviceObject
PCI_POWER_STATE PowerState
struct _PCI_PMC::_PM_SUPPORT Support
PCI_CAPABILITIES_HEADER Header
union _PCI_PM_CAPABILITY::@5067 PMCSR
union _PCI_PM_CAPABILITY::@5066 PMC
DEVICE_POWER_STATE CurrentDeviceState
VF_FAILURE_CLASS FailureClass
PCHAR DebuggerMessageText
#define FIELD_OFFSET(t, f)
_In_ PIO_STACK_LOCATION IoStackLocation
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFDEVICE _Out_ PWDF_DEVICE_STATE DeviceState
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
_In_ UCHAR _In_ UCHAR MinorFunction
#define STATUS_CONTINUE_COMPLETION
#define PCI_CAPABILITY_ID_POWER_MANAGEMENT