Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
reftrace.h
Abstract:
This module contains public declarations and definitions for tracing and debugging reference count problems. This module uses the generic TRACE_LOG facility in tracelog.h.
Ref count trace logs can be dumped via the !inetdbg.ref command in either NTSD or CDB.
Author:
Keith Moore (keithmo) 01-May-1997
Revision History:
--*/
#ifndef _REFTRACE_H_
#define _REFTRACE_H_
#if defined(__cplusplus)
extern "C" { #endif // __cplusplus
#include <tracelog.h>
//
// This is the number of stack backtrace values captured in each
// trace log entry. This value is chosen to make the log entry
// exactly twelve dwords long, making it a bit easier to interpret
// from within the debugger without the debugger extension.
//
#define REF_TRACE_LOG_STACK_DEPTH 9
// No-op value for the Context1,2,3 parameters of WriteRefTraceLogEx
#define REF_TRACE_EMPTY_CONTEXT ((PVOID) -1)
//
// This defines the entry written to the trace log.
//
typedef struct _REF_TRACE_LOG_ENTRY {
LONG NewRefCount; PVOID Context; PVOID Context1; PVOID Context2; PVOID Context3; DWORD Thread; PVOID Stack[REF_TRACE_LOG_STACK_DEPTH];
} REF_TRACE_LOG_ENTRY, *PREF_TRACE_LOG_ENTRY;
//
// Manipulators.
//
PTRACE_LOG CreateRefTraceLog( IN LONG LogSize, IN LONG ExtraBytesInHeader );
VOID DestroyRefTraceLog( IN PTRACE_LOG Log );
LONG __cdecl WriteRefTraceLog( IN PTRACE_LOG Log, IN LONG NewRefCount, IN PVOID Context );
LONG __cdecl WriteRefTraceLogEx( IN PTRACE_LOG Log, IN LONG NewRefCount, IN PVOID Context, IN PVOID Context1, IN PVOID Context2, IN PVOID Context3 );
#if defined(__cplusplus)
} // extern "C"
#endif // __cplusplus
#endif // _REFTRACE_H_
|