ReactOS 0.4.16-dev-334-g4d9f67c
fxglobalskm.h
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation
4
5Module Name:
6
7 FxGlobalsKm.h
8
9Abstract:
10
11 This module contains kernel-mode specific globals definitions
12 for the frameworks.
13
14 For common definitions common between km and um please see
15 FxGlobals.h
16
17Author:
18
19
20
21Environment:
22
23 Kernel mode only
24
25Revision History:
26
27
28--*/
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33extern PCHAR WdfLdrType;
34
35#define WDF_LDR_STATIC_TYPE_STR "WdfStatic"
36
37// forward definitions
40
45};
46
47#define NUM_MDLS_IN_INFO (16)
48
53};
54
55#define DDI_ENTRY_IMPERSONATION_OK()
56#define DDI_ENTRY()
57
58typedef
61 );
62
63typedef
66 VOID
67 );
68
69typedef
79 );
80
81typedef
88 );
89
90typedef
94 );
95
96typedef
100 );
101
102typedef
106 );
107
108typedef
122 );
123
124typedef
128 );
129
130typedef
134 );
135
136typedef
140 );
141
142typedef
145 __inout PSLIST_HEADER ListHead
146 );
147
148typedef
151 __inout PSLIST_HEADER ListHead,
152 __inout PSLIST_ENTRY ListEntry
153 );
154
155typedef
159 );
160
161typedef
165 );
166
167typedef
170 VOID
171 );
172
173typedef
178 );
179
180typedef
188 );
189
190typedef
193 VOID
194 );
195
196typedef
200 );
201
202typedef
205 __in USHORT GroupNumber
206 );
207
208typedef
211 VOID
212 );
213
214typedef
217 VOID
218 );
219
220typedef
223 VOID
224 );
225
226typedef
230 );
231
232typedef
236 __in PPO_FX_DEVICE PoxDevice,
237 __out POHANDLE * Handle
238 );
239
240typedef
243 __in POHANDLE Handle
244 );
245
246typedef
249 __in POHANDLE Handle
250 );
251
252typedef
255 __in POHANDLE Handle,
258 );
259
260typedef
263 __in POHANDLE Handle,
266 );
267
268typedef
271 __in POHANDLE Handle
272 );
273
274typedef
277 __in POHANDLE Handle,
279 );
280
281typedef
284 __in POHANDLE Handle,
286 );
287
288typedef
291 __in POHANDLE Handle
292 );
293
294typedef
297 __in POHANDLE Handle,
298 __in ULONGLONG IdleTimeout
299 );
300
301typedef
305 );
306
307typedef
311 );
312
313typedef
317 _In_ PVOID CallingAddress,
319 );
320
321VOID
323 __inout PFX_DRIVER_GLOBALS FxDriverGlobals,
325 );
326
327VOID
329 __inout PFX_DRIVER_GLOBALS FxDriverGlobals
330 );
331
332VOID
334
335VOID
337
338VOID
340 __in PFX_DRIVER_GLOBALS FxDriverGlobals
341 );
342
343VOID
345 __in PFX_DRIVER_GLOBALS FxDriverGlobals
346 );
347
349 //
350 // Internal data types.
351 //
352private:
356
357 //
358 // Public interface.
359 //
360public:
363 Initialize();
364
365 VOID
366 Uninitialize();
367
370 Register(
371 __in PFX_DRIVER_GLOBALS FxDriverGlobals
372 );
373
374 VOID
376 __in PFX_DRIVER_GLOBALS FxDriverGlobals
377 );
378
379 //
380 // Tracks the driver usage on the current processor.
381 // KeGetCurrentProcessorNumberEx is called directly because the procgrp.lib
382 // provides the downlevel support for Vista, XP and Win2000.
383 //
384 __inline
385 VOID
387 __in PFX_DRIVER_GLOBALS FxDriverGlobals
388 )
389 {
391
394 FxDriverGlobals;
395 }
396
397 //
398 // Returns the tracked driver (globals) on the current processor.
399 // KeGetCurrentProcessorNumberEx is called directly because the procgrp.lib
400 // provides the downlevel support for Vista, XP and Win2000.
401 //
403 __inline
406 {
408
410
413
414 return fxDriverGlobals;
415 }
416
417 //
418 // Helper functions.
419 //
420private:
421 //
422 // Returns the per-processor cache-aligned driver usage ref structure for
423 // given processor.
424 //
425 __inline
429 )
430 {
432 Index * m_EntrySize));
433 }
434
435 //
436 // Data members.
437 //
438private:
439 //
440 // Pointer to array of cache-line aligned tracking driver structures.
441 //
443
444 //
445 // Points to pool of per-proc tracking entries that needs to be freed.
446 //
448
449 //
450 // Size of each padded tracking driver structure.
451 //
453
454 //
455 // Indicates # of entries in the array of tracking driver structures.
456 //
459
460
461#include "fxglobals.h"
462
463
464//
465// This inline function tracks driver usage; This info is used by the
466// debug dump callback routine for selecting which driver's log to save
467// in the minidump. At this time we track the following OS to framework calls:
468// (a) IRP dispatch (general, I/O, PnP, WMI).
469// (b) Request's completion callbacks.
470// (c) Work Item's (& System Work Item's) callback handlers.
471// (d) Timer's callback handlers.
472//
473__inline
474VOID
476 __in PFX_DRIVER_GLOBALS FxDriverGlobals
477 )
478{
479 if (FxDriverGlobals->FxTrackDriverForMiniDumpLog) {
481 }
482}
483
485__inline
486PVOID
489 )
490
491/*++
492
493Routine Description:
494
495 This function removes (pops) the first entry from the specified
496 nonpaged lookaside list. This function was added to allow request allocated
497 by a lookaside list to be freed by ExFreePool and hence do no tracking of statistics.
498
499Arguments:
500
501 Lookaside - Supplies a pointer to a nonpaged lookaside list structure.
502
503Return Value:
504
505 If an entry is removed from the specified lookaside list, then the
506 address of the entry is returned as the function value. Otherwise,
507 NULL is returned.
508
509--*/
510
511{
512
513 PVOID Entry;
514
516
517 if (Entry == NULL) {
518 Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
519 Lookaside->L.Size,
520 Lookaside->L.Tag);
521 }
522
523 return Entry;
524}
525
526__inline
527VOID
531 )
532/*++
533
534Routine Description:
535
536 This function inserts (pushes) the specified entry into the specified
537 nonpaged lookaside list. This function was added to allow request allocated
538 by a lookaside list to be freed by ExFreePool and hence do no tracking of statistics.
539
540Arguments:
541
542 Lookaside - Supplies a pointer to a nonpaged lookaside list structure.
543
544 Entry - Supples a pointer to the entry that is inserted in the
545 lookaside list.
546
547Return Value:
548
549 None.
550
551--*/
552
553{
554 if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
555 (Lookaside->L.Free)(Entry);
556 }
557 else {
560 }
561}
562
563__inline
564PVOID
567 _In_opt_ size_t ElementSize = 0
568 )
569
570/*++
571
572Routine Description:
573
574 This function removes (pops) the first entry from the specified
575 nonpaged lookaside list.
576
577Arguments:
578
579 Lookaside - Supplies a pointer to a nonpaged lookaside list structure.
580
581Return Value:
582
583 If an entry is removed from the specified lookaside list, then the
584 address of the entry is returned as the function value. Otherwise,
585 NULL is returned.
586
587--*/
588
589{
590
591 PVOID Entry;
592
593 UNREFERENCED_PARAMETER(ElementSize);
594
595 Lookaside->L.TotalAllocates += 1;
596
598
599 if (Entry == NULL) {
600 Lookaside->L.AllocateMisses += 1;
601 Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
602 Lookaside->L.Size,
603 Lookaside->L.Tag);
604 }
605
606 return Entry;
607}
608
609__inline
610VOID
614 )
615/*++
616
617Routine Description:
618
619 This function inserts (pushes) the specified entry into the specified
620 nonpaged lookaside list.
621
622Arguments:
623
624 Lookaside - Supplies a pointer to a nonpaged lookaside list structure.
625
626 Entry - Supples a pointer to the entry that is inserted in the
627 lookaside list.
628
629Return Value:
630
631 None.
632
633--*/
634
635{
636 Lookaside->L.TotalFrees += 1;
637
638 if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
639 Lookaside->L.FreeMisses += 1;
640 (Lookaside->L.Free)(Entry);
641
642 }
643 else {
646 }
647}
648
650__inline
651PVOID
654 )
655
656/*++
657
658Routine Description:
659
660 This function removes (pops) the first entry from the specified
661 paged lookaside list.
662
663Arguments:
664
665 Lookaside - Supplies a pointer to a paged lookaside list structure.
666
667Return Value:
668
669 If an entry is removed from the specified lookaside list, then the
670 address of the entry is returned as the function value. Otherwise,
671 NULL is returned.
672
673--*/
674
675{
676
677 PVOID Entry;
678
679 Lookaside->L.TotalAllocates += 1;
680
682 if (Entry == NULL) {
683 Lookaside->L.AllocateMisses += 1;
684 Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
685 Lookaside->L.Size,
686 Lookaside->L.Tag);
687 }
688
689 return Entry;
690}
691
692__inline
693VOID
697 )
698/*++
699
700Routine Description:
701
702 This function inserts (pushes) the specified entry into the specified
703 paged lookaside list.
704
705Arguments:
706
707 Lookaside - Supplies a pointer to a paged lookaside list structure.
708
709 Entry - Supples a pointer to the entry that is inserted in the
710 lookaside list.
711
712Return Value:
713
714 None.
715
716--*/
717
718{
719 Lookaside->L.TotalFrees += 1;
720
721 if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
722 Lookaside->L.FreeMisses += 1;
723 (Lookaside->L.Free)(Entry);
724
725 } else {
728 }
729}
730
732__inline
735 VOID
736 )
737{
738 //
739 // Groups are supported in Win 7 and forward.
740 //
742}
743
744#ifdef __cplusplus
745}
746#endif
KBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
_In_ PIRP Irp
Definition: csq.h:116
_Out_ PKIRQL Irql
Definition: csq.h:179
#define __out_opt
Definition: dbghelp.h:65
#define __in
Definition: dbghelp.h:35
#define __inout
Definition: dbghelp.h:50
#define __in_opt
Definition: dbghelp.h:38
#define __out
Definition: dbghelp.h:62
#define NULL
Definition: types.h:112
#define NTSTATUS
Definition: precomp.h:19
ULONG_PTR KAFFINITY
Definition: compat.h:85
UCHAR KIRQL
Definition: env_spec_w32.h:591
KSPIN_LOCK * PKSPIN_LOCK
Definition: env_spec_w32.h:73
_Must_inspect_result_ _In_ PFLT_GET_OPERATION_STATUS_CALLBACK CallbackRoutine
Definition: fltkernel.h:1035
PFX_DRIVER_GLOBALS fxDriverGlobals
VOID(STDCALL * PFN_POX_ACTIVATE_COMPONENT)(__in POHANDLE Handle, __in ULONG Component, __in ULONG Flags)
Definition: fxglobalskm.h:254
VOID(STDCALL * PFN_POX_COMPLETE_IDLE_CONDITION)(__in POHANDLE Handle, __in ULONG Component)
Definition: fxglobalskm.h:283
VOID FxUnregisterBugCheckCallback(__inout PFX_DRIVER_GLOBALS FxDriverGlobals)
BOOLEAN(STDCALL * PFN_KE_DEREGISTER_BUGCHECK_REASON_CALLBACK)(__in PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecords)
Definition: fxglobalskm.h:92
VOID FxCacheBugCheckDriverInfo(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
KIRQL(FASTCALL * PFN_KF_RAISE_IRQL)(__in KIRQL NewIrql)
Definition: fxglobalskm.h:132
VOID(STDCALL * PFN_VF_CHECK_NX_POOL_TYPE)(_In_ POOL_TYPE PoolType, _In_ PVOID CallingAddress, _In_ ULONG PoolTag)
Definition: fxglobalskm.h:315
NTSTATUS(STDCALL * PFN_IO_DISCONNECT_INTERRUPT_EX)(__in PIO_DISCONNECT_INTERRUPT_PARAMETERS Parameters)
Definition: fxglobalskm.h:104
NTSTATUS(STDCALL * PFN_IO_CONNECT_INTERRUPT)(__out PKINTERRUPT *InterruptObject, __in PKSERVICE_ROUTINE ServiceRoutine, __in_opt PVOID ServiceContext, __in_opt PKSPIN_LOCK SpinLock, __in ULONG Vector, __in KIRQL Irql, __in KIRQL SynchronizeIrql, __in KINTERRUPT_MODE InterruptMode, __in BOOLEAN ShareVector, __in KAFFINITY ProcessorEnableMask, __in BOOLEAN FloatingSave)
Definition: fxglobalskm.h:110
struct _FX_DRIVER_GLOBALS * PFX_DRIVER_GLOBALS
Definition: fxglobalskm.h:38
#define NUM_MDLS_IN_INFO
Definition: fxglobalskm.h:47
ULONG(STDCALL * PFN_KE_GET_RECOMMENDED_SHARED_DATA_ALIGNMENT)(VOID)
Definition: fxglobalskm.h:222
struct _FX_DRIVER_TRACKER_CACHE_AWARE FX_DRIVER_TRACKER_CACHE_AWARE
PSLIST_ENTRY(FASTCALL * PFN_INTERLOCKED_PUSH_ENTRY_SLIST)(__inout PSLIST_HEADER ListHead, __inout PSLIST_ENTRY ListEntry)
Definition: fxglobalskm.h:150
VOID(STDCALL * PFN_PO_SET_SYSTEM_WAKE)(__inout PIRP Irp)
Definition: fxglobalskm.h:163
__inline PVOID FxAllocateFromNPagedLookasideList(_In_ PNPAGED_LOOKASIDE_LIST Lookaside, _In_opt_ size_t ElementSize=0)
Definition: fxglobalskm.h:565
VOID(STDCALL * PFN_IO_DISCONNECT_INTERRUPT)(__in PKINTERRUPT InterruptObject)
Definition: fxglobalskm.h:126
VOID(STDCALL * PFN_POX_IDLE_COMPONENT)(__in POHANDLE Handle, __in ULONG Component, __in ULONG Flags)
Definition: fxglobalskm.h:262
struct _FX_DRIVER_TRACKER_CACHE_AWARE * PFX_DRIVER_TRACKER_CACHE_AWARE
__inline VOID FxFreeToNPagedLookasideList(__in PNPAGED_LOOKASIDE_LIST Lookaside, __in PVOID Entry)
Definition: fxglobalskm.h:611
VOID(STDCALL * PFN_IO_REPORT_INTERRUPT_ACTIVE)(_In_ PIO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS Parameters)
Definition: fxglobalskm.h:303
BOOLEAN(STDCALL * PFN_KE_ARE_APCS_DISABLED)(VOID)
Definition: fxglobalskm.h:216
ULONG(STDCALL * PFN_KE_GET_CURRENT_PROCESSOR_NUMBER_EX)(__out_opt PPROCESSOR_NUMBER ProcNumber)
Definition: fxglobalskm.h:198
VOID(STDCALL * PFN_IO_REPORT_INTERRUPT_INACTIVE)(_In_ PIO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS Parameters)
Definition: fxglobalskm.h:309
NTSTATUS(STDCALL * PFN_IO_CONNECT_INTERRUPT_EX)(__inout PIO_CONNECT_INTERRUPT_PARAMETERS Parameters)
Definition: fxglobalskm.h:98
__inline VOID FxFreeToNPagedLookasideListNoTracking(__in PNPAGED_LOOKASIDE_LIST Lookaside, __in PVOID Entry)
Definition: fxglobalskm.h:528
__inline VOID FX_TRACK_DRIVER(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
Definition: fxglobalskm.h:475
VOID FxPurgeBugCheckDriverInfo(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
__inline VOID FxFreeToPagedLookasideList(__in PPAGED_LOOKASIDE_LIST Lookaside, __in PVOID Entry)
Definition: fxglobalskm.h:694
NTSTATUS(STDCALL * PFN_IO_SET_COMPLETION_ROUTINE_EX)(__in PDEVICE_OBJECT DeviceObject, __in PIRP Irp, __in PIO_COMPLETION_ROUTINE CompletionRoutine, __in PVOID Context, __in BOOLEAN InvokeOnSuccess, __in BOOLEAN InvokeOnError, __in BOOLEAN InvokeOnCancel)
Definition: fxglobalskm.h:71
struct _FX_DUMP_DRIVER_INFO_ENTRY * PFX_DUMP_DRIVER_INFO_ENTRY
Definition: fxglobalskm.h:39
BOOLEAN(STDCALL * PFN_KE_SET_COALESCABLE_TIMER)(__inout PKTIMER Timer, __in LARGE_INTEGER DueTime, __in ULONG Period, __in ULONG TolerableDelay, __in_opt PKDPC Dpc)
Definition: fxglobalskm.h:182
VOID(STDCALL * PFN_POX_UNREGISTER_DEVICE)(__in POHANDLE Handle)
Definition: fxglobalskm.h:248
_Must_inspect_result_ __inline PVOID FxAllocateFromNPagedLookasideListNoTracking(__in PNPAGED_LOOKASIDE_LIST Lookaside)
Definition: fxglobalskm.h:487
PSLIST_ENTRY(FASTCALL * PFN_INTERLOCKED_POP_ENTRY_SLIST)(__inout PSLIST_HEADER ListHead)
Definition: fxglobalskm.h:144
VOID(STDCALL * PFN_POX_COMPLETE_IDLE_STATE)(__in POHANDLE Handle, __in ULONG Component)
Definition: fxglobalskm.h:276
BOOLEAN(STDCALL * PFN_KE_REGISTER_BUGCHECK_REASON_CALLBACK)(__in PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord, __in PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine, __in KBUGCHECK_CALLBACK_REASON Reason, __in PUCHAR Component)
Definition: fxglobalskm.h:83
PCHAR WdfLdrType
Definition: version.cpp:108
ULONG(STDCALL * PFN_KE_QUERY_MAXIMUM_PROCESSOR_COUNT_EX)(__in USHORT GroupNumber)
Definition: fxglobalskm.h:204
ULONG(STDCALL * PFN_KE_GET_CURRENT_PROCESSOR_NUMBER)(VOID)
Definition: fxglobalskm.h:192
VOID FxUninitializeBugCheckDriverInfo()
NTSTATUS(STDCALL * PFN_IO_UNREGISTER_PLUGPLAY_NOTIFICATION_EX)(__in PVOID NotificationEntry)
Definition: fxglobalskm.h:228
VOID(STDCALL * PFN_KE_SET_TARGET_PROCESSOR_DPC)(__in PRKDPC Dpc, __in CCHAR Number)
Definition: fxglobalskm.h:175
BOOLEAN(STDCALL * PFN_KD_REFRESH)()
Definition: fxglobalskm.h:60
VOID FxRegisterBugCheckCallback(__inout PFX_DRIVER_GLOBALS FxDriverGlobals, __in PDRIVER_OBJECT DriverObject)
VOID(STDCALL * PFN_POX_SET_DEVICE_IDLE_TIMEOUT)(__in POHANDLE Handle, __in ULONGLONG IdleTimeout)
Definition: fxglobalskm.h:296
VOID(STDCALL * PFN_POX_COMPLETE_DEVICE_POWER_NOT_REQUIRED)(__in POHANDLE Handle)
Definition: fxglobalskm.h:290
NTSTATUS(STDCALL * PFN_POX_REGISTER_DEVICE)(__in MdDeviceObject Pdo, __in PPO_FX_DEVICE PoxDevice, __out POHANDLE *Handle)
Definition: fxglobalskm.h:234
BOOLEAN(STDCALL * PFN_PO_GET_SYSTEM_WAKE)(__in PIRP Irp)
Definition: fxglobalskm.h:157
_Must_inspect_result_ __inline PVOID FxAllocateFromPagedLookasideList(__in PPAGED_LOOKASIDE_LIST Lookaside)
Definition: fxglobalskm.h:652
_Must_inspect_result_ __inline BOOLEAN FxIsProcessorGroupSupported(VOID)
Definition: fxglobalskm.h:734
VOID(STDCALL * PFN_POX_REPORT_DEVICE_POWERED_ON)(__in POHANDLE Handle)
Definition: fxglobalskm.h:270
ULONG(STDCALL * PFN_KE_QUERY_MAXIMUM_PROCESSOR_COUNT)(VOID)
Definition: fxglobalskm.h:210
VOID(FASTCALL * PFN_KF_LOWER_IRQL)(__in KIRQL NewIrql)
Definition: fxglobalskm.h:138
VOID(STDCALL * PFN_KE_FLUSH_QUEUED_DPCS)(VOID)
Definition: fxglobalskm.h:65
KAFFINITY(STDCALL * PFN_KE_QUERY_ACTIVE_PROCESSORS)(VOID)
Definition: fxglobalskm.h:169
VOID(STDCALL * PFN_POX_START_DEVICE_POWER_MANAGEMENT)(__in POHANDLE Handle)
Definition: fxglobalskm.h:242
VOID FxInitializeBugCheckDriverInfo()
ULONG Handle
Definition: gdb_input.c:15
#define ASSERT(a)
Definition: mode.c:44
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
Definition: env.c:47
@ InterruptObject
Definition: ketypes.h:428
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define FASTCALL
Definition: nt_native.h:50
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:325
* PPROCESSOR_NUMBER
Definition: ntbasedef.h:650
_In_opt_ PENTER_STATE_SYSTEM_HANDLER _In_opt_ PVOID _In_ LONG _In_opt_ LONG volatile * Number
Definition: ntpoapi.h:207
#define BOOLEAN
Definition: pedump.c:73
unsigned short USHORT
Definition: pedump.c:61
FxLibraryGlobalsType FxLibraryGlobals
Definition: globals.cpp:95
enum _KINTERRUPT_MODE KINTERRUPT_MODE
FORCEINLINE ULONG KeGetCurrentProcessorIndex(VOID)
Definition: ke.h:162
_Requires_lock_held_ SpinLock _Releases_lock_ SpinLock _In_ _IRQL_restores_ KIRQL NewIrql
Definition: ke.h:114
base of all file and directory entries
Definition: entries.h:83
struct FxAllocatedMdls * Next
Definition: fxglobalskm.h:52
FX_DRIVER_TRACKER_CACHE_AWARE DriverTracker
Definition: fxglobals.h:812
BOOLEAN ProcessorGroupSupport
Definition: fxglobals.h:798
FxObject * Owner
Definition: fxglobalskm.h:43
Definition: fxglobalskm.h:353
volatile PFX_DRIVER_GLOBALS FxDriverGlobals
Definition: fxglobalskm.h:354
__inline VOID TrackDriver(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
Definition: fxglobalskm.h:386
_Must_inspect_result_ NTSTATUS Initialize()
PFX_DRIVER_TRACKER_ENTRY m_DriverUsage
Definition: fxglobalskm.h:442
_Must_inspect_result_ __inline PFX_DRIVER_GLOBALS GetCurrentTrackedDriver()
Definition: fxglobalskm.h:405
struct _FX_DRIVER_TRACKER_CACHE_AWARE::_FX_DRIVER_TRACKER_ENTRY * PFX_DRIVER_TRACKER_ENTRY
__inline PFX_DRIVER_TRACKER_ENTRY GetProcessorDriverEntryRef(__in ULONG Index)
Definition: fxglobalskm.h:427
struct _FX_DRIVER_TRACKER_CACHE_AWARE::_FX_DRIVER_TRACKER_ENTRY FX_DRIVER_TRACKER_ENTRY
VOID Deregister(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
Definition: fxbugcheck.h:81
Definition: ketypes.h:699
INT POOL_TYPE
Definition: typedefs.h:78
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
char CCHAR
Definition: typedefs.h:51
char * PCHAR
Definition: typedefs.h:51
#define STDCALL
Definition: wdf.h:45
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:690
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3815
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
Definition: wdfdpc.h:112
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
_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_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_opt_ ULONG _Out_ WDFLOOKASIDE * Lookaside
Definition: wdfmemory.h:414
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG PoolTag
Definition: wdfmemory.h:164
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_ WDFDRIVER _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT _In_opt_ PDEVICE_OBJECT Pdo
Definition: wdfminiport.h:72
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:895
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
Definition: wdfsync.h:228
_In_ WDFTIMER _In_ LONGLONG DueTime
Definition: wdftimer.h:190
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
FORCEINLINE USHORT ExQueryDepthSList(_In_ PSLIST_HEADER SListHead)
Definition: exfuncs.h:153
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST * PNPAGED_LOOKASIDE_LIST
struct LOOKASIDE_ALIGN _PAGED_LOOKASIDE_LIST * PPAGED_LOOKASIDE_LIST
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN _In_ KAFFINITY ProcessorEnableMask
Definition: iofuncs.h:808
_In_ PKSERVICE_ROUTINE ServiceRoutine
Definition: iofuncs.h:800
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN _In_ BOOLEAN InvokeOnError
Definition: iofuncs.h:1943
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
Definition: iofuncs.h:806
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL SynchronizeIrql
Definition: iofuncs.h:805
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN _In_ KAFFINITY _In_ BOOLEAN FloatingSave
Definition: iofuncs.h:809
_In_ ULONG _In_opt_ PVOID _In_ PDRIVER_OBJECT _In_ PDRIVER_NOTIFICATION_CALLBACK_ROUTINE _Inout_opt_ __drv_aliasesMem PVOID _Outptr_result_nullonfailure_ _At_ * NotificationEntry(return==0, __drv_allocatesMem(Mem))) PVOID *NotificationEntry
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN _In_ BOOLEAN _In_ BOOLEAN InvokeOnCancel
Definition: iofuncs.h:1944
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN ShareVector
Definition: iofuncs.h:807
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID ServiceContext
Definition: iofuncs.h:801
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_opt_ PVOID _In_ BOOLEAN InvokeOnSuccess
Definition: iofuncs.h:1942
IO_COMPLETION_ROUTINE * PIO_COMPLETION_ROUTINE
Definition: iotypes.h:2835
_In_ LARGE_INTEGER _In_ ULONG _In_ ULONG TolerableDelay
Definition: kefuncs.h:1314
_In_ LARGE_INTEGER _In_ ULONG Period
Definition: kefuncs.h:1313
KSERVICE_ROUTINE * PKSERVICE_ROUTINE
Definition: ketypes.h:512
KBUGCHECK_CALLBACK_REASON
Definition: ketypes.h:259
KBUGCHECK_REASON_CALLBACK_ROUTINE * PKBUGCHECK_REASON_CALLBACK_ROUTINE
Definition: ketypes.h:271
_In_ ULONG Component
Definition: potypes.h:496
#define InterlockedPushEntrySList(SListHead, SListEntry)
Definition: rtlfuncs.h:3406
#define InterlockedPopEntrySList(SListHead)
Definition: rtlfuncs.h:3409
#define PSLIST_ENTRY
Definition: rtltypes.h:134