32#ifndef _FXTAGTRACKER_HPP_
33#define _FXTAGTRACKER_HPP_
37#if defined(EVENT_TRACING)
38#include "FxTagTracker.hpp.tmh"
53#define FRAMES_TO_CAPTURE 16
54#define FRAMES_TO_SKIP 3
81 if (Initial ==
FALSE) {
149#define TAG_HISTORY_DEPTH (25)
236 if (
NULL == tagTracker) {
241 "Failed to allocate tag tracker, returning %!STATUS!",
status);
246 *TagTracker = tagTracker;
VOID CheckForAbandondedTags(VOID)
static _Must_inspect_result_ NTSTATUS __inline CreateAndInitialize(__out FxTagTracker **TagTracker, __in PFX_DRIVER_GLOBALS FxDriverGlobals, __in FxTagTrackerType Type, __in BOOLEAN CaptureStack, __in FxObject *Owner, __in_opt PVOID CreateTag=NULL)
VOID CopyStackFrames(_Inout_ FxTagTrackingStackFrames **StackFrames, _In_ USHORT NumFrames, _In_reads_(NumFrames) PVOID *Frames)
FxTagTrackerType m_TrackerType
FxObject * m_OwningObject
FxTagHistory m_TagHistory[TAG_HISTORY_DEPTH]
VOID UpdateTagHistory(__in PVOID Tag, __in LONG Line, __in_opt PSTR File, __in FxTagRefType RefType, __in ULONG RefCount)
LIST_ENTRY m_TrackerEntry
FxTagTracker(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in FxTagTrackerType Type, __in BOOLEAN CaptureStack, __in FxObject *Owner, __in_opt PVOID CreateTag=NULL)
FxTagTrackingBlock * m_Next
static __inline VOID MxQueryTickCount(__out PLARGE_INTEGER TickCount)
#define InsertTailList(ListHead, Entry)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
#define FRAMES_TO_CAPTURE
#define TAG_HISTORY_DEPTH
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
#define _Must_inspect_result_
#define TRACE_LEVEL_ERROR
MxLock AllocatedTagTrackersLock
LIST_ENTRY AllocatedTagTrackersListHead
PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
FxTagTrackingStackFrames * StackFrames
FxTagTrackingBlock(__in PVOID Tag, __in LONG Line, __in_opt PSTR File, __in_opt BOOLEAN Initial=FALSE)
FxTagTrackingStackFrames * StackFrames
struct FxTagTrackingBlock * Next
ULONG64 Frames[FRAMES_TO_CAPTURE]
FxDriverGlobalsDebugExtension * DebugExtension
#define RtlZeroMemory(Destination, Length)
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag