Windows-Server-2003/net/http/sys/uctrace.h

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_