#include "wdmint.h" #pragma PAGEDCODE CInterrupt* CWDMInterrupt::create(VOID) { return new (NonPagedPool) CWDMInterrupt; } #pragma PAGEDCODE NTSTATUS CWDMInterrupt::connect(OUT PKINTERRUPT *InterruptObject, IN PKSERVICE_ROUTINE ServiceRoutine, IN PVOID ServiceContext, IN PKSPIN_LOCK SpinLock OPTIONAL, IN ULONG Vector, IN KIRQL Irql, IN KIRQL SynchronizeIrql, IN KINTERRUPT_MODE InterruptMode, IN BOOLEAN ShareVector, IN KAFFINITY ProcessorEnableMask, IN BOOLEAN FloatingSave ) { return ::IoConnectInterrupt(InterruptObject,ServiceRoutine,ServiceContext, SpinLock,Vector,Irql,SynchronizeIrql, InterruptMode,ShareVector,ProcessorEnableMask,FloatingSave); } #pragma PAGEDCODE VOID CWDMInterrupt::disconnect(IN PKINTERRUPT InterruptObject) { ::IoDisconnectInterrupt(InterruptObject); } #pragma PAGEDCODE VOID CWDMInterrupt::initializeDpcRequest(IN PDEVICE_OBJECT DeviceObject,IN PDEFERRED_FUNCTION DpcForIsr) { IoInitializeDpcRequest(DeviceObject, DpcForIsr); //::KeInitializeDpc( &(DeviceObject)->Dpc,DpcForIsr,NULL); } #pragma PAGEDCODE BOOLEAN CWDMInterrupt::synchronizeExecution (IN PKINTERRUPT Interrupt, IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine, IN PVOID SynchronizeContext) { return ::KeSynchronizeExecution (Interrupt,SynchronizeRoutine,SynchronizeContext); }