ReactOS  0.4.15-dev-2700-g4b4ffa9
fxioqueuecallbacks.hpp
Go to the documentation of this file.
1 /*++
2 
3 Copyright (c) Microsoft Corporation
4 
5 Module Name:
6 
7  FxIoQueueCallbacks.h
8 
9 Abstract:
10 
11  This module implements the I/O package queue object callbacks
12 
13 Author:
14 
15 
16 
17 
18 Environment:
19 
20  Both kernel and user mode
21 
22 Revision History:
23 
24 --*/
25 
26 #ifndef _FXIOQUEUECALLBACKS_H_
27 #define _FXIOQUEUECALLBACKS_H_
28 
29 //
30 // These delegates are in a seperate file since there are many
31 //
32 
33 //
34 // EvtIoDefault callback delegate
35 //
37 
38 public:
40 
42  VOID
43  ) :
45  {
46  Method = NULL;
47  }
48 
49  void
51  __in WDFQUEUE Queue,
52  __in WDFREQUEST Request
53  )
54  {
55  if (Method != NULL) {
56  KIRQL irql = 0;
57 
61  }
62  }
63 };
64 
65 
66 //
67 // EvtIoStop callback delegate
68 //
70 
71 public:
73 
75  VOID
76  ) :
78  {
79  Method = NULL;
80  }
81 
82  void
84  __in WDFQUEUE Queue,
85  __in WDFREQUEST Request,
87  )
88  {
89  if (Method != NULL) {
90  KIRQL irql = 0;
91 
95  }
96  }
97 };
98 
99 //
100 // EvtIoResume callback delegate
101 //
103 
104 public:
106 
108  VOID
109  ) :
111  {
112  Method = NULL;
113  }
114 
115  void
117  __in WDFQUEUE Queue,
118  __in WDFREQUEST Request
119  )
120  {
121  if (Method != NULL) {
122  KIRQL irql = 0;
123 
125  Method(Queue, Request);
126  CallbackEnd(irql);
127  }
128  }
129 };
130 
131 //
132 // EvtIoRead callback delegate
133 //
135 
136 public:
138 
140  VOID
141  ) :
143  {
144  Method = NULL;
145  }
146 
147  void
149  __in WDFQUEUE Queue,
150  __in WDFREQUEST Request,
152  )
153  {
154  if (Method != NULL) {
155  KIRQL irql = 0;
156 
159  CallbackEnd(irql);
160  }
161  }
162 };
163 
164 //
165 // EvtIoWrite callback delegate
166 //
168 
169 public:
171 
173  VOID
174  ) :
176  {
177  Method = NULL;
178  }
179 
180  void
182  __in WDFQUEUE Queue,
183  __in WDFREQUEST Request,
185  )
186  {
187  if (Method != NULL) {
188  KIRQL irql = 0;
189 
192  CallbackEnd(irql);
193  }
194  }
195 };
196 
197 //
198 // EvtIoIoctl callback delegate
199 //
201 
202 public:
204 
206  VOID
207  ) :
209  {
210  Method = NULL;
211  }
212 
213  void
215  __in WDFQUEUE Queue,
216  __in WDFREQUEST Request,
220  )
221  {
222  if (Method != NULL) {
223  KIRQL irql = 0;
224 
226  Method(
227  Queue,
228  Request,
232  );
233  CallbackEnd(irql);
234  }
235  }
236 };
237 
238 //
239 // EvtIoInternalIoctl callback delegate
240 //
242 
243 public:
245 
247  VOID
248  ) :
250  {
251  Method = NULL;
252  }
253 
254  void
256  __in WDFQUEUE Queue,
257  __in WDFREQUEST Request,
260  __in ULONG IoInternalControlCode
261  )
262  {
263  if (Method != NULL) {
264  KIRQL irql = 0;
265 
267  Method(
268  Queue,
269  Request,
272  IoInternalControlCode
273  );
274  CallbackEnd(irql);
275  }
276  }
277 };
278 
279 //
280 // EvtIoQueueStatus callback delegate
281 //
283 
284 public:
286 
288  VOID
289  ) :
291  {
292  Method = NULL;
293  }
294 
295  void
297  __in WDFQUEUE Queue,
299  )
300  {
301  if (Method != NULL) {
302  KIRQL irql = 0;
303 
305  Method(Queue, Context);
306  CallbackEnd(irql);
307  }
308  }
309 };
310 
312 
313 public:
315 
317  VOID
318  ) :
320  {
321  Method = NULL;
322  }
323 
324  void
326  __in WDFQUEUE Queue,
327  __in WDFREQUEST Request
328  )
329  {
330  if (Method != NULL) {
331  KIRQL irql = 0;
332 
334  Method(Queue, Request);
335  CallbackEnd(irql);
336  }
337  }
338 };
339 
340 
342 
343 public:
345 
347  VOID
348  ) :
349  FxCallback()
350  {
351  Method = NULL;
352  }
353 
355  NTSTATUS
357  __in WDFQUEUE Queue,
358  __in WDFREQUEST Request
359  )
360  {
361  ASSERT(Method != NULL);
362  return Method(Queue, Request);
363  }
364 };
365 
367 
368 public:
370 
372  VOID
373  ) :
374  FxCallback()
375  {
376  Method = NULL;
377  }
378 
380  NTSTATUS
382  __in WDFQUEUE Queue,
383  __in WDFREQUEST Request
384  )
385  {
386  ASSERT(Method != NULL);
387  return Method(Queue, Request);
388  }
389 };
390 
392 public:
394 
396  VOID
397  ) :
398  FxCallback()
399  {
400  Method = NULL;
401  }
402 
405  __in WDFQUEUE Queue,
406  __in PIRP Irp
407  )
408  {
409  ASSERT(Method != NULL);
410  return Method(Queue, Irp);
411  }
412 };
413 
414 
415 
416 #endif // _FXIOQUEUECALLBACKS_H_
EVT_WDF_IO_QUEUE_IO_WRITE * PFN_WDF_IO_QUEUE_IO_WRITE
Definition: wdfio.h:306
EVT_WDF_IO_QUEUE_IO_READ * PFN_WDF_IO_QUEUE_IO_READ
Definition: wdfio.h:289
PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS Method
_Must_inspect_result_ NTSTATUS Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request)
#define _Must_inspect_result_
Definition: no_sal2.h:62
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
__inline void CallbackStart(__out PKIRQL PreviousIrql)
Definition: fxcallback.hpp:115
PFN_WDF_IO_QUEUE_IO_WRITE Method
PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL Method
EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL * PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL
Definition: wdfio.h:327
EVT_WDF_IO_QUEUE_STATE * PFN_WDF_IO_QUEUE_STATE
Definition: wdfio.h:380
void Invoke(__in WDFQUEUE Queue, __in WDFCONTEXT Context)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
Definition: wdfdevice.h:2221
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request)
LONG NTSTATUS
Definition: precomp.h:26
enum _WDF_IO_FORWARD_PROGRESS_ACTION WDF_IO_FORWARD_PROGRESS_ACTION
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request, __in ULONG ActionFlags)
PFN_WDF_IO_QUEUE_IO_RESUME Method
EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL * PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL
Definition: wdfio.h:348
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
PFN_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST Method
KIRQL irql
Definition: wave.h:1
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request)
EVT_WDF_IO_QUEUE_IO_RESUME * PFN_WDF_IO_QUEUE_IO_RESUME
Definition: wdfio.h:272
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:318
EVT_WDF_IO_QUEUE_IO_STOP * PFN_WDF_IO_QUEUE_IO_STOP
Definition: wdfio.h:257
EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE * PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE
Definition: wdfio.h:364
PFN_WDF_IO_ALLOCATE_REQUEST_RESOURCES Method
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:318
UCHAR KIRQL
Definition: env_spec_w32.h:591
_In_ WDFREQUEST _In_ ULONG ActionFlags
Definition: wdfio.h:252
_In_ PIRP Irp
Definition: csq.h:116
PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL Method
PFN_WDF_IO_QUEUE_IO_READ Method
PFN_WDF_IO_QUEUE_IO_DEFAULT Method
_Must_inspect_result_ NTSTATUS Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request)
__inline void CallbackEnd(__in KIRQL PreviousIrql)
Definition: fxcallback.hpp:126
#define ASSERT(a)
Definition: mode.c:44
PFN_WDF_IO_QUEUE_STATE Method
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request)
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:318
EVT_WDF_IO_QUEUE_IO_DEFAULT * PFN_WDF_IO_QUEUE_IO_DEFAULT
Definition: wdfio.h:239
EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS * PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS
Definition: wdfio.h:515
EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES * PFN_WDF_IO_ALLOCATE_REQUEST_RESOURCES
Definition: wdfio.h:500
#define NULL
Definition: types.h:112
PFN_WDF_IO_QUEUE_IO_STOP Method
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request, __in ULONG Length)
unsigned int ULONG
Definition: retypes.h:1
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request, __in ULONG OutputBufferLength, __in ULONG InputBufferLength, __in ULONG IoControlCode)
#define __in
Definition: dbghelp.h:35
PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE Method
EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST * PFN_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST
Definition: wdfio.h:485
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request, __in ULONG OutputBufferLength, __in ULONG InputBufferLength, __in ULONG IoInternalControlCode)
WDF_IO_FORWARD_PROGRESS_ACTION Invoke(__in WDFQUEUE Queue, __in PIRP Irp)
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request, __in ULONG Length)