1 /*++ 2 3 Copyright (c) Microsoft Corporation 4 5 Module Name: 6 7 FxInterruptKm.hpp 8 9 Abstract: 10 11 This module implements a frameworks managed interrupt object 12 13 Author: 14 15 16 17 18 Environment: 19 20 Kernel mode only 21 22 Revision History: 23 24 25 --*/ 26 27 #ifndef _FXINTERRUPTKM_H_ 28 #define _FXINTERRUPTKM_H_ 29 30 #include "fxinterrupt.hpp" 31 32 __inline 33 struct _KINTERRUPT* 34 FxInterrupt::GetInterruptPtr( 35 VOID 36 ) 37 { 38 struct _KINTERRUPT* interrupt = m_Interrupt; 39 40 if (interrupt == NULL) { 41 interrupt = m_InterruptCaptured; 42 } 43 44 return interrupt; 45 } 46 47 __inline 48 VOID 49 FxInterrupt::ResetInternal( 50 VOID 51 ) 52 { 53 // 54 // Does nothing for KMDF 55 // 56 } 57 58 __inline 59 VOID 60 FxInterrupt::RevokeResourcesInternal( 61 VOID 62 ) 63 { 64 // 65 // Does nothing for KMDF 66 // 67 } 68 69 __inline 70 VOID 71 FxInterrupt::AssignResourcesInternal( 72 __in PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescRaw, 73 __in PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescTrans, 74 __in PWDF_INTERRUPT_INFO InterruptInfo 75 ) 76 { 77 UNREFERENCED_PARAMETER(CmDescRaw); 78 UNREFERENCED_PARAMETER(CmDescTrans); 79 UNREFERENCED_PARAMETER(InterruptInfo); 80 81 // 82 // Does nothing for KMDF 83 // 84 } 85 86 __inline 87 VOID 88 FxInterrupt::SetPolicyInternal( 89 __in WDF_INTERRUPT_POLICY Policy, 90 __in WDF_INTERRUPT_PRIORITY Priority, 91 __in PGROUP_AFFINITY TargetProcessorSet 92 ) 93 { 94 UNREFERENCED_PARAMETER(Policy); 95 UNREFERENCED_PARAMETER(Priority); 96 UNREFERENCED_PARAMETER(TargetProcessorSet); 97 98 // 99 // Does nothing for KMDF 100 // 101 } 102 103 __inline 104 BOOLEAN 105 _SynchronizeExecution( 106 __in MdInterrupt Interrupt, 107 __in MdInterruptSynchronizeRoutine SynchronizeRoutine, 108 __in PVOID SynchronizeContext 109 ) 110 { 111 return KeSynchronizeExecution(Interrupt, 112 SynchronizeRoutine, 113 SynchronizeContext); 114 } 115 116 #endif // _FXINTERRUPTKM_H_ 117