21#define VF_FX_DYNAMICS_GENERATE_TABLE 1
27#include "..\version\FxDynamics.h"
28#include "..\version\vffxdynamics.h"
29#include "FxLibraryCommon.h"
31#include "FxTelemetry.hpp"
57 WDF_01_TRIAGE_INFO_MAJOR_VERSION,
58 WDF_01_TRIAGE_INFO_MINOR_VERSION,
191 __Print((
"Failed to initialize tracing for WDF\n"));
222 EventUnregisterMicrosoft_Windows_DriverFrameworks_UserMode_Performance();
257 ": NULL parameter -- %s\n",
260 (
Info->FuncTable ==
NULL) ?
"PWDF_BIND_INFO->FuncTable" :
277 ": version mismatch detected in function table count: client"
278 "has 0x%x, library has 0x%x\n",
285 switch (
Info->FuncCount) {
293 ": Function table count 0x%x doesn't match any previously "
294 "released framework version table size\n",
314 __Print((
"Framework function table size (%d) doesn't match "
315 "with client (%d). Rebuild the client driver.",
345 if (isFunctinTableHookingOn ==
FALSE && isPerformanceAnalysisOn ==
FALSE) {
367 ": Enhanced Verification is ON \n"));
369 if (Microsoft_Windows_DriverFrameworks_UserMode_PerformanceHandle ==
NULL)
371 EventRegisterMicrosoft_Windows_DriverFrameworks_UserMode_Performance();
382 &VfWdfVersion.Functions,
397 ": WdfFunctions %p\n",
Info->FuncTable));
402 ": exit: status %X\n",
status));
406 TRAPMSG(
"Version mismatch detected in function table count. Recompile"
407 " driver with correct headers"));
460 ": exit: status %X\n",
status));
485 ": Invalid ClientInfo received from wudfldr \n"));
497 status = FxRegKey::_QueryULong(
virtual VOID DeleteObject(VOID)
#define NT_SUCCESS(StatCode)
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T ContextSize
FX_VERIFY(INTERNAL, CHECK_NOT_NULL(LoaderInterface->pIWudfHost))
PFX_DRIVER_GLOBALS pFxDriverGlobals
PFX_DRIVER_GLOBALS fxDriverGlobals
VOID FxLibraryGlobalsDecommission(VOID)
_Must_inspect_result_ NTSTATUS FxLibraryGlobalsCommission(VOID)
__inline PFX_DRIVER_GLOBALS GetFxDriverGlobals(__in PWDF_DRIVER_GLOBALS DriverGlobals)
VOID FxDestroy(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
#define WDF_LIBRARY_COMMISSION
#define WDF_LIBRARY_UNREGISTER_CLIENT
#define WDF_LIBRARY_DECOMMISSION
#define WDF_LIBRARY_REGISTER_CLIENT
VOID FxFreeDriverGlobals(__in PWDF_DRIVER_GLOBALS DriverGlobals)
_Must_inspect_result_ PWDF_DRIVER_GLOBALS FxAllocateDriverGlobals(VOID)
VOID RegisterTelemetryProvider(VOID)
VOID UnregisterTelemetryProvider(VOID)
__inline BOOLEAN IsFxPerformanceAnalysis(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
__inline BOOLEAN IsFxVerifierFunctionTableHooking(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
#define WDF_ENHANCED_VERIFIER_OPTIONS_VALUE_NAME
_Must_inspect_result_ NTSTATUS FxLibraryCommonRegisterClient(__inout PWDF_BIND_INFO Info, __deref_out PWDF_DRIVER_GLOBALS *WdfDriverGlobals, __in_opt PCLIENT_INFO ClientInfo)
_Must_inspect_result_ NTSTATUS FxLibraryCommonDecommission(VOID)
static WDFIRPQUEUE_TRIAGE_INFO _WdfIrpQueueTriageInfo
static WDFCONTEXT_TRIAGE_INFO _WdfContextTriageInfo
_Must_inspect_result_ NTSTATUS FxLibraryCommonCommission(VOID)
WDF_TRIAGE_INFO g_WdfTriageInfo
static WDFDEVICE_TRIAGE_INFO _WdfDeviceTriageInfo
static WDFCONTEXTTYPE_TRIAGE_INFO _WdfContextTypeTriageInfo
static WDFREQUEST_TRIAGE_INFO _WdfRequestTriageInfo
static WDFOBJECT_TRIAGE_INFO _WdfObjectTriageInfo
_Must_inspect_result_ NTSTATUS FxLibraryCommonUnregisterClient(__in PWDF_BIND_INFO Info, __in PWDF_DRIVER_GLOBALS WdfDriverGlobals)
VOID GetEnhancedVerifierOptions(__in PCLIENT_INFO ClientInfo, __out PULONG Options)
static WDFFWDPROGRESS_TRIAGE_INFO _WdfFwdProgressTriageInfo
static WDFIRP_TRIAGE_INFO _WdfIrpTriageInfo
static WDFQUEUE_TRIAGE_INFO _WdfQueueTriageInfo
FxLibraryGlobalsType FxLibraryGlobals
BOOLEAN InternalTracingInitialized
ULONG FxEnhancedVerifierOptions
VOID TraceUninitialize(VOID)
VOID FxIFRStop(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
_Must_inspect_result_ NTSTATUS FxTraceInitialize(VOID)
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
@ WdfFunctionTableNumEntries_V2_0
@ WdfFunctionTableNumEntries_V2_15
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
#define DECLARE_CONST_UNICODE_STRING(_variablename, _string)
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfFunctionTableNumEntries
struct _WDF_OBJECT_CONTEXT_TYPE_INFO WDF_OBJECT_CONTEXT_TYPE_INFO