26 DPRINT(
"Idle IRP %p on port %u canceled\n",
Irp,
Pdo->m_PortNumber);
45HubPdoCreateIdleWorkItem(
66HubPdoSubmitIdleRequest(
71 PUSB_IDLE_CALLBACK_INFO
Info = (PUSB_IDLE_CALLBACK_INFO)
Stack->Parameters.DeviceIoControl.Type3InputBuffer;
75 DPRINT1(
"Idle IRP %p on port %u has no callback\n",
Irp,
Pdo->m_PortNumber);
81 DPRINT(
"Idle IRP %p submitted on port %u\n",
Irp,
Pdo->m_PortNumber);
120 DPRINT(
"Idle IRP %p was canceled before it was held\n",
Irp);
144 PUSB_IDLE_CALLBACK_INFO
Info = (PUSB_IDLE_CALLBACK_INFO)
Stack->Parameters.DeviceIoControl.Type3InputBuffer;
147 Info->IdleCallback(
Info->IdleContext);
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
BOOLEAN HasFlag(_In_ HubFlag Flag) const
WDFWORKITEM m_IdleWorkItem
BOOLEAN DisarmCancel(_In_ PIRP Irp)
BOOLEAN SelectiveSuspendSupported()
VOID CompleteIdleRequest(_In_ PIRP Irp, _In_ NTSTATUS Status)
VOID MarkRequestPending(_In_ PIRP Irp)
BOOLEAN ArmCancel(_In_ PIRP Irp)
VOID InvokeIdleCallback(_In_ PIRP Irp)
#define NT_SUCCESS(StatCode)
#define _IRQL_uses_cancel_
#define _IRQL_requires_max_(irql)
#define _IRQL_requires_(irql)
WdfWorkItemEnqueue(WorkItem)
_In_opt_ PVOID _In_ PUCXHUB_WORKITEM WorkItem
_In_ UCXUSBDEVICE _In_ PDEVICE_OBJECT Pdo
IoSetCancelRoutine(Irp, CancelRoutine)
#define IoCompleteRequest
VOID NTAPI IoReleaseCancelSpinLock(IN KIRQL Irql)
#define STATUS_NO_CALLBACK_ACTIVE
#define STATUS_POWER_STATE_INVALID
static VOID NTAPI HubIdleCancel(_Inout_ PDEVICE_OBJECT DeviceObject, _Inout_ _IRQL_uses_cancel_ PIRP Irp)
static VOID NTAPI HubIdleWorkItem(_In_ WDFWORKITEM WorkItem)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
_In_ PDEVICE_OBJECT DeviceObject
FORCEINLINE VOID WDF_OBJECT_ATTRIBUTES_INIT(_Out_ PWDF_OBJECT_ATTRIBUTES Attributes)
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
FORCEINLINE VOID WDF_WORKITEM_CONFIG_INIT(_Out_ PWDF_WORKITEM_CONFIG Config, _In_ PFN_WDF_WORKITEM EvtWorkItemFunc)