ReactOS  0.4.15-dev-3303-g1ade494
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 
40 typedef
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 
108 public:
110  __in FxPkgPnp* PkgPnp
111  );
112 
113  static
114  NTSTATUS
116  __deref_out FxSelfManagedIoMachine** SelfManagedIoMachine,
117  __in FxPkgPnp* PkgPnp
118  );
119 
120 
121  //
122  // Sets event callbacks
123  //
124  VOID
127  );
128 
130  NTSTATUS
132  VOID
133  )
134  {
136  }
137 
139  NTSTATUS
141  VOID
142  )
143  {
145  }
146 
147  VOID
149  VOID
150  )
151  {
153  }
154 
155  VOID
157  VOID
158  )
159  {
161  }
162 
163 protected:
165  NTSTATUS
166  ProcessEvent(
168  );
169 
170  static
172  Init(
175  );
176 
177  static
179  Suspending(
182  );
183 
184  static
186  Restarting(
189  );
190 
191  static
193  Flushing(
196  );
197 
198  static
200  Cleanup(
203  );
204 
205  WDFDEVICE
207  VOID
208  );
209 
210 public:
216 
217 protected:
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_
static const FxSelfManagedIoTargetState m_CreatedStates[]
* PNTSTATUS
Definition: strlen.c:14
static FxSelfManagedIoStates Flushing(__in FxSelfManagedIoMachine *This, __out PNTSTATUS Status)
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
struct FxSelfManagedIoMachineStateHistory::@4577 S
struct FxSelfManagedIoMachineEventHistory::@4576 E
LONG NTSTATUS
Definition: precomp.h:26
FxPnpDeviceSelfManagedIoFlush m_DeviceSelfManagedIoFlush
const UCHAR FxSelfManagedIoEventQueueDepth
static const FxSelfManagedIoTargetState m_StartedStates[]
_Must_inspect_result_ NTSTATUS Start(VOID)
FxPnpDeviceSelfManagedIoCleanup m_DeviceSelfManagedIoCleanup
VOID InitializeMachine(__in PWDF_PNPPOWER_EVENT_CALLBACKS Callbacks)
PFN_SELF_MANAGED_IO_STATE_ENTRY_FUNCTION StateFunc
FxSelfManagedIoMachine(__in FxPkgPnp *PkgPnp)
static const FxSelfManagedIoStateTable m_StateTable[]
static const FxSelfManagedIoTargetState m_FailedStates[]
#define __out
Definition: dbghelp.h:62
static FxSelfManagedIoStates Suspending(__in FxSelfManagedIoMachine *This, __out PNTSTATUS Status)
unsigned char BOOLEAN
static FxSelfManagedIoStates Init(__in FxSelfManagedIoMachine *This, __out PNTSTATUS Status)
FxPnpDeviceSelfManagedIoInit m_DeviceSelfManagedIoInit
static const FxSelfManagedIoTargetState m_FlushedStates[]
Status
Definition: gdiplustypes.h:24
UCHAR History[FxSelfManagedIoEventQueueDepth]
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
unsigned char UCHAR
Definition: xmlstorage.h:181
_Must_inspect_result_ NTSTATUS Suspend(VOID)
const FxSelfManagedIoTargetState * TargetStates
#define _Must_inspect_result_
Definition: ms_sal.h:558
unsigned char BYTE
Definition: xxhash.c:193
_Must_inspect_result_ NTSTATUS ProcessEvent(__in FxSelfManagedIoEvents Event)
UCHAR History[FxSelfManagedIoEventQueueDepth]
FxPnpDeviceSelfManagedIoRestart m_DeviceSelfManagedIoRestart
FxPnpDeviceSelfManagedIoSuspend m_DeviceSelfManagedIoSuspend
FxSelfManagedIoMachineEventHistory m_Events
static FxSelfManagedIoStates Restarting(__in FxSelfManagedIoMachine *This, __out PNTSTATUS Status)
#define __deref_out
Definition: dbghelp.h:26
_Must_inspect_result_ FxSelfManagedIoStates(* PFN_SELF_MANAGED_IO_STATE_ENTRY_FUNCTION)(__in FxSelfManagedIoMachine *, __out PNTSTATUS Status)
unsigned int ULONG
Definition: retypes.h:1
FxSelfManagedIoMachineStateHistory m_States
static const FxSelfManagedIoTargetState m_InitFailedStates[]
static const FxSelfManagedIoTargetState m_StoppedStates[]
#define __in
Definition: dbghelp.h:35
static NTSTATUS _CreateAndInit(__deref_out FxSelfManagedIoMachine **SelfManagedIoMachine, __in FxPkgPnp *PkgPnp)