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*
GetInterruptPtr(VOID)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
ResetInternal(VOID)49 FxInterrupt::ResetInternal(
50 VOID
51 )
52 {
53 //
54 // Does nothing for KMDF
55 //
56 }
57
58 __inline
59 VOID
RevokeResourcesInternal(VOID)60 FxInterrupt::RevokeResourcesInternal(
61 VOID
62 )
63 {
64 //
65 // Does nothing for KMDF
66 //
67 }
68
69 __inline
70 VOID
AssignResourcesInternal(__in PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescRaw,__in PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescTrans,__in PWDF_INTERRUPT_INFO InterruptInfo)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
SetPolicyInternal(__in WDF_INTERRUPT_POLICY Policy,__in WDF_INTERRUPT_PRIORITY Priority,__in PGROUP_AFFINITY TargetProcessorSet)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
_SynchronizeExecution(__in MdInterrupt Interrupt,__in MdInterruptSynchronizeRoutine SynchronizeRoutine,__in PVOID SynchronizeContext)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