mirror of
https://github.com/reactos/reactos.git
synced 2025-03-10 10:14:44 +00:00

Not all files are included, but these are necessary to compile cdrom driver. So far it can only be statically linked with drivers, a proper implementation requires wdfldr helper driver
119 lines
3.2 KiB
C++
119 lines
3.2 KiB
C++
/*++
|
|
|
|
Copyright (c) Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
FxPerfTrace.hpp
|
|
|
|
Abstract:
|
|
|
|
This is header file for perf trace methods.
|
|
|
|
Author:
|
|
|
|
|
|
|
|
Environment:
|
|
|
|
Kernel mode only
|
|
|
|
Revision History:
|
|
|
|
Notes:
|
|
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
//
|
|
// Version starts from 2 to be in sync with ETW versioning
|
|
//
|
|
#define WDF_DPC_EVENT_VERSION_2 2
|
|
#define WDF_INTERRUPT_EVENT_VERSION_2 2
|
|
#define WDF_WORK_ITEM_EVENT_VERSION_2 2
|
|
|
|
// __REACTOS__ : functions are commented out
|
|
|
|
FORCEINLINE
|
|
VOID
|
|
FxPerfTraceDpc(
|
|
_In_ PVOID DriverCallback
|
|
)
|
|
{
|
|
// PWMI_WDF_NOTIFY_ROUTINE perfTraceCallback = NULL;
|
|
|
|
// //
|
|
// // Trace driver's ISR using perf trace callback. If the perf trace callback
|
|
// // is NULL, it means either perf tracing is not enabled, or this OS
|
|
// // doesn't support perf tracing for WDF (note only win8+ supports WDF perf
|
|
// // trace callbacks).
|
|
// //
|
|
// perfTraceCallback = FxLibraryGlobals.PerfTraceRoutines->DpcNotifyRoutine;
|
|
// if (perfTraceCallback != NULL) {
|
|
// (perfTraceCallback) (DriverCallback, // event data
|
|
// sizeof(PVOID), // sizeof event
|
|
// PERF_WDF_DPC, // group mask
|
|
// PERFINFO_LOG_TYPE_WDF_DPC, // hook id
|
|
// WDF_DPC_EVENT_VERSION_2 // version
|
|
// );
|
|
// }
|
|
}
|
|
|
|
FORCEINLINE
|
|
VOID
|
|
FxPerfTraceInterrupt(
|
|
_In_ PVOID DriverCallback
|
|
)
|
|
{
|
|
// PWMI_WDF_NOTIFY_ROUTINE perfTraceCallback = NULL;
|
|
|
|
// perfTraceCallback = FxLibraryGlobals.PerfTraceRoutines->InterruptNotifyRoutine;
|
|
// if (perfTraceCallback != NULL) {
|
|
// (perfTraceCallback) (DriverCallback, // event data
|
|
// sizeof(PVOID), // sizeof event
|
|
// PERF_WDF_INTERRUPT, // group mask
|
|
// PERFINFO_LOG_TYPE_WDF_INTERRUPT, // hook id
|
|
// WDF_INTERRUPT_EVENT_VERSION_2 // version
|
|
// );
|
|
// }
|
|
}
|
|
|
|
FORCEINLINE
|
|
VOID
|
|
FxPerfTracePassiveInterrupt(
|
|
_In_ PVOID DriverCallback
|
|
)
|
|
{
|
|
// PWMI_WDF_NOTIFY_ROUTINE perfTraceCallback = NULL;
|
|
|
|
// perfTraceCallback = FxLibraryGlobals.PerfTraceRoutines->InterruptNotifyRoutine;
|
|
// if (perfTraceCallback != NULL) {
|
|
// (perfTraceCallback) (DriverCallback,
|
|
// sizeof(PVOID),
|
|
// PERF_WDF_INTERRUPT,
|
|
// PERFINFO_LOG_TYPE_WDF_PASSIVE_INTERRUPT,
|
|
// WDF_INTERRUPT_EVENT_VERSION_2
|
|
// );
|
|
// }
|
|
}
|
|
|
|
FORCEINLINE
|
|
VOID
|
|
FxPerfTraceWorkItem(
|
|
_In_ PVOID DriverCallback
|
|
)
|
|
{
|
|
// PWMI_WDF_NOTIFY_ROUTINE perfTraceCallback = NULL;
|
|
|
|
// perfTraceCallback = FxLibraryGlobals.PerfTraceRoutines->WorkItemNotifyRoutine;
|
|
// if (perfTraceCallback != NULL) {
|
|
// (perfTraceCallback) (DriverCallback,
|
|
// sizeof(PVOID),
|
|
// PERF_WORKER_THREAD,
|
|
// PERFINFO_LOG_TYPE_WDF_WORK_ITEM,
|
|
// WDF_WORK_ITEM_EVENT_VERSION_2
|
|
// );
|
|
// }
|
|
}
|
|
|