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) 87 EVT_WDF_INTERRUPT_ISR(
108 EVT_WDF_INTERRUPT_SYNCHRONIZE(
127 EVT_WDF_INTERRUPT_DPC(
146 EVT_WDF_INTERRUPT_WORKITEM(
168 EVT_WDF_INTERRUPT_ENABLE(
190 EVT_WDF_INTERRUPT_DISABLE(
296 #pragma warning(push) 297 #pragma warning(disable: 4324) 368 (
STDCALL *PFN_WDFINTERRUPTCREATE)(
452 (
STDCALL *PFN_WDFINTERRUPTSYNCHRONIZE)(
466 WdfInterruptSynchronize(
485 (
STDCALL *PFN_WDFINTERRUPTACQUIRELOCK)(
497 WdfInterruptAcquireLock(
514 (
STDCALL *PFN_WDFINTERRUPTRELEASELOCK)(
526 WdfInterruptReleaseLock(
543 (
STDCALL *PFN_WDFINTERRUPTENABLE)(
568 (
STDCALL *PFN_WDFINTERRUPTDISABLE)(
618 (
STDCALL *PFN_WDFINTERRUPTGETINFO)(
647 (
STDCALL *PFN_WDFINTERRUPTSETPOLICY)(
663 WdfInterruptSetPolicy(
684 (
STDCALL *PFN_WDFINTERRUPTSETEXTENDEDPOLICY)(
696 WdfInterruptSetExtendedPolicy(
738 (
STDCALL *PFN_WDFINTERRUPTTRYTOACQUIRELOCK)(
752 WdfInterruptTryToAcquireLock(
769 (
STDCALL *PFN_WDFINTERRUPTREPORTACTIVE)(
779 WdfInterruptReportActive(
794 (
STDCALL *PFN_WDFINTERRUPTREPORTINACTIVE)(
804 WdfInterruptReportInactive(
814 #endif // (NTDDI_VERSION >= NTDDI_WIN2K) 819 #endif // _WDFINTERRUPT_H_ PFN_WDF_INTERRUPT_DISABLE EvtInterruptDisable
struct _WDF_INTERRUPT_EXTENDED_POLICY * PWDF_INTERRUPT_EXTENDED_POLICY
WDF_INTERRUPT_POLICY Policy
PCM_PARTIAL_RESOURCE_DESCRIPTOR InterruptTranslated
typedef _Function_class_(EVT_WDF_INTERRUPT_ISR) _IRQL_requires_same_ _IRQL_requires_min_(PASSIVE_LEVEL) BOOLEAN STDCALL EVT_WDF_INTERRUPT_ISR(_In_ WDFINTERRUPT Interrupt
_Must_inspect_result_ WDFAPI PKINTERRUPT(STDCALL * PFN_WDFINTERRUPTWDMGETINTERRUPT)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
_Must_inspect_result_ FORCEINLINE PKINTERRUPT WdfInterruptWdmGetInterrupt(_In_ WDFINTERRUPT Interrupt)
_In_ WDFOBJECT AssociatedObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG Configuration
enum _WDF_TRI_STATE WDF_TRI_STATE
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
WDF_EXTERN_C_START enum _WDF_INTERRUPT_POLARITY WDF_INTERRUPT_POLARITY
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
FORCEINLINE WDFDEVICE WdfInterruptGetDevice(_In_ WDFINTERRUPT Interrupt)
FORCEINLINE BOOLEAN WdfInterruptQueueDpcForIsr(_In_ WDFINTERRUPT Interrupt)
#define _When_(expr, annos)
struct _WDF_INTERRUPT_INFO WDF_INTERRUPT_INFO
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
_Must_inspect_result_ _In_ _Acquires_lock_(_Curr_)) WDFINTERRUPT Interrupt)
struct _WDF_INTERRUPT_CONFIG WDF_INTERRUPT_CONFIG
PFN_WDF_INTERRUPT_ENABLE EvtInterruptEnable
KAFFINITY TargetProcessorSet
EVT_WDF_INTERRUPT_SYNCHRONIZE * PFN_WDF_INTERRUPT_SYNCHRONIZE
#define _IRQL_requires_min_(irql)
FORCEINLINE VOID WDF_INTERRUPT_CONFIG_INIT(_Out_ PWDF_INTERRUPT_CONFIG Configuration, _In_ PFN_WDF_INTERRUPT_ISR EvtInterruptIsr, _In_opt_ PFN_WDF_INTERRUPT_DPC EvtInterruptDpc)
#define WDF_EXTERN_C_START
enum _WDF_INTERRUPT_POLICY WDF_INTERRUPT_POLICY
enum _KINTERRUPT_MODE KINTERRUPT_MODE
#define _IRQL_requires_same_
struct _KINTERRUPT * PKINTERRUPT
#define _IRQL_requires_(irql)
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFINTERRUPT _Out_ PWDF_INTERRUPT_INFO Info
#define _Releases_lock_(lock)
EVT_WDF_INTERRUPT_WORKITEM * PFN_WDF_INTERRUPT_WORKITEM
enum _WDF_INTERRUPT_POLICY * PWDF_INTERRUPT_POLICY
_Must_inspect_result_ _In_ WDFDEVICE Device
enum _WDF_INTERRUPT_PRIORITY WDF_INTERRUPT_PRIORITY
enum _WDF_INTERRUPT_PRIORITY * PWDF_INTERRUPT_PRIORITY
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY _In_ KAFFINITY TargetProcessorSet
_In_ _Requires_lock_not_held_(_Curr_) _Acquires_lock_(_Curr_) WDFINTERRUPT Interrupt)
EVT_WDF_INTERRUPT_ISR * PFN_WDF_INTERRUPT_ISR
EVT_WDF_INTERRUPT_ENABLE * PFN_WDF_INTERRUPT_ENABLE
WDFAPI BOOLEAN(STDCALL * PFN_WDFINTERRUPTQUEUEWORKITEMFORISR)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
WDFAPI WDFDEVICE(STDCALL * PFN_WDFINTERRUPTGETDEVICE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
_In_ WDFDEVICE AssociatedDevice
_Must_inspect_result_ _Post_satisfies_(return==1||return==0) _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN(STDCALL *PFN_WDFINTERRUPTTRYTOACQUIRELOCK)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
PFN_WDF_INTERRUPT_WORKITEM EvtInterruptWorkItem
PFN_WDF_INTERRUPT_DPC EvtInterruptDpc
#define _Must_inspect_result_
_Must_inspect_result_ _In_ WDFDEVICE Device
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
_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...
FORCEINLINE BOOLEAN WdfInterruptQueueWorkItemForIsr(_In_ WDFINTERRUPT Interrupt)
WDF_EXTERN_C_START enum _WDF_INTERRUPT_POLARITY * PWDF_INTERRUPT_POLARITY
WDFAPI BOOLEAN(STDCALL * PFN_WDFINTERRUPTQUEUEDPCFORISR)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFINTERRUPT Interrupt)
EVT_WDF_INTERRUPT_DISABLE * PFN_WDF_INTERRUPT_DISABLE
BOOLEAN AutomaticSerialization
WDF_INTERRUPT_PRIORITY Priority
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFINTERRUPTCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
#define RtlZeroMemory(Destination, Length)
WDF_INTERRUPT_POLARITY Polarity
FORCEINLINE VOID WDF_INTERRUPT_EXTENDED_POLICY_INIT(_Out_ PWDF_INTERRUPT_EXTENDED_POLICY ExtendedPolicy)
GROUP_AFFINITY TargetProcessorSetAndGroup
WDF_TRI_STATE ShareVector
_In_ WDFINTERRUPT _In_ PWDF_INTERRUPT_EXTENDED_POLICY PolicyAndGroup
struct _WDF_INTERRUPT_EXTENDED_POLICY WDF_INTERRUPT_EXTENDED_POLICY
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY Policy
WDF_TRI_STATE ReportInactiveOnPowerDown
PFN_WDF_INTERRUPT_ISR EvtInterruptIsr
DECLSPEC_ALIGN(8) USHORT Group
struct _WDF_INTERRUPT_CONFIG * PWDF_INTERRUPT_CONFIG
EVT_WDF_INTERRUPT_DPC * PFN_WDF_INTERRUPT_DPC
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
FORCEINLINE VOID WDF_INTERRUPT_INFO_INIT(_Out_ PWDF_INTERRUPT_INFO Info)
PCM_PARTIAL_RESOURCE_DESCRIPTOR InterruptRaw