#include <ntoskrnl.h>
#include <debug.h>
Go to the source code of this file.
|
void | KiInterruptDispatch (void) |
|
VOID NTAPI | KeInitializeInterrupt (IN PKINTERRUPT Interrupt, IN PKSERVICE_ROUTINE ServiceRoutine, IN PVOID ServiceContext, IN PKSPIN_LOCK SpinLock, IN ULONG Vector, IN KIRQL Irql, IN KIRQL SynchronizeIrql, IN KINTERRUPT_MODE InterruptMode, IN BOOLEAN ShareVector, IN CHAR ProcessorNumber, IN BOOLEAN FloatingSave) |
|
BOOLEAN NTAPI | KeConnectInterrupt (IN PKINTERRUPT Interrupt) |
|
BOOLEAN NTAPI | KeDisconnectInterrupt (IN PKINTERRUPT Interrupt) |
|
BOOLEAN NTAPI | KeSynchronizeExecution (IN OUT PKINTERRUPT Interrupt, IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine, IN PVOID SynchronizeContext OPTIONAL) |
|
◆ NDEBUG
◆ KeConnectInterrupt()
Definition at line 81 of file interrupt.c.
114 DPRINT1(
"HalEnableSystemInterrupt failed\n");
BOOLEAN NTAPI HalEnableSystemInterrupt(IN ULONG Vector, IN KIRQL Irql, IN KINTERRUPT_MODE InterruptMode)
UCHAR KiUnexpectedRange[]
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
void __cdecl __debugbreak(void)
FORCEINLINE PVOID KeQueryInterruptHandler(IN ULONG Vector)
FORCEINLINE VOID KeRegisterInterruptHandler(IN ULONG Vector, IN PVOID Handler)
#define InitializeListHead(ListHead)
UCHAR KiUnexpectedRangeEnd[]
void KiInterruptDispatch(void)
#define MAXIMUM_IDTVECTOR
Referenced by IoConnectInterrupt().
◆ KeDisconnectInterrupt()
◆ KeInitializeInterrupt()
VOID NTAPI KeInitializeInterrupt |
( |
IN PKINTERRUPT |
Interrupt, |
|
|
IN PKSERVICE_ROUTINE |
ServiceRoutine, |
|
|
IN PVOID |
ServiceContext, |
|
|
IN PKSPIN_LOCK |
SpinLock, |
|
|
IN ULONG |
Vector, |
|
|
IN KIRQL |
Irql, |
|
|
IN KIRQL |
SynchronizeIrql, |
|
|
IN KINTERRUPT_MODE |
InterruptMode, |
|
|
IN BOOLEAN |
ShareVector, |
|
|
IN CHAR |
ProcessorNumber, |
|
|
IN BOOLEAN |
FloatingSave |
|
) |
| |
Definition at line 29 of file interrupt.c.
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
UCHAR KiInterruptDispatchTemplate[16]
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN ShareVector
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL SynchronizeIrql
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID ServiceContext
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN _In_ KAFFINITY _In_ BOOLEAN FloatingSave
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG Vector
struct _KINTERRUPT KINTERRUPT
#define RtlCopyMemory(Destination, Source, Length)
_In_ PKSERVICE_ROUTINE ServiceRoutine
Referenced by IoConnectInterrupt().
◆ KeSynchronizeExecution()
Definition at line 142 of file interrupt.c.
#define KeLowerIrql(oldIrql)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
VOID NTAPI KeAcquireSpinLockAtDpcLevel(IN PKSPIN_LOCK SpinLock)
KIRQL FASTCALL KfRaiseIrql(IN KIRQL NewIrql)
_In_ PKSYNCHRONIZE_ROUTINE SynchronizeRoutine
VOID NTAPI KeReleaseSpinLockFromDpcLevel(IN PKSPIN_LOCK SpinLock)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
_In_ PKSYNCHRONIZE_ROUTINE _In_opt_ __drv_aliasesMem PVOID SynchronizeContext
Referenced by _SynchronizeExecution(), FdoCallHWInitialize(), InPortRemoveDevice(), InPortStartDevice(), KspSynchronizedEventRoutine(), NdisMSynchronizeWithInterrupt(), ScsiPortAllocateAdapterChannel(), ScsiPortDpcForIsr(), ScsiPortIoTimer(), ScsiPortStartIo(), SerialDeviceControl(), SpiAdapterControl(), StreamClassStartDevice(), TestSynchronizeExecution(), and VideoPortSynchronizeExecution().
◆ KiInterruptDispatch()
◆ KiInterruptDispatchTemplate
UCHAR KiInterruptDispatchTemplate[16] |
◆ KiUnexpectedRange
UCHAR KiUnexpectedRange[] |
◆ KiUnexpectedRangeEnd
UCHAR KiUnexpectedRangeEnd[] |