windows-nt/Source/XPSP1/NT/drivers/smartcrd/gempc430/wdmint.cpp
2020-09-26 16:20:57 +08:00

48 lines
1.3 KiB
C++

#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);
}