26#ifndef _WDFINTERRUPT_H_
27#define _WDFINTERRUPT_H_
31 #define WDF_EXTERN_C extern "C"
32 #define WDF_EXTERN_C_START extern "C" {
33 #define WDF_EXTERN_C_END }
36 #define WDF_EXTERN_C_START
37 #define WDF_EXTERN_C_END
45#if (NTDDI_VERSION >= NTDDI_WIN2K)
108EVT_WDF_INTERRUPT_SYNCHRONIZE(
127EVT_WDF_INTERRUPT_DPC(
146EVT_WDF_INTERRUPT_WORKITEM(
168EVT_WDF_INTERRUPT_ENABLE(
190EVT_WDF_INTERRUPT_DISABLE(
297#pragma warning(disable: 4324)
368(
STDCALL *PFN_WDFINTERRUPTCREATE)(
452(
STDCALL *PFN_WDFINTERRUPTSYNCHRONIZE)(
466WdfInterruptSynchronize(
485(
STDCALL *PFN_WDFINTERRUPTACQUIRELOCK)(
497WdfInterruptAcquireLock(
514(
STDCALL *PFN_WDFINTERRUPTRELEASELOCK)(
526WdfInterruptReleaseLock(
543(
STDCALL *PFN_WDFINTERRUPTENABLE)(
568(
STDCALL *PFN_WDFINTERRUPTDISABLE)(
618(
STDCALL *PFN_WDFINTERRUPTGETINFO)(
647(
STDCALL *PFN_WDFINTERRUPTSETPOLICY)(
663WdfInterruptSetPolicy(
684(
STDCALL *PFN_WDFINTERRUPTSETEXTENDEDPOLICY)(
696WdfInterruptSetExtendedPolicy(
738(
STDCALL *PFN_WDFINTERRUPTTRYTOACQUIRELOCK)(
752WdfInterruptTryToAcquireLock(
769(
STDCALL *PFN_WDFINTERRUPTREPORTACTIVE)(
779WdfInterruptReportActive(
794(
STDCALL *PFN_WDFINTERRUPTREPORTINACTIVE)(
804WdfInterruptReportInactive(
#define _Releases_lock_(lock)
#define _IRQL_requires_same_
#define _IRQL_requires_min_(irql)
#define _IRQL_requires_(irql)
#define _Must_inspect_result_
#define _Function_class_(n)
struct _KINTERRUPT * PKINTERRUPT
enum _KINTERRUPT_MODE KINTERRUPT_MODE
BOOLEAN AutomaticSerialization
WDF_TRI_STATE ShareVector
PFN_WDF_INTERRUPT_WORKITEM EvtInterruptWorkItem
PFN_WDF_INTERRUPT_DPC EvtInterruptDpc
PCM_PARTIAL_RESOURCE_DESCRIPTOR InterruptTranslated
WDF_TRI_STATE ReportInactiveOnPowerDown
PFN_WDF_INTERRUPT_DISABLE EvtInterruptDisable
PFN_WDF_INTERRUPT_ISR EvtInterruptIsr
PFN_WDF_INTERRUPT_ENABLE EvtInterruptEnable
PCM_PARTIAL_RESOURCE_DESCRIPTOR InterruptRaw
GROUP_AFFINITY TargetProcessorSetAndGroup
WDF_INTERRUPT_POLICY Policy
WDF_INTERRUPT_PRIORITY Priority
DECLSPEC_ALIGN(8) USHORT Group
KAFFINITY TargetProcessorSet
WDF_INTERRUPT_POLARITY Polarity
#define RtlZeroMemory(Destination, Length)
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfInterruptDisableTableIndex
@ WdfInterruptAcquireLockTableIndex
@ WdfInterruptSetExtendedPolicyTableIndex
@ WdfInterruptWdmGetInterruptTableIndex
@ WdfInterruptGetDeviceTableIndex
@ WdfInterruptReportInactiveTableIndex
@ WdfInterruptSetPolicyTableIndex
@ WdfInterruptTryToAcquireLockTableIndex
@ WdfInterruptCreateTableIndex
@ WdfInterruptQueueDpcForIsrTableIndex
@ WdfInterruptQueueWorkItemForIsrTableIndex
@ WdfInterruptReportActiveTableIndex
@ WdfInterruptReleaseLockTableIndex
@ WdfInterruptEnableTableIndex
@ WdfInterruptSynchronizeTableIndex
@ WdfInterruptGetInfoTableIndex
_Must_inspect_result_ FORCEINLINE PKINTERRUPT WdfInterruptWdmGetInterrupt(_In_ WDFINTERRUPT Interrupt)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
EVT_WDF_INTERRUPT_DISABLE * PFN_WDF_INTERRUPT_DISABLE
WDFAPI BOOLEAN(STDCALL * PFN_WDFINTERRUPTQUEUEDPCFORISR)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
struct _WDF_INTERRUPT_INFO WDF_INTERRUPT_INFO
FORCEINLINE VOID WDF_INTERRUPT_EXTENDED_POLICY_INIT(_Out_ PWDF_INTERRUPT_EXTENDED_POLICY ExtendedPolicy)
_In_ WDFINTERRUPT _Out_ PWDF_INTERRUPT_INFO Info
_Must_inspect_result_ _In_ WDFDEVICE Device
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY _In_ KAFFINITY TargetProcessorSet
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG Configuration
struct _WDF_INTERRUPT_CONFIG WDF_INTERRUPT_CONFIG
@ WdfIrqPriorityUndefined
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
_In_ WDFINTERRUPT _In_ PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
enum _WDF_INTERRUPT_PRIORITY WDF_INTERRUPT_PRIORITY
_In_ _Requires_lock_held_(_Curr_) _Releases_lock_(_Curr_) WDFINTERRUPT Interrupt)
Returns the quota, depending on the given pool type of the quota in question. The routine is used exc...
enum _WDF_INTERRUPT_POLICY WDF_INTERRUPT_POLICY
FORCEINLINE WDFDEVICE WdfInterruptGetDevice(_In_ WDFINTERRUPT Interrupt)
_Must_inspect_result_ _In_ _Acquires_lock_(_Curr_)) WDFINTERRUPT Interrupt)
#define WDF_EXTERN_C_START
_In_ WDFDEVICE AssociatedDevice
EVT_WDF_INTERRUPT_DPC * PFN_WDF_INTERRUPT_DPC
enum _WDF_INTERRUPT_POLICY * PWDF_INTERRUPT_POLICY
EVT_WDF_INTERRUPT_ISR * PFN_WDF_INTERRUPT_ISR
_In_ _Requires_lock_not_held_(_Curr_) _Acquires_lock_(_Curr_) WDFINTERRUPT Interrupt)
FORCEINLINE BOOLEAN WdfInterruptQueueWorkItemForIsr(_In_ WDFINTERRUPT Interrupt)
FORCEINLINE VOID WDF_INTERRUPT_INFO_INIT(_Out_ PWDF_INTERRUPT_INFO Info)
WDF_EXTERN_C_START enum _WDF_INTERRUPT_POLARITY * PWDF_INTERRUPT_POLARITY
EVT_WDF_INTERRUPT_WORKITEM * PFN_WDF_INTERRUPT_WORKITEM
_In_ WDFOBJECT AssociatedObject
FORCEINLINE VOID WDF_INTERRUPT_CONFIG_INIT(_Out_ PWDF_INTERRUPT_CONFIG Configuration, _In_ PFN_WDF_INTERRUPT_ISR EvtInterruptIsr, _In_opt_ PFN_WDF_INTERRUPT_DPC EvtInterruptDpc)
struct _WDF_INTERRUPT_EXTENDED_POLICY * PWDF_INTERRUPT_EXTENDED_POLICY
enum _WDF_INTERRUPT_PRIORITY * PWDF_INTERRUPT_PRIORITY
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
struct _WDF_INTERRUPT_EXTENDED_POLICY WDF_INTERRUPT_EXTENDED_POLICY
@ WdfIrqPolicyOneCloseProcessor
@ WdfIrqPolicyAllCloseProcessors
@ WdfIrqPolicyAllProcessorsInMachine
@ WdfIrqPolicyMachineDefault
@ WdfIrqPolicySpecifiedProcessors
@ WdfIrqPolicySpreadMessagesAcrossAllProcessors
FORCEINLINE BOOLEAN WdfInterruptQueueDpcForIsr(_In_ WDFINTERRUPT Interrupt)
struct _WDF_INTERRUPT_CONFIG * PWDF_INTERRUPT_CONFIG
EVT_WDF_INTERRUPT_SYNCHRONIZE * PFN_WDF_INTERRUPT_SYNCHRONIZE
@ WdfInterruptPolarityUnknown
_Must_inspect_result_ WDFAPI PKINTERRUPT(STDCALL * PFN_WDFINTERRUPTWDMGETINTERRUPT)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
EVT_WDF_INTERRUPT_ENABLE * PFN_WDF_INTERRUPT_ENABLE
WDF_EXTERN_C_START enum _WDF_INTERRUPT_POLARITY WDF_INTERRUPT_POLARITY
WDFAPI BOOLEAN(STDCALL * PFN_WDFINTERRUPTQUEUEWORKITEMFORISR)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
WDFAPI WDFDEVICE(STDCALL * PFN_WDFINTERRUPTGETDEVICE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
_Must_inspect_result_ _Post_satisfies_(return==1||return==0) _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN(STDCALL *PFN_WDFINTERRUPTTRYTOACQUIRELOCK)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFINTERRUPTCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
enum _WDF_TRI_STATE WDF_TRI_STATE