ReactOS 0.4.16-dev-297-gc569aee
fxselfmanagediostatemachine.hpp
Go to the documentation of this file.
1//
2// Copyright (C) Microsoft. All rights reserved.
3//
4#ifndef _FXSELFMANAGEDIOSTATEMACHINE_H_
5#define _FXSELFMANAGEDIOSTATEMACHINE_H_
6
7//
8// This is a magical number based on inspection. If the queue overflows,
9// it is OK to increase these numbers without fear of either dependencies or
10// weird side affects.
11//
13
21};
22
38};
39
40typedef
46 );
47
50
52
53#if FX_SUPER_DBG
54 BOOLEAN EventDebugged;
55#endif
56};
57
58//
59// This type of union is done so that we can
60// 1) shrink the array element to the smallest size possible
61// 2) keep types within the structure so we can dump it in the debugger
62//
64 struct {
73 } E;
74
76};
77
78//
79// This type of union is done so that we can
80// 1) shrink the array element to the smallest size possible
81// 2) keep types within the structure so we can dump it in the debugger
82//
84 struct {
93 } S;
94
96};
97
100
102
104};
105
107
108public:
110 __in FxPkgPnp* PkgPnp
111 );
112
113 static
116 __deref_out FxSelfManagedIoMachine** SelfManagedIoMachine,
117 __in FxPkgPnp* PkgPnp
118 );
119
120
121 //
122 // Sets event callbacks
123 //
124 VOID
127 );
128
132 VOID
133 )
134 {
136 }
137
141 VOID
142 )
143 {
145 }
146
147 VOID
149 VOID
150 )
151 {
153 }
154
155 VOID
157 VOID
158 )
159 {
161 }
162
163protected:
168 );
169
170 static
172 Init(
175 );
176
177 static
182 );
183
184 static
189 );
190
191 static
193 Flushing(
196 );
197
198 static
200 Cleanup(
203 );
204
205 WDFDEVICE
207 VOID
208 );
209
210public:
216
217protected:
219
221
222 // uses FxSelfManagedIoStates values
224
226
228
229 // extra padded byte is put in here by the compiler
230
232
234
236
243};
244
245#endif // _FXSELFMANAGEDIOSTATEMACHINE_H_
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
static const FxSelfManagedIoTargetState m_StartedStates[]
static FxSelfManagedIoStates Suspending(__in FxSelfManagedIoMachine *This, __out PNTSTATUS Status)
static const FxSelfManagedIoTargetState m_InitFailedStates[]
FxSelfManagedIoMachineStateHistory m_States
static FxSelfManagedIoStates Flushing(__in FxSelfManagedIoMachine *This, __out PNTSTATUS Status)
FxPnpDeviceSelfManagedIoInit m_DeviceSelfManagedIoInit
VOID InitializeMachine(__in PWDF_PNPPOWER_EVENT_CALLBACKS Callbacks)
FxPnpDeviceSelfManagedIoCleanup m_DeviceSelfManagedIoCleanup
static NTSTATUS _CreateAndInit(__deref_out FxSelfManagedIoMachine **SelfManagedIoMachine, __in FxPkgPnp *PkgPnp)
_Must_inspect_result_ NTSTATUS ProcessEvent(__in FxSelfManagedIoEvents Event)
static const FxSelfManagedIoTargetState m_StoppedStates[]
FxPnpDeviceSelfManagedIoFlush m_DeviceSelfManagedIoFlush
_Must_inspect_result_ NTSTATUS Start(VOID)
FxSelfManagedIoMachineEventHistory m_Events
static const FxSelfManagedIoTargetState m_FailedStates[]
static const FxSelfManagedIoStateTable m_StateTable[]
static FxSelfManagedIoStates Restarting(__in FxSelfManagedIoMachine *This, __out PNTSTATUS Status)
_Must_inspect_result_ NTSTATUS Suspend(VOID)
static const FxSelfManagedIoTargetState m_CreatedStates[]
FxPnpDeviceSelfManagedIoSuspend m_DeviceSelfManagedIoSuspend
static const FxSelfManagedIoTargetState m_FlushedStates[]
FxPnpDeviceSelfManagedIoRestart m_DeviceSelfManagedIoRestart
#define __in
Definition: dbghelp.h:35
#define __deref_out
Definition: dbghelp.h:26
#define __out
Definition: dbghelp.h:62
static const WCHAR Cleanup[]
Definition: register.c:80
const UCHAR FxSelfManagedIoEventQueueDepth
_Must_inspect_result_ FxSelfManagedIoStates(* PFN_SELF_MANAGED_IO_STATE_ENTRY_FUNCTION)(__in FxSelfManagedIoMachine *, __out PNTSTATUS Status)
Status
Definition: gdiplustypes.h:25
* PNTSTATUS
Definition: strlen.c:14
#define _Must_inspect_result_
Definition: no_sal2.h:62
PFN_SELF_MANAGED_IO_STATE_ENTRY_FUNCTION StateFunc
const FxSelfManagedIoTargetState * TargetStates
uint32_t ULONG
Definition: typedefs.h:59
struct FxSelfManagedIoMachineEventHistory::@4819 E
UCHAR History[FxSelfManagedIoEventQueueDepth]
UCHAR History[FxSelfManagedIoEventQueueDepth]
struct FxSelfManagedIoMachineStateHistory::@4820 S
unsigned char UCHAR
Definition: xmlstorage.h:181
unsigned char BYTE
Definition: xxhash.c:193