ReactOS 0.4.16-dev-1946-g52006dd
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 VOID GetTriageInfo(VOID);
31 friend struct FxAutoIrp;
32
33private:
35
36public:
37
38 FxIrp() {}
39
41 {
42 }
43
44 // A function for when not assigning
45
46 MdIrp
47 SetIrp(
49 );
50
51 MdIrp
52 GetIrp(
53 VOID
54 );
55
56
57 VOID
60 );
61
62
66 );
67
68
69
70
71
72
73
77 );
78
79
80 VOID
82 );
83
86 VOID
87 );
88
89 VOID
96 );
97
98 VOID
106 );
107
111 );
112
113 //
114 // SendIrpSynchronously achieves synchronous behavior by waiting on an
115 // event after submitting the IRP. The event creation can fail in UM, but
116 // not in KM. Hence, in UM the return code could either indicate event
117 // creation failure or it could indicate the status set on the IRP by the
118 // lower driver. In KM, the return code only indicates the status set on
119 // the IRP by the lower lower, because event creation cannot fail.
120 //
125 );
126
127
128 VOID
130 VOID
131 );
132
133 VOID
136 );
137
138 VOID
140 VOID
141 );
142
143 UCHAR
145 VOID
146 );
147
148 UCHAR
150 VOID
151 );
152
153 UCHAR
155 VOID
156 );
157
160 VOID
161 );
162
165 VOID
166 );
167
168 VOID
172 );
173
174 VOID
177 );
178
179 VOID
182 );
183
184 VOID
187 );
188
189 VOID
190 SetFlags(
192 );
193
194 PVOID
197 );
198
199 ULONG
200 GetFlags(
201 VOID
202 );
203
206 VOID
207 );
208
209
212 VOID
213 );
214
215 static
219 );
220
221
222 VOID
224 VOID
225 );
226
227
228 VOID
230 );
231
232
233 BOOLEAN
235 );
236
237
238 VOID
240 VOID
241 );
242
243
244 VOID
245 SetStatus(
247 );
248
249
251 GetStatus(
252 );
253
254
255 BOOLEAN
256 Cancel(
257 VOID
258 );
259
260 VOID
261 SetCancel(
263 );
264
265
266 BOOLEAN
268 );
269
270
271 KIRQL
273 );
274
275
276 VOID
279 );
280
281
284 );
285
286
287 CCHAR
289 );
290
291 CCHAR
293 );
294
296 ListEntry(
297 );
298
299
300 PVOID
302 );
303
304 PVOID
306 );
307
308 PMDL
309 GetMdl(
310 );
311
312 PMDL*
314 );
315
316 PVOID
318 );
319
320 VOID
321 Reuse(
323 );
324
325 //
326 // Methods for IO_STACK_LOCATION members
327 //
328
329 VOID
332 );
333
334
335 VOID
338 );
339
340 //
341 // Get Methods for IO_STACK_LOCATION.Parameters.Power
342 //
343
346 );
347
348
351 );
352
355 );
356
357
360 );
361
362
365 );
366
367
370 );
371
372
375 VOID
376 );
377
378
379 //
380 // Get/Set Method for IO_STACK_LOCATION.Parameters.QueryDeviceRelations
381 //
382
385 );
386
387 VOID
389 __in DEVICE_RELATION_TYPE DeviceRelation
390 );
391
392 //
393 // Get/Set Methods for IO_STACK_LOCATION.Parameters.DeviceCapabilities
394 //
395
398 );
399
400 VOID
403 );
404
407 VOID
408 );
409
410 VOID
413 );
414
415
416 //
417 // Get/Set Methods for IO_STACK_LOCATION.Parameters.Write.ByteOffset.QuadPart
418 //
419
422 );
423
424
425 VOID
428 );
429
430 //
431 // Get/Set Methods for IO_STACK_LOCATION.Parameters.Write.Length
432 //
433
434 ULONG
436 );
437
438 VOID
440 __in ULONG IoLength
441 );
442
443 PVOID*
445 );
446
447 VOID
450 );
451
452 PVOID*
454 );
455
456 PVOID*
458 );
459
460 //
461 // Get/Set Methods for IO_STACK_LOCATION.Parameters.StartDevice
462 //
463
466 );
467
468
469 VOID
472 );
473
474
477 );
478
479
480 VOID
483 );
484
485 //
486 // Get Method for IO_STACK_LOCATION.Parameters.QueryDeviceText
487 //
488
489 LCID
491 );
492
493
496 );
497
498 //
499 // Get Method for IO_STACK_LOCATION.Parameters.SetLock
500 //
501
502 BOOLEAN
504 );
505
506 //
507 // Get Method for IO_STACK_LOCATION.Parameters.QueryId
508 //
509
512 );
513
514 //
515 // Get/Set Methods for IO_STACK_LOCATION.Parameters.QueryInterface
516 //
517
520 );
521
522
523 const GUID*
525 );
526
527
528 USHORT
530 );
531
532
533 USHORT
535 );
536
537
538 PVOID
540 );
541
542 VOID
545 );
546
547 VOID
549 __in const GUID* InterfaceType
550 );
551
552 VOID
555 );
556
557 VOID
560 );
561
562 VOID
565 );
566
567 //
568 // Get Method for IO_STACK_LOCATION.Parameters.UsageNotification
569 //
570
573 );
574
575
576 BOOLEAN
578 );
579
580
581 VOID
583 __in BOOLEAN InPath
584 );
585
586
587 BOOLEAN
589 );
590
591 ULONG
593 VOID
594 );
595
596 ULONG
598 VOID
599 );
600
601 ULONG
603 VOID
604 );
605
606 ULONG
608 VOID
609 );
610
611 PVOID
613 VOID
614 );
615
616 //
617 // Set Methods for IO_STACK_LOCATION.Parameters.DeviceControl members
618 //
619
620 VOID
622 __in ULONG DeviceIoControlCode
623 );
624
625 VOID
628 );
629
630 VOID
633 );
634
635 VOID
637 __in PVOID Type3InputBuffer
638 );
639
640 ULONG
642 VOID
643 );
644
645 ULONG
647 VOID
648 );
649
650 VOID
653 );
654
655 VOID
658 );
659
660 PVOID
662 VOID
663 );
664
665 //
666 // Methods for IO_STACK_LOCATION
667 //
668
669 VOID
671 VOID
672 );
673
674 VOID
676 VOID
677 );
678
679 VOID
681 __in FxIrp* Irp
682 );
683
684 ULONG
686 VOID
687 );
688
689 VOID
690 FreeIrp(
691 VOID
692 );
693
695 GetThread(
696 VOID
697 );
698
699 BOOLEAN
701 VOID
702 );
703
704private:
705
706 static
708 NTAPI
713 );
714
715public:
716
718 static
719 MdIrp
723 );
724
725 static
726 MdIrp
728 __in PLIST_ENTRY Ple
729 );
730
732 static
740 );
741
744 VOID
745 );
746
747 PVOID
749 );
750
751 ULONG
753 );
754
755 VOID
758 );
759
760 VOID
762 _Out_ PIO_STATUS_BLOCK StatusBlock
763 );
764
765 BOOLEAN
766 HasStack(
767 _In_ UCHAR StackCount
768 );
769
770 BOOLEAN
772 VOID
773 );
774
775#if (FX_CORE_MODE == FX_CORE_USER_MODE)
776
777 IWudfIoIrp*
778 GetIoIrp(
779 VOID
780 );
781
782 IWudfPnpIrp*
783 GetPnpIrp(
784 VOID
785 );
786#endif
787
788};
789
790//
791// FxAutoIrp adds value to FxIrp by automatically freeing the associated MdIrp
792// when it goes out of scope
793//
794struct FxAutoIrp : public FxIrp {
795
798 ) :
799 FxIrp(Irp)
800 {
801 }
802
803
804 ~FxAutoIrp();
805};
806
807#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:40
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:34
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:38
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
VOID SetNextIrpStackLocation(VOID)
Definition: fxirpum.cpp:1235
USHORT GetParameterQueryInterfaceSize()
Definition: fxirpum.cpp:775
MdFileObject GetFileObject(VOID)
Definition: fxirpum.cpp:1460
friend VOID GetTriageInfo(VOID)
USHORT GetParameterQueryInterfaceVersion()
Definition: fxirpum.cpp:765
VOID MarkIrpPending()
Definition: fxirpum.cpp:415
static NTSTATUS NTAPI _IrpSynchronousCompletion(__in MdDeviceObject DeviceObject, __in MdIrp OriginalIrp, __in PVOID Context)
Definition: fxirpum.cpp:133
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
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
#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
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:796
Definition: typedefs.h:120
int64_t LONGLONG
Definition: typedefs.h:68
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
char CCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
_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:4539
_In_ UCHAR MajorFunction
Definition: wdfdevice.h:1703
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
Definition: wdfdevice.h:3040
_In_ UCHAR _In_ UCHAR MinorFunction
Definition: wdfdevice.h:1705
_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:4895
_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