124 lines
3.1 KiB
C
124 lines
3.1 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 2000-2002 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
uctrace.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This module contains public declarations and definitions for tracing
|
||
|
and debugging client code.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Rajesh Sundaram (rajeshsu) - 17th July 2001.
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#ifndef _UC_TRACE_H_
|
||
|
|
||
|
#define _UC_TRACE_H_
|
||
|
|
||
|
|
||
|
//
|
||
|
// This defines the entry written to the trace log.
|
||
|
//
|
||
|
|
||
|
typedef struct _UC_TRACE_LOG_ENTRY
|
||
|
{
|
||
|
USHORT Action;
|
||
|
USHORT Processor;
|
||
|
PEPROCESS pProcess;
|
||
|
PETHREAD pThread;
|
||
|
|
||
|
PVOID pContext1;
|
||
|
PVOID pContext2;
|
||
|
PVOID pContext3;
|
||
|
PVOID pContext4;
|
||
|
|
||
|
PVOID pFileName;
|
||
|
USHORT LineNumber;
|
||
|
|
||
|
} UC_TRACE_LOG_ENTRY, *PUC_TRACE_LOG_ENTRY;
|
||
|
|
||
|
|
||
|
//
|
||
|
// Action codes.
|
||
|
//
|
||
|
// N.B. These codes must be contiguous, starting at zero. If you update
|
||
|
// this list, you must also update the corresponding array in
|
||
|
// ul\ulkd\filt.c.
|
||
|
//
|
||
|
|
||
|
|
||
|
|
||
|
#define UC_TRACE_LOG_SIGNATURE MAKE_SIGNATURE('UcLg')
|
||
|
|
||
|
//
|
||
|
// Manipulators.
|
||
|
//
|
||
|
|
||
|
PTRACE_LOG
|
||
|
UcCreateTraceLog(
|
||
|
IN LONG LogSize,
|
||
|
IN LONG ExtraBytesInHeader
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
UcDestroyTraceLog(
|
||
|
IN PTRACE_LOG pLog
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
UcWriteTraceLog(
|
||
|
IN PTRACE_LOG pLog,
|
||
|
IN USHORT Action,
|
||
|
IN PVOID pContext1,
|
||
|
IN PVOID pContext2,
|
||
|
IN PVOID pContext3,
|
||
|
IN PVOID pContext4,
|
||
|
IN PVOID pFileName,
|
||
|
IN USHORT LineNumber
|
||
|
);
|
||
|
|
||
|
#if DBG
|
||
|
|
||
|
#define CREATE_UC_TRACE_LOG( ptr, size, extra ) \
|
||
|
(ptr) = UcCreateTraceLog( (size), (extra) )
|
||
|
|
||
|
#define DESTROY_UC_TRACE_LOG( ptr ) \
|
||
|
do \
|
||
|
{ \
|
||
|
UcDestroyTraceLog( ptr ); \
|
||
|
(ptr) = NULL; \
|
||
|
} while (FALSE, FALSE)
|
||
|
|
||
|
#define UC_WRITE_TRACE_LOG( log, act, pcon, preq, pirp, status) \
|
||
|
UcWriteTraceLog( \
|
||
|
(log), \
|
||
|
(act), \
|
||
|
(PVOID)(pcon), \
|
||
|
(PVOID)(preq), \
|
||
|
(PVOID)(pirp), \
|
||
|
(PVOID)(status), \
|
||
|
__FILE__, \
|
||
|
__LINE__ \
|
||
|
)
|
||
|
|
||
|
#else // !DBG
|
||
|
|
||
|
#define CREATE_UC_TRACE_LOG( ptr, size, extra ) NOP_FUNCTION
|
||
|
#define DESTROY_UC_TRACE_LOG( ptr ) NOP_FUNCTION
|
||
|
#define UC_WRITE_TRACE_LOG( log, act, pcon, preq, pirp, status) NOP_FUNCTION
|
||
|
|
||
|
#endif // !DBG
|
||
|
|
||
|
|
||
|
#endif // _UC_TRACE_H_
|
||
|
|