ReactOS 0.4.15-dev-7842-g558ab78
fxioqueuecallbacks.hpp
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation
4
5Module Name:
6
7 FxIoQueueCallbacks.h
8
9Abstract:
10
11 This module implements the I/O package queue object callbacks
12
13Author:
14
15
16
17
18Environment:
19
20 Both kernel and user mode
21
22Revision 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
38public:
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
71public:
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
104public:
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
127 }
128 }
129};
130
131//
132// EvtIoRead callback delegate
133//
135
136public:
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
160 }
161 }
162};
163
164//
165// EvtIoWrite callback delegate
166//
168
169public:
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
193 }
194 }
195};
196
197//
198// EvtIoIoctl callback delegate
199//
201
202public:
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 );
234 }
235 }
236};
237
238//
239// EvtIoInternalIoctl callback delegate
240//
242
243public:
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 );
275 }
276 }
277};
278
279//
280// EvtIoQueueStatus callback delegate
281//
283
284public:
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
307 }
308 }
309};
310
312
313public:
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
336 }
337 }
338};
339
340
342
343public:
345
347 VOID
348 ) :
349 FxCallback()
350 {
351 Method = NULL;
352 }
353
357 __in WDFQUEUE Queue,
358 __in WDFREQUEST Request
359 )
360 {
361 ASSERT(Method != NULL);
362 return Method(Queue, Request);
363 }
364};
365
367
368public:
370
372 VOID
373 ) :
374 FxCallback()
375 {
376 Method = NULL;
377 }
378
382 __in WDFQUEUE Queue,
383 __in WDFREQUEST Request
384 )
385 {
386 ASSERT(Method != NULL);
387 return Method(Queue, Request);
388 }
389};
390
392public:
394
396 VOID
397 ) :
398 FxCallback()
399 {
400 Method = NULL;
401 }
402
405 __in WDFQUEUE Queue,
407 )
408 {
409 ASSERT(Method != NULL);
410 return Method(Queue, Irp);
411 }
412};
413
414
415
416#endif // _FXIOQUEUECALLBACKS_H_
LONG NTSTATUS
Definition: precomp.h:26
PFN_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST Method
_Must_inspect_result_ NTSTATUS Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request)
PFN_WDF_IO_ALLOCATE_REQUEST_RESOURCES Method
_Must_inspect_result_ NTSTATUS Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request)
PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS Method
WDF_IO_FORWARD_PROGRESS_ACTION Invoke(__in WDFQUEUE Queue, __in PIRP Irp)
PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE Method
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request)
PFN_WDF_IO_QUEUE_IO_DEFAULT Method
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request)
PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL Method
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request, __in ULONG OutputBufferLength, __in ULONG InputBufferLength, __in ULONG IoControlCode)
PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL Method
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request, __in ULONG OutputBufferLength, __in ULONG InputBufferLength, __in ULONG IoInternalControlCode)
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request, __in ULONG Length)
PFN_WDF_IO_QUEUE_IO_READ Method
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request)
PFN_WDF_IO_QUEUE_IO_RESUME Method
PFN_WDF_IO_QUEUE_STATE Method
void Invoke(__in WDFQUEUE Queue, __in WDFCONTEXT Context)
PFN_WDF_IO_QUEUE_IO_STOP Method
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request, __in ULONG ActionFlags)
void Invoke(__in WDFQUEUE Queue, __in WDFREQUEST Request, __in ULONG Length)
PFN_WDF_IO_QUEUE_IO_WRITE Method
__inline void CallbackEnd(__in KIRQL PreviousIrql)
Definition: fxcallback.hpp:126
__inline void CallbackStart(__out PKIRQL PreviousIrql)
Definition: fxcallback.hpp:115
_In_ PIRP Irp
Definition: csq.h:116
#define __in
Definition: dbghelp.h:35
#define NULL
Definition: types.h:112
KIRQL irql
Definition: wave.h:1
UCHAR KIRQL
Definition: env_spec_w32.h:591
#define ASSERT(a)
Definition: mode.c:44
#define _Must_inspect_result_
Definition: ms_sal.h:558
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
Definition: wdfdevice.h:2225
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
_In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
Definition: wdfio.h:325
EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL * PFN_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL
Definition: wdfio.h:348
EVT_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE * PFN_WDF_IO_QUEUE_IO_CANCELED_ON_QUEUE
Definition: wdfio.h:364
EVT_WDF_IO_QUEUE_STATE * PFN_WDF_IO_QUEUE_STATE
Definition: wdfio.h:380
EVT_WDF_IO_QUEUE_IO_DEVICE_CONTROL * PFN_WDF_IO_QUEUE_IO_DEVICE_CONTROL
Definition: wdfio.h:327
EVT_WDF_IO_QUEUE_IO_READ * PFN_WDF_IO_QUEUE_IO_READ
Definition: wdfio.h:289
EVT_WDF_IO_QUEUE_IO_WRITE * PFN_WDF_IO_QUEUE_IO_WRITE
Definition: wdfio.h:306
EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS * PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS
Definition: wdfio.h:515
EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST * PFN_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST
Definition: wdfio.h:485
EVT_WDF_IO_QUEUE_IO_RESUME * PFN_WDF_IO_QUEUE_IO_RESUME
Definition: wdfio.h:272
EVT_WDF_IO_QUEUE_IO_STOP * PFN_WDF_IO_QUEUE_IO_STOP
Definition: wdfio.h:257
_In_ WDFREQUEST _In_ ULONG ActionFlags
Definition: wdfio.h:255
enum _WDF_IO_FORWARD_PROGRESS_ACTION WDF_IO_FORWARD_PROGRESS_ACTION
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320
EVT_WDF_IO_QUEUE_IO_DEFAULT * PFN_WDF_IO_QUEUE_IO_DEFAULT
Definition: wdfio.h:239
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:322
EVT_WDF_IO_ALLOCATE_REQUEST_RESOURCES * PFN_WDF_IO_ALLOCATE_REQUEST_RESOURCES
Definition: wdfio.h:500