ReactOS 0.4.16-dev-340-g0540c21
wdfrequest.h
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation. All rights reserved.
4
5_WdfVersionBuild_
6
7Module Name:
8
9 wdfrequest.h
10
11Abstract:
12
13 This module contains contains the Windows Driver Framework Request object
14 interfaces.
15
16Environment:
17
18 kernel mode only
19
20Revision History:
21
22
23--*/
24
25//
26// NOTE: This header is generated by stubwork. Please make any
27// modifications to the corresponding template files
28// (.x or .y) and use stubwork to regenerate the header
29//
30
31#ifndef _WDFREQUEST_H_
32#define _WDFREQUEST_H_
33
34#ifndef WDF_EXTERN_C
35 #ifdef __cplusplus
36 #define WDF_EXTERN_C extern "C"
37 #define WDF_EXTERN_C_START extern "C" {
38 #define WDF_EXTERN_C_END }
39 #else
40 #define WDF_EXTERN_C
41 #define WDF_EXTERN_C_START
42 #define WDF_EXTERN_C_END
43 #endif
44#endif
45
47
48
49
50#if (NTDDI_VERSION >= NTDDI_WIN2K)
51
52//
53// Types
54//
55
56/* typedef enum _WDF_REQUEST_TYPE { // declaration moved to wdfdevice.h
57 WdfRequestTypeCreate = 0x0,
58 WdfRequestTypeCreateNamedPipe = 0x1,
59 WdfRequestTypeClose = 0x2,
60 WdfRequestTypeRead = 0x3,
61 WdfRequestTypeWrite = 0x4,
62 WdfRequestTypeQueryInformation = 0x5,
63 WdfRequestTypeSetInformation = 0x6,
64 WdfRequestTypeQueryEA = 0x7,
65 WdfRequestTypeSetEA = 0x8,
66 WdfRequestTypeFlushBuffers = 0x9,
67 WdfRequestTypeQueryVolumeInformation = 0xa,
68 WdfRequestTypeSetVolumeInformation = 0xb,
69 WdfRequestTypeDirectoryControl = 0xc,
70 WdfRequestTypeFileSystemControl = 0xd,
71 WdfRequestTypeDeviceControl = 0xe,
72 WdfRequestTypeDeviceControlInternal = 0xf,
73 WdfRequestTypeShutdown = 0x10,
74 WdfRequestTypeLockControl = 0x11,
75 WdfRequestTypeCleanup = 0x12,
76 WdfRequestTypeCreateMailSlot = 0x13,
77 WdfRequestTypeQuerySecurity = 0x14,
78 WdfRequestTypeSetSecurity = 0x15,
79 WdfRequestTypePower = 0x16,
80 WdfRequestTypeSystemControl = 0x17,
81 WdfRequestTypeDeviceChange = 0x18,
82 WdfRequestTypeQueryQuota = 0x19,
83 WdfRequestTypeSetQuota = 0x1A,
84 WdfRequestTypePnp = 0x1B,
85 WdfRequestTypeOther =0x1C,
86 WdfRequestTypeUsb = 0x40,
87 WdfRequestTypeNoFormat = 0xFF,
88 WdfRequestTypeMax,
89} WDF_REQUEST_TYPE; */
90
95
96//
97// This defines the actions to take on a request
98// in EvtIoStop.
99//
102 WdfRequestStopActionSuspend = 0x01, // Device is being suspended
103 WdfRequestStopActionPurge = 0x2, // Device/queue is being removed
104 WdfRequestStopRequestCancelable = 0x10000000, // This bit is set if the request is marked cancelable
106
115
116
117
118// Request cancel is called if a request that has been marked cancelable is cancelled
119typedef
120_Function_class_(EVT_WDF_REQUEST_CANCEL)
123VOID
125EVT_WDF_REQUEST_CANCEL(
126 _In_
127 WDFREQUEST Request
128 );
129
130typedef EVT_WDF_REQUEST_CANCEL *PFN_WDF_REQUEST_CANCEL;
131
132
133//
134// This parameters structure allows general access to a requests parameters
135//
137
139
141
143
144 //
145 // The following user parameters are based on the service that is being
146 // invoked. Drivers and file systems can determine which set to use based
147 // on the above major and minor function codes.
148 //
149 union {
150
151 //
152 // System service parameters for: Create
153 //
154
155 struct {
162
163
164 //
165 // System service parameters for: Read
166 //
167
168 struct {
169 size_t Length;
173
174 //
175 // System service parameters for: Write
176 //
177
178 struct {
179 size_t Length;
183
184 //
185 // System service parameters for: Device Control
186 //
187 // Note that the user's output buffer is stored in the UserBuffer field
188 // and the user's input buffer is stored in the SystemBuffer field.
189 //
190
191 struct {
197
198 struct {
204
206
208
210VOID
213 )
214{
216
217 Parameters->Size = sizeof(WDF_REQUEST_PARAMETERS);
218}
219
221
223 //
224 // Size of the structure in bytes
225 //
227
229
231
232 union {
233 struct {
234 WDFMEMORY Buffer;
235 size_t Length;
236 size_t Offset;
238
239 struct {
240 WDFMEMORY Buffer;
241 size_t Length;
242 size_t Offset;
244
245 struct {
247
248 struct {
249 WDFMEMORY Buffer;
250 size_t Offset;
252
253 struct {
254 WDFMEMORY Buffer;
255 size_t Offset;
256 size_t Length;
259
260 struct {
261 union {
265 union {
266 PVOID Ptr;
269 union {
270 PVOID Ptr;
273 union {
274 PVOID Ptr;
278
279 struct {
283
285
287VOID
290 )
291{
295}
296
297typedef
298_Function_class_(EVT_WDF_REQUEST_COMPLETION_ROUTINE)
300VOID
302EVT_WDF_REQUEST_COMPLETION_ROUTINE(
303 _In_
304 WDFREQUEST Request,
305 _In_
306 WDFIOTARGET Target,
307 _In_
309 _In_
311 );
312
313typedef EVT_WDF_REQUEST_COMPLETION_ROUTINE *PFN_WDF_REQUEST_COMPLETION_ROUTINE;
314
315/*++
316
317Routine Description:
318 Clears out the internal state of the irp, which includes, but is not limited
319 to:
320 a) Any internal allocations for the previously formatted request
321 b) The completion routine and its context
322 c) The request's intended i/o target
323 d) All of the internal IRP's stack locations
324
325Arguments:
326 Request - The request to be reused.
327
328 ReuseParams - Parameters controlling the reuse of the request, see comments
329 for each field in the structure for usage
330
331Return Value:
332 None
333
334 --*/
335
337 //
338 // Size of this structure in bytes
339 //
341
342 //
343 // Bit field combination of WDF_REQUEST_REUSE_Xxx values
344 //
346
347 //
348 // The new status of the request.
349 //
351
352 //
353 // New PIRP to be contained in the WDFREQUEST. Setting a new PIRP value
354 // is only valid for WDFREQUESTs created by WdfRequestCreateFromIrp where
355 // RequestFreesIrp == FALSE. No other WDFREQUESTs (presented by the
356 // I/O queue for instance) may have their IRPs changed.
357 //
359
361
363VOID
368 )
369{
371
372 Params->Size = sizeof(WDF_REQUEST_REUSE_PARAMS);
373 Params->Flags = Flags;
374 Params->Status = Status;
375}
376
378VOID
381 _In_ PIRP NewIrp
382 )
383{
385 Params->NewIrp = NewIrp;
386}
387
389 //
390 // Size of the structure in bytes
391 //
393
394 //
395 // Bit field combination of values from the WDF_REQUEST_SEND_OPTIONS_FLAGS
396 // enumeration
397 //
399
400 //
401 // Valid when WDF_REQUEST_SEND_OPTION_TIMEOUT is set
402 //
404
406
408VOID
412 )
413{
415 Options->Size = sizeof(WDF_REQUEST_SEND_OPTIONS);
416 Options->Flags = Flags;
417}
418
420VOID
424 )
425{
427 Options->Timeout = Timeout;
428}
429
433
435 //
436 // Size of the structure in bytes
437 //
439
440 //
441 // Bit field combination of values from the WDF_REQUEST_FORWARD_OPTIONS_FLAGS
442 // enumeration
443 //
446
447
448//
449// Default REquest forward initialization macro
450//
452VOID
455 )
456{
458
461}
462
463
464
465
466//
467// WDF Function: WdfRequestCreate
468//
469typedef
472WDFAPI
474(STDCALL *PFN_WDFREQUESTCREATE)(
475 _In_
480 WDFIOTARGET IoTarget,
481 _Out_
482 WDFREQUEST* Request
483 );
484
489WdfRequestCreate(
493 WDFIOTARGET IoTarget,
494 _Out_
495 WDFREQUEST* Request
496 )
497{
499}
500
501//
502// WDF Function: WdfRequestCreateFromIrp
503//
504typedef
507WDFAPI
509(STDCALL *PFN_WDFREQUESTCREATEFROMIRP)(
510 _In_
514 _In_
516 _In_
518 _Out_
519 WDFREQUEST* Request
520 );
521
526WdfRequestCreateFromIrp(
529 _In_
530 PIRP Irp,
531 _In_
533 _Out_
534 WDFREQUEST* Request
535 )
536{
538}
539
540//
541// WDF Function: WdfRequestReuse
542//
543typedef
545WDFAPI
547(STDCALL *PFN_WDFREQUESTREUSE)(
548 _In_
550 _In_
551 WDFREQUEST Request,
552 _In_
554 );
555
559WdfRequestReuse(
560 _In_
561 WDFREQUEST Request,
562 _In_
564 )
565{
567}
568
569//
570// WDF Function: WdfRequestChangeTarget
571//
572typedef
575WDFAPI
577(STDCALL *PFN_WDFREQUESTCHANGETARGET)(
578 _In_
580 _In_
581 WDFREQUEST Request,
582 _In_
583 WDFIOTARGET IoTarget
584 );
585
590WdfRequestChangeTarget(
591 _In_
592 WDFREQUEST Request,
593 _In_
594 WDFIOTARGET IoTarget
595 )
596{
597 return ((PFN_WDFREQUESTCHANGETARGET) WdfFunctions[WdfRequestChangeTargetTableIndex])(WdfDriverGlobals, Request, IoTarget);
598}
599
600//
601// WDF Function: WdfRequestFormatRequestUsingCurrentType
602//
603typedef
605WDFAPI
606VOID
607(STDCALL *PFN_WDFREQUESTFORMATREQUESTUSINGCURRENTTYPE)(
608 _In_
610 _In_
611 WDFREQUEST Request
612 );
613
616VOID
617WdfRequestFormatRequestUsingCurrentType(
618 _In_
619 WDFREQUEST Request
620 )
621{
622 ((PFN_WDFREQUESTFORMATREQUESTUSINGCURRENTTYPE) WdfFunctions[WdfRequestFormatRequestUsingCurrentTypeTableIndex])(WdfDriverGlobals, Request);
623}
624
625//
626// WDF Function: WdfRequestWdmFormatUsingStackLocation
627//
628typedef
630WDFAPI
631VOID
632(STDCALL *PFN_WDFREQUESTWDMFORMATUSINGSTACKLOCATION)(
633 _In_
635 _In_
636 WDFREQUEST Request,
637 _In_
639 );
640
643VOID
644WdfRequestWdmFormatUsingStackLocation(
645 _In_
646 WDFREQUEST Request,
647 _In_
649 )
650{
651 ((PFN_WDFREQUESTWDMFORMATUSINGSTACKLOCATION) WdfFunctions[WdfRequestWdmFormatUsingStackLocationTableIndex])(WdfDriverGlobals, Request, Stack);
652}
653
654//
655// WDF Function: WdfRequestSend
656//
657typedef
660WDFAPI
663 _In_
665 _In_
666 WDFREQUEST Request,
667 _In_
668 WDFIOTARGET Target,
671 );
672
678 _In_
679 WDFREQUEST Request,
680 _In_
681 WDFIOTARGET Target,
684 )
685{
687}
688
689//
690// WDF Function: WdfRequestGetStatus
691//
692typedef
695WDFAPI
697(STDCALL *PFN_WDFREQUESTGETSTATUS)(
698 _In_
700 _In_
701 WDFREQUEST Request
702 );
703
708WdfRequestGetStatus(
709 _In_
710 WDFREQUEST Request
711 )
712{
713 return ((PFN_WDFREQUESTGETSTATUS) WdfFunctions[WdfRequestGetStatusTableIndex])(WdfDriverGlobals, Request);
714}
715
716//
717// WDF Function: WdfRequestMarkCancelable
718//
719typedef
721WDFAPI
722VOID
723(STDCALL *PFN_WDFREQUESTMARKCANCELABLE)(
724 _In_
726 _In_
727 WDFREQUEST Request,
728 _In_
730 );
731
734VOID
735WdfRequestMarkCancelable(
736 _In_
737 WDFREQUEST Request,
738 _In_
740 )
741{
743}
744
745//
746// WDF Function: WdfRequestMarkCancelableEx
747//
748typedef
751WDFAPI
753(STDCALL *PFN_WDFREQUESTMARKCANCELABLEEX)(
754 _In_
756 _In_
757 WDFREQUEST Request,
758 _In_
760 );
761
766WdfRequestMarkCancelableEx(
767 _In_
768 WDFREQUEST Request,
769 _In_
771 )
772{
774}
775
776//
777// WDF Function: WdfRequestUnmarkCancelable
778//
779typedef
782WDFAPI
784(STDCALL *PFN_WDFREQUESTUNMARKCANCELABLE)(
785 _In_
787 _In_
788 WDFREQUEST Request
789 );
790
795WdfRequestUnmarkCancelable(
796 _In_
797 WDFREQUEST Request
798 )
799{
800 return ((PFN_WDFREQUESTUNMARKCANCELABLE) WdfFunctions[WdfRequestUnmarkCancelableTableIndex])(WdfDriverGlobals, Request);
801}
802
803//
804// WDF Function: WdfRequestIsCanceled
805//
806typedef
809WDFAPI
811(STDCALL *PFN_WDFREQUESTISCANCELED)(
812 _In_
814 _In_
815 WDFREQUEST Request
816 );
817
822WdfRequestIsCanceled(
823 _In_
824 WDFREQUEST Request
825 )
826{
827 return ((PFN_WDFREQUESTISCANCELED) WdfFunctions[WdfRequestIsCanceledTableIndex])(WdfDriverGlobals, Request);
828}
829
830//
831// WDF Function: WdfRequestCancelSentRequest
832//
833typedef
835WDFAPI
837(STDCALL *PFN_WDFREQUESTCANCELSENTREQUEST)(
838 _In_
840 _In_
841 WDFREQUEST Request
842 );
843
847WdfRequestCancelSentRequest(
848 _In_
849 WDFREQUEST Request
850 )
851{
852 return ((PFN_WDFREQUESTCANCELSENTREQUEST) WdfFunctions[WdfRequestCancelSentRequestTableIndex])(WdfDriverGlobals, Request);
853}
854
855//
856// WDF Function: WdfRequestIsFrom32BitProcess
857//
858typedef
861WDFAPI
863(STDCALL *PFN_WDFREQUESTISFROM32BITPROCESS)(
864 _In_
866 _In_
867 WDFREQUEST Request
868 );
869
874WdfRequestIsFrom32BitProcess(
875 _In_
876 WDFREQUEST Request
877 )
878{
879 return ((PFN_WDFREQUESTISFROM32BITPROCESS) WdfFunctions[WdfRequestIsFrom32BitProcessTableIndex])(WdfDriverGlobals, Request);
880}
881
882//
883// WDF Function: WdfRequestSetCompletionRoutine
884//
885typedef
887WDFAPI
888VOID
889(STDCALL *PFN_WDFREQUESTSETCOMPLETIONROUTINE)(
890 _In_
892 _In_
893 WDFREQUEST Request,
898 );
899
902VOID
903WdfRequestSetCompletionRoutine(
904 _In_
905 WDFREQUEST Request,
910 )
911{
913}
914
915//
916// WDF Function: WdfRequestGetCompletionParams
917//
918typedef
920WDFAPI
921VOID
922(STDCALL *PFN_WDFREQUESTGETCOMPLETIONPARAMS)(
923 _In_
925 _In_
926 WDFREQUEST Request,
927 _Out_
929 );
930
933VOID
934WdfRequestGetCompletionParams(
935 _In_
936 WDFREQUEST Request,
937 _Out_
939 )
940{
942}
943
944//
945// WDF Function: WdfRequestAllocateTimer
946//
947typedef
950WDFAPI
952(STDCALL *PFN_WDFREQUESTALLOCATETIMER)(
953 _In_
955 _In_
956 WDFREQUEST Request
957 );
958
963WdfRequestAllocateTimer(
964 _In_
965 WDFREQUEST Request
966 )
967{
968 return ((PFN_WDFREQUESTALLOCATETIMER) WdfFunctions[WdfRequestAllocateTimerTableIndex])(WdfDriverGlobals, Request);
969}
970
971//
972// WDF Function: WdfRequestComplete
973//
974typedef
976WDFAPI
977VOID
978(STDCALL *PFN_WDFREQUESTCOMPLETE)(
979 _In_
981 _In_
982 WDFREQUEST Request,
983 _In_
985 );
986
989VOID
990WdfRequestComplete(
991 _In_
992 WDFREQUEST Request,
993 _In_
995 )
996{
998}
999
1000//
1001// WDF Function: WdfRequestCompleteWithPriorityBoost
1002//
1003typedef
1005WDFAPI
1006VOID
1007(STDCALL *PFN_WDFREQUESTCOMPLETEWITHPRIORITYBOOST)(
1008 _In_
1010 _In_
1011 WDFREQUEST Request,
1012 _In_
1014 _In_
1016 );
1017
1020VOID
1021WdfRequestCompleteWithPriorityBoost(
1022 _In_
1023 WDFREQUEST Request,
1024 _In_
1026 _In_
1028 )
1029{
1031}
1032
1033//
1034// WDF Function: WdfRequestCompleteWithInformation
1035//
1036typedef
1038WDFAPI
1039VOID
1040(STDCALL *PFN_WDFREQUESTCOMPLETEWITHINFORMATION)(
1041 _In_
1043 _In_
1044 WDFREQUEST Request,
1045 _In_
1047 _In_
1049 );
1050
1053VOID
1054WdfRequestCompleteWithInformation(
1055 _In_
1056 WDFREQUEST Request,
1057 _In_
1059 _In_
1061 )
1062{
1064}
1065
1066//
1067// WDF Function: WdfRequestGetParameters
1068//
1069typedef
1071WDFAPI
1072VOID
1073(STDCALL *PFN_WDFREQUESTGETPARAMETERS)(
1074 _In_
1076 _In_
1077 WDFREQUEST Request,
1078 _Out_
1080 );
1081
1084VOID
1085WdfRequestGetParameters(
1086 _In_
1087 WDFREQUEST Request,
1088 _Out_
1090 )
1091{
1093}
1094
1095//
1096// WDF Function: WdfRequestRetrieveInputMemory
1097//
1098typedef
1101WDFAPI
1103(STDCALL *PFN_WDFREQUESTRETRIEVEINPUTMEMORY)(
1104 _In_
1106 _In_
1107 WDFREQUEST Request,
1108 _Out_
1109 WDFMEMORY* Memory
1110 );
1111
1116WdfRequestRetrieveInputMemory(
1117 _In_
1118 WDFREQUEST Request,
1119 _Out_
1120 WDFMEMORY* Memory
1121 )
1122{
1123 return ((PFN_WDFREQUESTRETRIEVEINPUTMEMORY) WdfFunctions[WdfRequestRetrieveInputMemoryTableIndex])(WdfDriverGlobals, Request, Memory);
1124}
1125
1126//
1127// WDF Function: WdfRequestRetrieveOutputMemory
1128//
1129typedef
1132WDFAPI
1134(STDCALL *PFN_WDFREQUESTRETRIEVEOUTPUTMEMORY)(
1135 _In_
1137 _In_
1138 WDFREQUEST Request,
1139 _Out_
1140 WDFMEMORY* Memory
1141 );
1142
1147WdfRequestRetrieveOutputMemory(
1148 _In_
1149 WDFREQUEST Request,
1150 _Out_
1151 WDFMEMORY* Memory
1152 )
1153{
1154 return ((PFN_WDFREQUESTRETRIEVEOUTPUTMEMORY) WdfFunctions[WdfRequestRetrieveOutputMemoryTableIndex])(WdfDriverGlobals, Request, Memory);
1155}
1156
1157//
1158// WDF Function: WdfRequestRetrieveInputBuffer
1159//
1160typedef
1163WDFAPI
1165(STDCALL *PFN_WDFREQUESTRETRIEVEINPUTBUFFER)(
1166 _In_
1168 _In_
1169 WDFREQUEST Request,
1170 _In_
1174 _Out_opt_
1175 size_t* Length
1176 );
1177
1182WdfRequestRetrieveInputBuffer(
1183 _In_
1184 WDFREQUEST Request,
1185 _In_
1186 size_t MinimumRequiredLength,
1188 PVOID* Buffer,
1189 _Out_opt_
1190 size_t* Length
1191 )
1192{
1194}
1195
1196//
1197// WDF Function: WdfRequestRetrieveOutputBuffer
1198//
1199typedef
1202WDFAPI
1204(STDCALL *PFN_WDFREQUESTRETRIEVEOUTPUTBUFFER)(
1205 _In_
1207 _In_
1208 WDFREQUEST Request,
1209 _In_
1212 PVOID* Buffer,
1213 _Out_opt_
1214 size_t* Length
1215 );
1216
1221WdfRequestRetrieveOutputBuffer(
1222 _In_
1223 WDFREQUEST Request,
1224 _In_
1225 size_t MinimumRequiredSize,
1227 PVOID* Buffer,
1228 _Out_opt_
1229 size_t* Length
1230 )
1231{
1233}
1234
1235//
1236// WDF Function: WdfRequestRetrieveInputWdmMdl
1237//
1238typedef
1241WDFAPI
1243(STDCALL *PFN_WDFREQUESTRETRIEVEINPUTWDMMDL)(
1244 _In_
1246 _In_
1247 WDFREQUEST Request,
1248 _Outptr_
1250 );
1251
1256WdfRequestRetrieveInputWdmMdl(
1257 _In_
1258 WDFREQUEST Request,
1259 _Outptr_
1260 PMDL* Mdl
1261 )
1262{
1263 return ((PFN_WDFREQUESTRETRIEVEINPUTWDMMDL) WdfFunctions[WdfRequestRetrieveInputWdmMdlTableIndex])(WdfDriverGlobals, Request, Mdl);
1264}
1265
1266//
1267// WDF Function: WdfRequestRetrieveOutputWdmMdl
1268//
1269typedef
1272WDFAPI
1274(STDCALL *PFN_WDFREQUESTRETRIEVEOUTPUTWDMMDL)(
1275 _In_
1277 _In_
1278 WDFREQUEST Request,
1279 _Outptr_
1280 PMDL* Mdl
1281 );
1282
1287WdfRequestRetrieveOutputWdmMdl(
1288 _In_
1289 WDFREQUEST Request,
1290 _Outptr_
1291 PMDL* Mdl
1292 )
1293{
1294 return ((PFN_WDFREQUESTRETRIEVEOUTPUTWDMMDL) WdfFunctions[WdfRequestRetrieveOutputWdmMdlTableIndex])(WdfDriverGlobals, Request, Mdl);
1295}
1296
1297//
1298// WDF Function: WdfRequestRetrieveUnsafeUserInputBuffer
1299//
1300typedef
1303WDFAPI
1305(STDCALL *PFN_WDFREQUESTRETRIEVEUNSAFEUSERINPUTBUFFER)(
1306 _In_
1308 _In_
1309 WDFREQUEST Request,
1310 _In_
1311 size_t MinimumRequiredLength,
1314 _Out_opt_
1315 size_t* Length
1316 );
1317
1322WdfRequestRetrieveUnsafeUserInputBuffer(
1323 _In_
1324 WDFREQUEST Request,
1325 _In_
1326 size_t MinimumRequiredLength,
1329 _Out_opt_
1330 size_t* Length
1331 )
1332{
1334}
1335
1336//
1337// WDF Function: WdfRequestRetrieveUnsafeUserOutputBuffer
1338//
1339typedef
1342WDFAPI
1344(STDCALL *PFN_WDFREQUESTRETRIEVEUNSAFEUSEROUTPUTBUFFER)(
1345 _In_
1347 _In_
1348 WDFREQUEST Request,
1349 _In_
1350 size_t MinimumRequiredLength,
1353 _Out_opt_
1354 size_t* Length
1355 );
1356
1361WdfRequestRetrieveUnsafeUserOutputBuffer(
1362 _In_
1363 WDFREQUEST Request,
1364 _In_
1365 size_t MinimumRequiredLength,
1368 _Out_opt_
1369 size_t* Length
1370 )
1371{
1373}
1374
1375//
1376// WDF Function: WdfRequestSetInformation
1377//
1378typedef
1380WDFAPI
1381VOID
1382(STDCALL *PFN_WDFREQUESTSETINFORMATION)(
1383 _In_
1385 _In_
1386 WDFREQUEST Request,
1387 _In_
1389 );
1390
1393VOID
1394WdfRequestSetInformation(
1395 _In_
1396 WDFREQUEST Request,
1397 _In_
1399 )
1400{
1402}
1403
1404//
1405// WDF Function: WdfRequestGetInformation
1406//
1407typedef
1409WDFAPI
1411(STDCALL *PFN_WDFREQUESTGETINFORMATION)(
1412 _In_
1414 _In_
1415 WDFREQUEST Request
1416 );
1417
1421WdfRequestGetInformation(
1422 _In_
1423 WDFREQUEST Request
1424 )
1425{
1426 return ((PFN_WDFREQUESTGETINFORMATION) WdfFunctions[WdfRequestGetInformationTableIndex])(WdfDriverGlobals, Request);
1427}
1428
1429//
1430// WDF Function: WdfRequestGetFileObject
1431//
1432typedef
1434WDFAPI
1435WDFFILEOBJECT
1436(STDCALL *PFN_WDFREQUESTGETFILEOBJECT)(
1437 _In_
1439 _In_
1440 WDFREQUEST Request
1441 );
1442
1445WDFFILEOBJECT
1446WdfRequestGetFileObject(
1447 _In_
1448 WDFREQUEST Request
1449 )
1450{
1451 return ((PFN_WDFREQUESTGETFILEOBJECT) WdfFunctions[WdfRequestGetFileObjectTableIndex])(WdfDriverGlobals, Request);
1452}
1453
1454//
1455// WDF Function: WdfRequestProbeAndLockUserBufferForRead
1456//
1457typedef
1460WDFAPI
1462(STDCALL *PFN_WDFREQUESTPROBEANDLOCKUSERBUFFERFORREAD)(
1463 _In_
1465 _In_
1466 WDFREQUEST Request,
1468 PVOID Buffer,
1469 _In_
1470 size_t Length,
1471 _Out_
1472 WDFMEMORY* MemoryObject
1473 );
1474
1479WdfRequestProbeAndLockUserBufferForRead(
1480 _In_
1481 WDFREQUEST Request,
1483 PVOID Buffer,
1484 _In_
1485 size_t Length,
1486 _Out_
1487 WDFMEMORY* MemoryObject
1488 )
1489{
1490 return ((PFN_WDFREQUESTPROBEANDLOCKUSERBUFFERFORREAD) WdfFunctions[WdfRequestProbeAndLockUserBufferForReadTableIndex])(WdfDriverGlobals, Request, Buffer, Length, MemoryObject);
1491}
1492
1493//
1494// WDF Function: WdfRequestProbeAndLockUserBufferForWrite
1495//
1496typedef
1499WDFAPI
1501(STDCALL *PFN_WDFREQUESTPROBEANDLOCKUSERBUFFERFORWRITE)(
1502 _In_
1504 _In_
1505 WDFREQUEST Request,
1507 PVOID Buffer,
1508 _In_
1509 size_t Length,
1510 _Out_
1511 WDFMEMORY* MemoryObject
1512 );
1513
1518WdfRequestProbeAndLockUserBufferForWrite(
1519 _In_
1520 WDFREQUEST Request,
1522 PVOID Buffer,
1523 _In_
1524 size_t Length,
1525 _Out_
1526 WDFMEMORY* MemoryObject
1527 )
1528{
1529 return ((PFN_WDFREQUESTPROBEANDLOCKUSERBUFFERFORWRITE) WdfFunctions[WdfRequestProbeAndLockUserBufferForWriteTableIndex])(WdfDriverGlobals, Request, Buffer, Length, MemoryObject);
1530}
1531
1532//
1533// WDF Function: WdfRequestGetRequestorMode
1534//
1535typedef
1537WDFAPI
1539(STDCALL *PFN_WDFREQUESTGETREQUESTORMODE)(
1540 _In_
1542 _In_
1543 WDFREQUEST Request
1544 );
1545
1549WdfRequestGetRequestorMode(
1550 _In_
1551 WDFREQUEST Request
1552 )
1553{
1554 return ((PFN_WDFREQUESTGETREQUESTORMODE) WdfFunctions[WdfRequestGetRequestorModeTableIndex])(WdfDriverGlobals, Request);
1555}
1556
1557//
1558// WDF Function: WdfRequestForwardToIoQueue
1559//
1560typedef
1563WDFAPI
1565(STDCALL *PFN_WDFREQUESTFORWARDTOIOQUEUE)(
1566 _In_
1568 _In_
1569 WDFREQUEST Request,
1570 _In_
1572 );
1573
1578WdfRequestForwardToIoQueue(
1579 _In_
1580 WDFREQUEST Request,
1581 _In_
1582 WDFQUEUE DestinationQueue
1583 )
1584{
1586}
1587
1588//
1589// WDF Function: WdfRequestGetIoQueue
1590//
1591typedef
1593WDFAPI
1594WDFQUEUE
1595(STDCALL *PFN_WDFREQUESTGETIOQUEUE)(
1596 _In_
1598 _In_
1599 WDFREQUEST Request
1600 );
1601
1604WDFQUEUE
1605WdfRequestGetIoQueue(
1606 _In_
1607 WDFREQUEST Request
1608 )
1609{
1610 return ((PFN_WDFREQUESTGETIOQUEUE) WdfFunctions[WdfRequestGetIoQueueTableIndex])(WdfDriverGlobals, Request);
1611}
1612
1613//
1614// WDF Function: WdfRequestRequeue
1615//
1616typedef
1619WDFAPI
1621(STDCALL *PFN_WDFREQUESTREQUEUE)(
1622 _In_
1624 _In_
1625 WDFREQUEST Request
1626 );
1627
1632WdfRequestRequeue(
1633 _In_
1634 WDFREQUEST Request
1635 )
1636{
1637 return ((PFN_WDFREQUESTREQUEUE) WdfFunctions[WdfRequestRequeueTableIndex])(WdfDriverGlobals, Request);
1638}
1639
1640//
1641// WDF Function: WdfRequestStopAcknowledge
1642//
1643typedef
1645WDFAPI
1646VOID
1647(STDCALL *PFN_WDFREQUESTSTOPACKNOWLEDGE)(
1648 _In_
1650 _In_
1651 WDFREQUEST Request,
1652 _In_
1654 );
1655
1658VOID
1659WdfRequestStopAcknowledge(
1660 _In_
1661 WDFREQUEST Request,
1662 _In_
1664 )
1665{
1667}
1668
1669//
1670// WDF Function: WdfRequestWdmGetIrp
1671//
1672typedef
1674WDFAPI
1675PIRP
1676(STDCALL *PFN_WDFREQUESTWDMGETIRP)(
1677 _In_
1679 _In_
1680 WDFREQUEST Request
1681 );
1682
1685PIRP
1686WdfRequestWdmGetIrp(
1687 _In_
1688 WDFREQUEST Request
1689 )
1690{
1691 return ((PFN_WDFREQUESTWDMGETIRP) WdfFunctions[WdfRequestWdmGetIrpTableIndex])(WdfDriverGlobals, Request);
1692}
1693
1694//
1695// WDF Function: WdfRequestIsReserved
1696//
1697typedef
1699WDFAPI
1700BOOLEAN
1701(STDCALL *PFN_WDFREQUESTISRESERVED)(
1702 _In_
1704 _In_
1705 WDFREQUEST Request
1706 );
1707
1710BOOLEAN
1711WdfRequestIsReserved(
1712 _In_
1713 WDFREQUEST Request
1714 )
1715{
1716 return ((PFN_WDFREQUESTISRESERVED) WdfFunctions[WdfRequestIsReservedTableIndex])(WdfDriverGlobals, Request);
1717}
1718
1719//
1720// WDF Function: WdfRequestForwardToParentDeviceIoQueue
1721//
1722typedef
1725WDFAPI
1727(STDCALL *PFN_WDFREQUESTFORWARDTOPARENTDEVICEIOQUEUE)(
1728 _In_
1730 _In_
1731 WDFREQUEST Request,
1732 _In_
1734 _In_
1736 );
1737
1742WdfRequestForwardToParentDeviceIoQueue(
1743 _In_
1744 WDFREQUEST Request,
1745 _In_
1746 WDFQUEUE ParentDeviceQueue,
1747 _In_
1749 )
1750{
1752}
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764#endif // (NTDDI_VERSION >= NTDDI_WIN2K)
1765
1766
1768
1769#endif // _WDFREQUEST_H_
1770
struct _IRP * PIRP
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
#define __drv_aliasesMem
Definition: btrfs_drv.h:203
Definition: bufpool.h:45
_In_ PIRP Irp
Definition: csq.h:116
#define NTSTATUS
Definition: precomp.h:19
#define ULONG_PTR
Definition: config.h:101
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define APC_LEVEL
Definition: env_spec_w32.h:695
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
DriverGlobals
Status
Definition: gdiplustypes.h:25
#define _Outptr_result_bytebuffer_maybenull_(size)
Definition: ms_sal.h:480
#define _Outptr_result_bytebuffer_(s)
Definition: no_sal2.h:288
#define _Out_opt_
Definition: no_sal2.h:214
#define _Inout_
Definition: no_sal2.h:162
#define _Outptr_
Definition: no_sal2.h:262
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Function_class_(n)
Definition: no_sal2.h:398
#define _When_(c, a)
Definition: no_sal2.h:38
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
#define BOOLEAN
Definition: pedump.c:73
unsigned short USHORT
Definition: pedump.c:61
static ULONG Timeout
Definition: ping.c:61
struct _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3892 Ioctl
union _WDF_REQUEST_COMPLETION_PARAMS::@3889 Parameters
union _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3893::@3898 Argument2
union _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3893::@3900 Argument4
struct _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3892::@3896 Output
struct _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3894 Usb
struct _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3892::@3895 Input
struct _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3890 Write
union _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3893::@3897 Argument1
struct _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3893 Others
PWDF_USB_REQUEST_COMPLETION_PARAMS Completion
Definition: wdfrequest.h:280
union _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3893::@3899 Argument3
struct _WDF_REQUEST_COMPLETION_PARAMS::@3889::@3891 Read
WDF_REQUEST_TYPE Type
Definition: wdfrequest.h:142
struct _WDF_REQUEST_PARAMETERS::@3883::@3888 Others
struct _WDF_REQUEST_PARAMETERS::@3883::@3884 Create
USHORT POINTER_ALIGNMENT FileAttributes
Definition: wdfrequest.h:158
union _WDF_REQUEST_PARAMETERS::@3883 Parameters
ULONG POINTER_ALIGNMENT IoControlCode
Definition: wdfrequest.h:194
struct _WDF_REQUEST_PARAMETERS::@3883::@3885 Read
ULONG POINTER_ALIGNMENT Key
Definition: wdfrequest.h:170
size_t POINTER_ALIGNMENT InputBufferLength
Definition: wdfrequest.h:193
struct _WDF_REQUEST_PARAMETERS::@3883::@3887 DeviceIoControl
PIO_SECURITY_CONTEXT SecurityContext
Definition: wdfrequest.h:156
ULONG POINTER_ALIGNMENT EaLength
Definition: wdfrequest.h:160
struct _WDF_REQUEST_PARAMETERS::@3883::@3886 Write
int64_t LONGLONG
Definition: typedefs.h:68
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
char CCHAR
Definition: typedefs.h:51
#define STDCALL
Definition: wdf.h:45
#define WdfFunctions
Definition: wdf.h:66
_In_ PWDFDEVICE_INIT _In_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
Definition: wdfdevice.h:3431
enum _WDF_REQUEST_TYPE WDF_REQUEST_TYPE
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3534
@ WdfRequestTypeNoFormat
Definition: wdfdevice.h:533
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfRequestUnmarkCancelableTableIndex
Definition: wdffuncenum.h:281
@ WdfRequestRetrieveOutputBufferTableIndex
Definition: wdffuncenum.h:295
@ WdfRequestGetParametersTableIndex
Definition: wdffuncenum.h:291
@ WdfRequestChangeTargetTableIndex
Definition: wdffuncenum.h:275
@ WdfRequestProbeAndLockUserBufferForReadTableIndex
Definition: wdffuncenum.h:303
@ WdfRequestRequeueTableIndex
Definition: wdffuncenum.h:308
@ WdfRequestRetrieveInputWdmMdlTableIndex
Definition: wdffuncenum.h:296
@ WdfRequestMarkCancelableExTableIndex
Definition: wdffuncenum.h:418
@ WdfRequestWdmFormatUsingStackLocationTableIndex
Definition: wdffuncenum.h:277
@ WdfRequestGetIoQueueTableIndex
Definition: wdffuncenum.h:307
@ WdfRequestSetCompletionRoutineTableIndex
Definition: wdffuncenum.h:285
@ WdfRequestSendTableIndex
Definition: wdffuncenum.h:278
@ WdfRequestIsReservedTableIndex
Definition: wdffuncenum.h:419
@ WdfRequestGetInformationTableIndex
Definition: wdffuncenum.h:301
@ WdfRequestMarkCancelableTableIndex
Definition: wdffuncenum.h:280
@ WdfRequestGetFileObjectTableIndex
Definition: wdffuncenum.h:302
@ WdfRequestAllocateTimerTableIndex
Definition: wdffuncenum.h:287
@ WdfRequestCompleteTableIndex
Definition: wdffuncenum.h:288
@ WdfRequestRetrieveUnsafeUserOutputBufferTableIndex
Definition: wdffuncenum.h:299
@ WdfRequestGetStatusTableIndex
Definition: wdffuncenum.h:279
@ WdfRequestCreateTableIndex
Definition: wdffuncenum.h:272
@ WdfRequestCompleteWithPriorityBoostTableIndex
Definition: wdffuncenum.h:289
@ WdfRequestRetrieveUnsafeUserInputBufferTableIndex
Definition: wdffuncenum.h:298
@ WdfRequestCompleteWithInformationTableIndex
Definition: wdffuncenum.h:290
@ WdfRequestGetRequestorModeTableIndex
Definition: wdffuncenum.h:305
@ WdfRequestProbeAndLockUserBufferForWriteTableIndex
Definition: wdffuncenum.h:304
@ WdfRequestRetrieveInputMemoryTableIndex
Definition: wdffuncenum.h:292
@ WdfRequestRetrieveInputBufferTableIndex
Definition: wdffuncenum.h:294
@ WdfRequestFormatRequestUsingCurrentTypeTableIndex
Definition: wdffuncenum.h:276
@ WdfRequestForwardToParentDeviceIoQueueTableIndex
Definition: wdffuncenum.h:420
@ WdfRequestCreateFromIrpTableIndex
Definition: wdffuncenum.h:273
@ WdfRequestGetCompletionParamsTableIndex
Definition: wdffuncenum.h:286
@ WdfRequestRetrieveOutputMemoryTableIndex
Definition: wdffuncenum.h:293
@ WdfRequestIsFrom32BitProcessTableIndex
Definition: wdffuncenum.h:284
@ WdfRequestRetrieveOutputWdmMdlTableIndex
Definition: wdffuncenum.h:297
@ WdfRequestWdmGetIrpTableIndex
Definition: wdffuncenum.h:310
@ WdfRequestIsCanceledTableIndex
Definition: wdffuncenum.h:282
@ WdfRequestCancelSentRequestTableIndex
Definition: wdffuncenum.h:283
@ WdfRequestReuseTableIndex
Definition: wdffuncenum.h:274
@ WdfRequestStopAcknowledgeTableIndex
Definition: wdffuncenum.h:309
@ WdfRequestSetInformationTableIndex
Definition: wdffuncenum.h:300
@ WdfRequestForwardToIoQueueTableIndex
Definition: wdffuncenum.h:306
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:869
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
Definition: wdfiotarget.h:368
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
Definition: wdfmemory.h:169
_Must_inspect_result_ FORCEINLINE BOOLEAN WdfRequestSend(_In_ WDFREQUEST Request, _In_ WDFIOTARGET Target, _In_opt_ PWDF_REQUEST_SEND_OPTIONS Options)
Definition: wdfrequest.h:677
_In_ WDFREQUEST _In_ NTSTATUS _In_ CCHAR PriorityBoost
Definition: wdfrequest.h:1016
_In_ WDFREQUEST _In_ NTSTATUS Status
Definition: wdfrequest.h:985
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_maybenull_ Length PVOID * OutputBuffer
Definition: wdfrequest.h:1351
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t MinimumRequiredSize
Definition: wdfrequest.h:1210
_In_ WDFREQUEST _In_ PWDF_REQUEST_REUSE_PARAMS ReuseParams
Definition: wdfrequest.h:554
FORCEINLINE VOID WDF_REQUEST_COMPLETION_PARAMS_INIT(_Out_ PWDF_REQUEST_COMPLETION_PARAMS Params)
Definition: wdfrequest.h:288
FORCEINLINE VOID WDF_REQUEST_SEND_OPTIONS_INIT(_Out_ PWDF_REQUEST_SEND_OPTIONS Options, _In_ ULONG Flags)
Definition: wdfrequest.h:409
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE _In_ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions
Definition: wdfrequest.h:1736
_WDF_REQUEST_SEND_OPTIONS_FLAGS
Definition: wdfrequest.h:107
@ WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT
Definition: wdfrequest.h:112
@ WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
Definition: wdfrequest.h:111
@ WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE
Definition: wdfrequest.h:113
@ WDF_REQUEST_SEND_OPTION_TIMEOUT
Definition: wdfrequest.h:108
@ WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE
Definition: wdfrequest.h:110
@ WDF_REQUEST_SEND_OPTION_SYNCHRONOUS
Definition: wdfrequest.h:109
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFREQUESTCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
Definition: wdfrequest.h:471
struct _WDF_REQUEST_REUSE_PARAMS WDF_REQUEST_REUSE_PARAMS
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
#define WDF_EXTERN_C_END
Definition: wdfrequest.h:42
_Must_inspect_result_ _In_ WDFREQUEST _Outptr_ PMDL * Mdl
Definition: wdfrequest.h:1250
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOID _Out_opt_ size_t * Length
Definition: wdfrequest.h:1176
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_ Length PVOID * Buffer
Definition: wdfrequest.h:1172
FORCEINLINE VOID WDF_REQUEST_REUSE_PARAMS_SET_NEW_IRP(_Inout_ PWDF_REQUEST_REUSE_PARAMS Params, _In_ PIRP NewIrp)
Definition: wdfrequest.h:379
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:308
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Out_ WDFMEMORY * MemoryObject
Definition: wdfrequest.h:1473
WDF_EXTERN_C_START enum _WDF_REQUEST_REUSE_FLAGS WDF_REQUEST_REUSE_FLAGS
_WDF_REQUEST_REUSE_FLAGS
Definition: wdfrequest.h:91
@ WDF_REQUEST_REUSE_SET_NEW_IRP
Definition: wdfrequest.h:93
@ WDF_REQUEST_REUSE_NO_FLAGS
Definition: wdfrequest.h:92
FORCEINLINE VOID WDF_REQUEST_PARAMETERS_INIT(_Out_ PWDF_REQUEST_PARAMETERS Parameters)
Definition: wdfrequest.h:211
_In_ WDFREQUEST _In_ BOOLEAN Requeue
Definition: wdfrequest.h:1654
FORCEINLINE VOID WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(_Inout_ PWDF_REQUEST_SEND_OPTIONS Options, _In_ LONGLONG Timeout)
Definition: wdfrequest.h:421
EVT_WDF_REQUEST_COMPLETION_ROUTINE * PFN_WDF_REQUEST_COMPLETION_ROUTINE
Definition: wdfrequest.h:313
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE _In_opt_ __drv_aliasesMem WDFCONTEXT CompletionContext
Definition: wdfrequest.h:898
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET IoTarget
Definition: wdfrequest.h:480
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
Definition: wdfrequest.h:639
#define WDF_EXTERN_C_START
Definition: wdfrequest.h:41
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ WDFIOTARGET _Out_ WDFREQUEST * Request
Definition: wdfrequest.h:483
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1049
_In_ WDFREQUEST _Out_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfrequest.h:1080
_WDF_REQUEST_FORWARD_OPTIONS_FLAGS
Definition: wdfrequest.h:430
@ WDF_REQUEST_FORWARD_OPTION_SEND_AND_FORGET
Definition: wdfrequest.h:431
_Must_inspect_result_ _In_ WDFREQUEST _Out_ WDFMEMORY * Memory
Definition: wdfrequest.h:1110
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES RequestAttributes
Definition: wdfrequest.h:478
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PIRP _In_ BOOLEAN RequestFreesIrp
Definition: wdfrequest.h:517
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:895
_WDF_REQUEST_STOP_ACTION_FLAGS
Definition: wdfrequest.h:100
@ WdfRequestStopRequestCancelable
Definition: wdfrequest.h:104
@ WdfRequestStopActionInvalid
Definition: wdfrequest.h:101
@ WdfRequestStopActionSuspend
Definition: wdfrequest.h:102
@ WdfRequestStopActionPurge
Definition: wdfrequest.h:103
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PIRP Irp
Definition: wdfrequest.h:515
struct _WDF_REQUEST_FORWARD_OPTIONS * PWDF_REQUEST_FORWARD_OPTIONS
_Must_inspect_result_ WDFAPI BOOLEAN(STDCALL * PFN_WDFREQUESTSEND)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFREQUEST Request, _In_ WDFIOTARGET Target, _In_opt_ PWDF_REQUEST_SEND_OPTIONS Options)
Definition: wdfrequest.h:662
enum _WDF_REQUEST_SEND_OPTIONS_FLAGS WDF_REQUEST_SEND_OPTIONS_FLAGS
_Must_inspect_result_ _In_ WDFREQUEST _In_reads_bytes_(Length) PVOID Buffer
Definition: wdfrequest.h:1467
struct _WDF_REQUEST_SEND_OPTIONS * PWDF_REQUEST_SEND_OPTIONS
struct _WDF_REQUEST_COMPLETION_PARAMS * PWDF_REQUEST_COMPLETION_PARAMS
EVT_WDF_REQUEST_CANCEL * PFN_WDF_REQUEST_CANCEL
Definition: wdfrequest.h:130
struct _WDF_REQUEST_FORWARD_OPTIONS WDF_REQUEST_FORWARD_OPTIONS
enum _WDF_REQUEST_STOP_ACTION_FLAGS WDF_REQUEST_STOP_ACTION_FLAGS
struct _WDF_REQUEST_SEND_OPTIONS WDF_REQUEST_SEND_OPTIONS
struct _WDF_REQUEST_REUSE_PARAMS * PWDF_REQUEST_REUSE_PARAMS
FORCEINLINE VOID WDF_REQUEST_REUSE_PARAMS_INIT(_Out_ PWDF_REQUEST_REUSE_PARAMS Params, _In_ ULONG Flags, _In_ NTSTATUS Status)
Definition: wdfrequest.h:364
struct _WDF_REQUEST_COMPLETION_PARAMS WDF_REQUEST_COMPLETION_PARAMS
struct _WDF_REQUEST_PARAMETERS WDF_REQUEST_PARAMETERS
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t _Outptr_result_bytebuffer_maybenull_ Length PVOID * InputBuffer
Definition: wdfrequest.h:1312
FORCEINLINE VOID WDF_REQUEST_FORWARD_OPTIONS_INIT(_Out_ PWDF_REQUEST_FORWARD_OPTIONS ForwardOptions)
Definition: wdfrequest.h:453
_In_ WDFREQUEST _In_ PFN_WDF_REQUEST_CANCEL EvtRequestCancel
Definition: wdfrequest.h:730
_Must_inspect_result_ _In_ WDFREQUEST _In_ size_t MinimumRequiredLength
Definition: wdfrequest.h:1171
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE DestinationQueue
Definition: wdfrequest.h:1572
enum _WDF_REQUEST_FORWARD_OPTIONS_FLAGS WDF_REQUEST_FORWARD_OPTIONS_FLAGS
struct _WDF_USB_REQUEST_COMPLETION_PARAMS * PWDF_USB_REQUEST_COMPLETION_PARAMS
Definition: wdfrequest.h:220
struct _WDF_REQUEST_PARAMETERS * PWDF_REQUEST_PARAMETERS
_Must_inspect_result_ _In_ WDFREQUEST _In_ WDFQUEUE ParentDeviceQueue
Definition: wdfrequest.h:1733
#define WDFAPI
Definition: wdftypes.h:53
#define FORCEINLINE
Definition: wdftypes.h:67
#define POINTER_ALIGNMENT
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
unsigned char UCHAR
Definition: xmlstorage.h:181