ReactOS 0.4.15-dev-7788-g1ad9096
fxirp.hpp
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation
4
5Module Name:
6
7 FxIrp.hpp
8
9Abstract:
10
11 This module implements a class for handling irps.
12
13Author:
14
15
16
17Environment:
18
19 Both kernel and user mode
20
21Revision History:
22
23--*/
24
25#ifndef _FXIRP_HPP_
26#define _FXIRP_HPP_
27
28class FxIrp {
29
30 friend struct FxAutoIrp;
31
32private:
34
35public:
36
37 FxIrp() {}
38
40 {
41 }
42
43 // A function for when not assigning
44
45 MdIrp
46 SetIrp(
48 );
49
50 MdIrp
51 GetIrp(
52 VOID
53 );
54
55
56 VOID
59 );
60
61
65 );
66
67
68
69
70
71
72
76 );
77
78
79 VOID
81 );
82
85 VOID
86 );
87
88 VOID
95 );
96
97 VOID
105 );
106
110 );
111
112 //
113 // SendIrpSynchronously achieves synchronous behavior by waiting on an
114 // event after submitting the IRP. The event creation can fail in UM, but
115 // not in KM. Hence, in UM the return code could either indicate event
116 // creation failure or it could indicate the status set on the IRP by the
117 // lower driver. In KM, the return code only indicates the status set on
118 // the IRP by the lower lower, because event creation cannot fail.
119 //
124 );
125
126
127 VOID
129 VOID
130 );
131
132 VOID
135 );
136
137 VOID
139 VOID
140 );
141
142 UCHAR
144 VOID
145 );
146
147 UCHAR
149 VOID
150 );
151
152 UCHAR
154 VOID
155 );
156
159 VOID
160 );
161
164 VOID
165 );
166
167 VOID
171 );
172
173 VOID
176 );
177
178 VOID
181 );
182
183 VOID
186 );
187
188 VOID
189 SetFlags(
191 );
192
193 PVOID
196 );
197
198 ULONG
199 GetFlags(
200 VOID
201 );
202
205 VOID
206 );
207
208
211 VOID
212 );
213
214 static
218 );
219
220
221 VOID
223 VOID
224 );
225
226
227 VOID
229 );
230
231
232 BOOLEAN
234 );
235
236
237 VOID
239 VOID
240 );
241
242
243 VOID
244 SetStatus(
246 );
247
248
250 GetStatus(
251 );
252
253
254 BOOLEAN
255 Cancel(
256 VOID
257 );
258
259 VOID
260 SetCancel(
262 );
263
264
265 BOOLEAN
267 );
268
269
270 KIRQL
272 );
273
274
275 VOID
278 );
279
280
283 );
284
285
286 CCHAR
288 );
289
290 CCHAR
292 );
293
295 ListEntry(
296 );
297
298
299 PVOID
301 );
302
303 PVOID
305 );
306
307 PMDL
308 GetMdl(
309 );
310
311 PMDL*
313 );
314
315 PVOID
317 );
318
319 VOID
320 Reuse(
322 );
323
324 //
325 // Methods for IO_STACK_LOCATION members
326 //
327
328 VOID
331 );
332
333
334 VOID
337 );
338
339 //
340 // Get Methods for IO_STACK_LOCATION.Parameters.Power
341 //
342
345 );
346
347
350 );
351
354 );
355
356
359 );
360
361
364 );
365
366
369 );
370
371
374 VOID
375 );
376
377
378 //
379 // Get/Set Method for IO_STACK_LOCATION.Parameters.QueryDeviceRelations
380 //
381
384 );
385
386 VOID
388 __in DEVICE_RELATION_TYPE DeviceRelation
389 );
390
391 //
392 // Get/Set Methods for IO_STACK_LOCATION.Parameters.DeviceCapabilities
393 //
394
397 );
398
399 VOID
402 );
403
406 VOID
407 );
408
409 VOID
412 );
413
414
415 //
416 // Get/Set Methods for IO_STACK_LOCATION.Parameters.Write.ByteOffset.QuadPart
417 //
418
421 );
422
423
424 VOID
427 );
428
429 //
430 // Get/Set Methods for IO_STACK_LOCATION.Parameters.Write.Length
431 //
432
433 ULONG
435 );
436
437 VOID
439 __in ULONG IoLength
440 );
441
442 PVOID*
444 );
445
446 VOID
449 );
450
451 PVOID*
453 );
454
455 PVOID*
457 );
458
459 //
460 // Get/Set Methods for IO_STACK_LOCATION.Parameters.StartDevice
461 //
462
465 );
466
467
468 VOID
471 );
472
473
476 );
477
478
479 VOID
482 );
483
484 //
485 // Get Method for IO_STACK_LOCATION.Parameters.QueryDeviceText
486 //
487
488 LCID
490 );
491
492
495 );
496
497 //
498 // Get Method for IO_STACK_LOCATION.Parameters.SetLock
499 //
500
501 BOOLEAN
503 );
504
505 //
506 // Get Method for IO_STACK_LOCATION.Parameters.QueryId
507 //
508
511 );
512
513 //
514 // Get/Set Methods for IO_STACK_LOCATION.Parameters.QueryInterface
515 //
516
519 );
520
521
522 const GUID*
524 );
525
526
527 USHORT
529 );
530
531
532 USHORT
534 );
535
536
537 PVOID
539 );
540
541 VOID
544 );
545
546 VOID
548 __in const GUID* InterfaceType
549 );
550
551 VOID
554 );
555
556 VOID
559 );
560
561 VOID
564 );
565
566 //
567 // Get Method for IO_STACK_LOCATION.Parameters.UsageNotification
568 //
569
572 );
573
574
575 BOOLEAN
577 );
578
579
580 VOID
582 __in BOOLEAN InPath
583 );
584
585
586 BOOLEAN
588 );
589
590 ULONG
592 VOID
593 );
594
595 ULONG
597 VOID
598 );
599
600 ULONG
602 VOID
603 );
604
605 ULONG
607 VOID
608 );
609
610 PVOID
612 VOID
613 );
614
615 //
616 // Set Methods for IO_STACK_LOCATION.Parameters.DeviceControl members
617 //
618
619 VOID
621 __in ULONG DeviceIoControlCode
622 );
623
624 VOID
627 );
628
629 VOID
632 );
633
634 VOID
636 __in PVOID Type3InputBuffer
637 );
638
639 ULONG
641 VOID
642 );
643
644 ULONG
646 VOID
647 );
648
649 VOID
652 );
653
654 VOID
657 );
658
659 PVOID
661 VOID
662 );
663
664 //
665 // Methods for IO_STACK_LOCATION
666 //
667
668 VOID
670 VOID
671 );
672
673 VOID
675 VOID
676 );
677
678 VOID
680 __in FxIrp* Irp
681 );
682
683 ULONG
685 VOID
686 );
687
688 VOID
689 FreeIrp(
690 VOID
691 );
692
694 GetThread(
695 VOID
696 );
697
698 BOOLEAN
700 VOID
701 );
702
703private:
704
705 static
707 STDCALL
712 );
713
714public:
715
717 static
718 MdIrp
722 );
723
724 static
725 MdIrp
727 __in PLIST_ENTRY Ple
728 );
729
731 static
739 );
740
743 VOID
744 );
745
746 PVOID
748 );
749
750 ULONG
752 );
753
754 VOID
757 );
758
759 VOID
761 _Out_ PIO_STATUS_BLOCK StatusBlock
762 );
763
764 BOOLEAN
765 HasStack(
766 _In_ UCHAR StackCount
767 );
768
769 BOOLEAN
771 VOID
772 );
773
774#if (FX_CORE_MODE == FX_CORE_USER_MODE)
775
776 IWudfIoIrp*
777 GetIoIrp(
778 VOID
779 );
780
781 IWudfPnpIrp*
782 GetPnpIrp(
783 VOID
784 );
785#endif
786
787};
788
789//
790// FxAutoIrp adds value to FxIrp by automatically freeing the associated MdIrp
791// when it goes out of scope
792//
793struct FxAutoIrp : public FxIrp {
794
797 ) :
798 FxIrp(Irp)
799 {
800 }
801
802
803 ~FxAutoIrp();
804};
805
806#endif // _FXIRP_HPP_
unsigned char BOOLEAN
static ULONG StackSize
Definition: StackOverflow.c:19
LONG NTSTATUS
Definition: precomp.h:26
Definition: fxirp.hpp:28
UCHAR GetMajorFunction(VOID)
Definition: fxirpum.cpp:217
ULONG GetParameterWriteLength(VOID)
Definition: fxirpum.cpp:1601
MdEThread GetThread(VOID)
Definition: fxirpum.cpp:1631
POWER_ACTION GetParameterPowerShutdownType()
Definition: fxirpum.cpp:719
PDEVICE_CAPABILITIES GetParameterDeviceCapabilities()
Definition: fxirpum.cpp:1132
DEVICE_RELATION_TYPE GetParameterQDRType()
Definition: fxirpum.cpp:731
SYSTEM_POWER_STATE_CONTEXT GetParameterPowerSystemPowerStateContext()
Definition: fxirpum.cpp:671
VOID CompleteRequest(__in_opt CCHAR PriorityBoost=IO_NO_INCREMENT)
Definition: fxirpum.cpp:24
VOID InitNextStackUsingStack(__in FxIrp *Irp)
Definition: fxirpum.cpp:1035
FxIrp(MdIrp irp)
Definition: fxirp.hpp:39
VOID SetParameterUsageNotificationInPath(__in BOOLEAN InPath)
Definition: fxirpum.cpp:821
MdCancelRoutine SetCancelRoutine(__in_opt MdCancelRoutine CancelRoutine)
Definition: fxirpum.cpp:124
MdIrp m_Irp
Definition: fxirp.hpp:33
VOID SetParameterQueryInterfaceSize(__in USHORT Size)
Definition: fxirpkm.hpp:1082
IWudfIoIrp * GetIoIrp(VOID)
Definition: fxirpum.cpp:1777
PCM_RESOURCE_LIST GetParameterAllocatedResources()
Definition: fxirpum.cpp:843
LCID GetParameterQueryDeviceTextLocaleId()
Definition: fxirpum.cpp:975
UCHAR GetCurrentStackFlags(VOID)
Definition: fxirpum.cpp:1243
DEVICE_TEXT_TYPE GetParameterQueryDeviceTextType()
Definition: fxirpum.cpp:984
BOOLEAN GetParameterUsageNotificationInPath()
Definition: fxirpum.cpp:811
PVOID * GetNextStackParameterOthersArgument2Pointer()
Definition: fxirpum.cpp:1434
CHECK_RETURN_IF_USER_MODE NTSTATUS SendIrpSynchronously(__in MdDeviceObject DeviceObject)
Definition: fxirpum.cpp:151
ULONG GetParameterIoctlCodeBufferMethod(VOID)
Definition: fxirpum.cpp:1490
VOID SetMinorFunction(__in UCHAR MinorFunction)
Definition: fxirpum.cpp:967
PVOID * GetNextStackParameterOthersArgument4Pointer()
Definition: fxirpum.cpp:1447
PMDL * GetMdlAddressPointer()
Definition: fxirpum.cpp:1323
ULONG GetParameterIoctlCode(VOID)
Definition: fxirpum.cpp:1474
VOID SetSystemBuffer(__in PVOID Value)
Definition: fxirpum.cpp:1313
static _Must_inspect_result_ MdIrp AllocateIrp(_In_ CCHAR StackSize, _In_opt_ FxDevice *Device=NULL)
Definition: fxirpum.cpp:1089
VOID ClearNextStack(VOID)
Definition: fxirpum.cpp:1183
VOID SetCompletionRoutineEx(__in MdDeviceObject DeviceObject, __in MdCompletionRoutine CompletionRoutine, __in PVOID Context, __in BOOLEAN InvokeOnSuccess=TRUE, __in BOOLEAN InvokeOnError=TRUE, __in BOOLEAN InvokeOnCancel=TRUE)
Definition: fxirpum.cpp:104
BOOLEAN PendingReturned()
Definition: fxirpum.cpp:429
BOOLEAN Cancel(VOID)
Definition: fxirpum.cpp:475
VOID SetParameterQueryInterfaceType(__in const GUID *InterfaceType)
Definition: fxirpkm.hpp:1063
CCHAR GetCurrentIrpStackLocationIndex()
Definition: fxirpum.cpp:521
VOID SetCancel(__in BOOLEAN Cancel)
Definition: fxirpum.cpp:1294
KIRQL GetCancelIrql()
Definition: fxirpum.cpp:492
FxIrp()
Definition: fxirp.hpp:37
MdCompletionRoutine GetNextCompletionRoutine(VOID)
Definition: fxirpum.cpp:1206
VOID SetMajorFunction(__in UCHAR MajorFunction)
Definition: fxirpum.cpp:905
VOID SetParameterIoctlCode(__in ULONG DeviceIoControlCode)
Definition: fxirpum.cpp:1157
ULONG GetParameterIoctlOutputBufferLength(VOID)
Definition: fxirpum.cpp:1504
POWER_STATE_TYPE GetParameterPowerType()
Definition: fxirpum.cpp:683
VOID StartNextPowerIrp()
Definition: fxirpum.cpp:61
BOOLEAN HasStack(_In_ UCHAR StackCount)
Definition: fxirpum.cpp:1745
static PIO_STACK_LOCATION _GetAndClearNextStackLocation(__in MdIrp Irp)
Definition: fxirpkm.hpp:371
MdFileObject GetCurrentStackFileObject(VOID)
Definition: fxirpum.cpp:1258
BUS_QUERY_ID_TYPE GetParameterQueryIdType()
Definition: fxirpum.cpp:1006
POWER_STATE GetParameterPowerState()
Definition: fxirpum.cpp:1015
PMDL GetMdl()
Definition: fxirpum.cpp:625
static NTSTATUS STDCALL _IrpSynchronousCompletion(__in MdDeviceObject DeviceObject, __in MdIrp OriginalIrp, __in PVOID Context)
Definition: fxirpum.cpp:133
VOID SetNextIrpStackLocation(VOID)
Definition: fxirpum.cpp:1235
USHORT GetParameterQueryInterfaceSize()
Definition: fxirpum.cpp:775
MdFileObject GetFileObject(VOID)
Definition: fxirpum.cpp:1460
USHORT GetParameterQueryInterfaceVersion()
Definition: fxirpum.cpp:765
VOID MarkIrpPending()
Definition: fxirpum.cpp:415
VOID SetParameterQDRType(__in DEVICE_RELATION_TYPE DeviceRelation)
Definition: fxirpkm.hpp:678
PCM_RESOURCE_LIST GetParameterAllocatedResourcesTranslated()
Definition: fxirpum.cpp:877
VOID SkipCurrentIrpStackLocation(VOID)
Definition: fxirpum.cpp:400
PVOID GetSystemBuffer()
Definition: fxirpum.cpp:543
VOID SetNextStackFlags(__in UCHAR Flags)
Definition: fxirpum.cpp:1556
PVOID GetParameterQueryInterfaceInterfaceSpecificData()
Definition: fxirpum.cpp:785
VOID PropagatePendingReturned(VOID)
Definition: fxirpum.cpp:443
VOID SetStatus(__in NTSTATUS Status)
Definition: fxirpum.cpp:457
IWudfPnpIrp * GetPnpIrp(VOID)
Definition: fxirpum.cpp:1797
PVOID GetDriverContext()
Definition: fxirpum.cpp:1673
SYSTEM_POWER_STATE GetParameterPowerStateSystemState()
Definition: fxirpum.cpp:707
PVOID GetOutputBuffer()
Definition: fxirpum.cpp:594
NTSTATUS GetStatus()
Definition: fxirpum.cpp:466
VOID CopyToNextIrpStackLocation(__in PIO_STACK_LOCATION Stack)
Definition: fxirpum.cpp:1216
const GUID * GetParameterQueryInterfaceType()
Definition: fxirpum.cpp:755
VOID SetNextParameterWriteLength(__in ULONG IoLength)
Definition: fxirpum.cpp:1398
VOID FreeIrp(VOID)
Definition: fxirpum.cpp:1648
PVOID * GetNextStackParameterOthersArgument1Pointer()
Definition: fxirpum.cpp:1421
VOID SetParameterAllocatedResourcesTranslated(__in PCM_RESOURCE_LIST AllocatedResourcesTranslated)
Definition: fxirpum.cpp:897
VOID SetParameterQueryInterfaceInterface(__in PINTERFACE Interface)
Definition: fxirpkm.hpp:1053
VOID SetNextStackFileObject(_In_ MdFileObject FileObject)
Definition: fxirpum.cpp:1573
ULONG GetCurrentParameterWriteLength()
PLIST_ENTRY ListEntry()
Definition: fxirpum.cpp:535
VOID SetParameterIoctlInputBufferLength(__in ULONG InputBufferLength)
Definition: fxirpum.cpp:1166
MdIrp GetIrp(VOID)
Definition: fxirpum.cpp:15
VOID SetParameterQueryInterfaceInterfaceSpecificData(__in PVOID InterfaceSpecificData)
Definition: fxirpkm.hpp:1091
PINTERFACE GetParameterQueryInterfaceInterface()
Definition: fxirpum.cpp:746
DEVICE_POWER_STATE GetParameterPowerStateDeviceState()
Definition: fxirpum.cpp:695
VOID SetParameterIoctlType3InputBuffer(__in PVOID Type3InputBuffer)
Definition: fxirpum.cpp:1175
PIO_STACK_LOCATION GetCurrentIrpStackLocation(VOID)
Definition: fxirpum.cpp:370
CCHAR GetStackCount()
Definition: fxirpum.cpp:1304
PVOID GetContext(__in ULONG Index)
Definition: fxirpum.cpp:361
ULONG GetDriverContextSize()
Definition: fxirpum.cpp:1682
static MdIrp GetIrpFromListEntry(__in PLIST_ENTRY Ple)
Definition: fxirpum.cpp:1190
BOOLEAN GetParameterSetLockLock()
Definition: fxirpum.cpp:993
VOID CopyParameters(_Out_ PWDF_REQUEST_PARAMETERS Parameters)
Definition: fxirpum.cpp:1691
ULONG GetCurrentFlags(VOID)
Definition: fxirpum.cpp:1613
VOID SetInformation(__in ULONG_PTR Information)
Definition: fxirpum.cpp:504
PIO_STATUS_BLOCK GetStatusBlock(VOID)
Definition: fxirpum.cpp:1664
PIO_STACK_LOCATION GetNextIrpStackLocation(VOID)
Definition: fxirpum.cpp:387
BOOLEAN IsCurrentIrpStackLocationValid(VOID)
Definition: fxirpum.cpp:1761
VOID SetCompletionRoutine(__in MdCompletionRoutine CompletionRoutine, __in PVOID Context, __in BOOLEAN InvokeOnSuccess=TRUE, __in BOOLEAN InvokeOnError=TRUE, __in BOOLEAN InvokeOnCancel=TRUE)
Definition: fxirpum.cpp:72
MdIrp SetIrp(MdIrp irp)
Definition: fxirpkm.hpp:71
VOID SetUserBuffer(__in PVOID Value)
Definition: fxirpum.cpp:1341
PVOID GetCurrentParametersPointer(VOID)
Definition: fxirpum.cpp:1622
NTSTATUS PoCallDriver(__in MdDeviceObject DeviceObject)
Definition: fxirpum.cpp:48
BOOLEAN IsCanceled()
Definition: fxirpum.cpp:484
VOID SetParameterDeviceCapabilities(__in PDEVICE_CAPABILITIES DeviceCapabilities)
Definition: fxirpum.cpp:1145
UCHAR GetMinorFunction(VOID)
Definition: fxirpum.cpp:297
VOID SetParameterIoctlOutputBufferLength(__in ULONG OutputBufferLength)
Definition: fxirpum.cpp:1532
VOID SetParameterQueryInterfaceVersion(__in USHORT Version)
Definition: fxirpkm.hpp:1073
VOID SetContext(__in ULONG Index, __in PVOID Value)
Definition: fxirpum.cpp:351
ULONG GetParameterIoctlInputBufferLength(VOID)
Definition: fxirpum.cpp:1518
PVOID GetParameterIoctlType3InputBuffer(VOID)
Definition: fxirpum.cpp:1542
VOID ClearNextStackLocation(VOID)
Definition: fxirpum.cpp:1581
VOID SetNextStackParameterOthersArgument1(__in PVOID Argument1)
Definition: fxirpum.cpp:1411
VOID SetParameterAllocatedResources(__in PCM_RESOURCE_LIST AllocatedResources)
Definition: fxirpum.cpp:869
ULONG GetFlags(VOID)
Definition: fxirpum.cpp:1281
ULONG_PTR GetInformation()
Definition: fxirpum.cpp:513
VOID SetFlags(__in ULONG Flags)
Definition: fxirpum.cpp:1266
NTSTATUS CallDriver(__in MdDeviceObject DeviceObject)
Definition: fxirpum.cpp:36
VOID SetCurrentDeviceObject(__in MdDeviceObject DeviceObject)
Definition: fxirpum.cpp:1362
VOID CopyStatus(_Out_ PIO_STATUS_BLOCK StatusBlock)
Definition: fxirpum.cpp:1736
VOID SetNextParameterWriteByteOffsetQuadPart(__in LONGLONG DeviceOffset)
Definition: fxirpum.cpp:1385
ULONG GetParameterReadLength(VOID)
Definition: fxirpum.cpp:1589
static _Must_inspect_result_ NTSTATUS RequestPowerIrp(__in MdDeviceObject DeviceObject, __in UCHAR MinorFunction, __in POWER_STATE PowerState, __in MdRequestPowerComplete CompletionFunction, __in PVOID Context)
Definition: fxirpum.cpp:1047
LONGLONG GetParameterWriteByteOffsetQuadPart()
Definition: fxirpum.cpp:1373
VOID Reuse(__in NTSTATUS Status=STATUS_SUCCESS)
Definition: fxirpum.cpp:661
BOOLEAN GetNextStackParameterUsageNotificationInPath()
Definition: fxirpum.cpp:830
PVOID GetUserBuffer()
Definition: fxirpum.cpp:633
DEVICE_USAGE_NOTIFICATION_TYPE GetParameterUsageNotificationType()
Definition: fxirpum.cpp:801
BOOLEAN Is32bitProcess(VOID)
Definition: fxirpum.cpp:1640
VOID SetMdlAddress(__in PMDL Value)
Definition: fxirpum.cpp:1330
_In_ PTRANSFER_PACKET _In_ ULONG _In_ PIRP OriginalIrp
Definition: classp.h:1757
_In_ PIRP Irp
Definition: csq.h:116
#define __in
Definition: dbghelp.h:35
#define __in_opt
Definition: dbghelp.h:38
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
UCHAR KIRQL
Definition: env_spec_w32.h:591
return pDevice GetDeviceObject()
return pRequest GetRequestorMode()
irp CopyCurrentIrpStackLocationToNext()
FxIrp * irp
Status
Definition: gdiplustypes.h:25
#define _Must_inspect_result_
Definition: ms_sal.h:558
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
PFILE_OBJECT MdFileObject
Definition: mxgeneralkm.h:32
#define CHECK_RETURN_IF_USER_MODE
Definition: mxmacros.h:26
IWudfIrp * MdIrp
Definition: mxum.h:103
WUDF_DRIVER_CANCEL * MdCancelRoutine
Definition: mxum.h:143
REQUEST_POWER_COMPLETE * MdRequestPowerComplete
Definition: mxum.h:162
WUDF_IO_COMPLETION_ROUTINE * MdCompletionRoutine
Definition: mxum.h:142
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
Definition: ndis.h:4643
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResourcesTranslated
Definition: ndis.h:4644
enum _POWER_STATE_TYPE POWER_STATE_TYPE
POWER_ACTION
Definition: ntpoapi.h:122
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
unsigned short USHORT
Definition: pedump.c:61
DWORD LCID
Definition: nls.h:13
#define STATUS_SUCCESS
Definition: shellext.h:65
FxAutoIrp(__in_opt MdIrp Irp=NULL)
Definition: fxirp.hpp:795
Definition: typedefs.h:120
int64_t LONGLONG
Definition: typedefs.h:68
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
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_In_ UCHAR MajorFunction
Definition: wdfdevice.h:1697
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
Definition: wdfdevice.h:3034
_In_ UCHAR _In_ UCHAR MinorFunction
Definition: wdfdevice.h:1699
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Definition: wdffdo.h:465
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
Definition: wdffdo.h:463
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
Definition: wdffdo.h:472
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
Definition: wdfio.h:869
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:322
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG DeviceOffset
Definition: wdfiotarget.h:865
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ WDFREQUEST _In_ NTSTATUS _In_ CCHAR PriorityBoost
Definition: wdfrequest.h:1016
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
Definition: wdfrequest.h:639
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1049
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:895
#define DeviceCapabilities
Definition: wingdi.h:4449
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_IRQL_requires_same_ _In_opt_ PVOID Argument1
Definition: cmtypes.h:696
_In_opt_ PDRIVER_CANCEL CancelRoutine
Definition: iofuncs.h:2744
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN _In_ BOOLEAN InvokeOnError
Definition: iofuncs.h:1943
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN _In_ BOOLEAN _In_ BOOLEAN InvokeOnCancel
Definition: iofuncs.h:1944
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN InvokeOnSuccess
Definition: iofuncs.h:1942
enum _BUS_QUERY_ID_TYPE BUS_QUERY_ID_TYPE
#define IO_NO_INCREMENT
Definition: iotypes.h:598
* PDEVICE_CAPABILITIES
Definition: iotypes.h:965
enum _DEVICE_TEXT_TYPE DEVICE_TEXT_TYPE
enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE
enum _DEVICE_USAGE_NOTIFICATION_TYPE DEVICE_USAGE_NOTIFICATION_TYPE
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
_In_ UCHAR _In_ POWER_STATE _In_opt_ PREQUEST_POWER_COMPLETE CompletionFunction
Definition: pofuncs.h:44
unsigned char UCHAR
Definition: xmlstorage.h:181