mirror of https://github.com/tongzx/nt5src
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.
81 lines
1.9 KiB
81 lines
1.9 KiB
/*++ BUILD Version: 0001 // Increment this if a change has global effects
|
|
|
|
Copyright (c) 1990 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
memprint.h
|
|
|
|
Abstract:
|
|
|
|
Include file for in-memory DbgPrint function. Including this file
|
|
will change DbgPrints to a routine which puts the display text in a
|
|
circular buffer in memory. By default, the text is then sent to the
|
|
console via DbgPrint. By changing the value of the MemPrintFlags
|
|
flag, however, the text may be routed to a file instead, thereby
|
|
significantly speeding up the DbgPrint operation.
|
|
|
|
Author:
|
|
|
|
David Treadwell (davidtr) 05-Oct-1990
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _MEMPRINT_
|
|
#define _MEMPRINT_
|
|
|
|
#define MEM_PRINT_FLAG_CONSOLE 0x01
|
|
#define MEM_PRINT_FLAG_FILE 0x02
|
|
#define MEM_PRINT_FLAG_HEADER 0x04
|
|
|
|
extern ULONG MemPrintFlags;
|
|
|
|
#ifdef MIPS
|
|
#define MEM_PRINT_DEF_BUFFER_SIZE 16384
|
|
#else
|
|
#define MEM_PRINT_DEF_BUFFER_SIZE 65536
|
|
#endif
|
|
|
|
//
|
|
// The subbuffer count is the number of subbuffers within the circular
|
|
// buffer. A subbuffer is the method used to buffer data between
|
|
// MemPrint and writing to disk--when a subbuffer is filled, its
|
|
// contents are written to the log file. This value should be a power
|
|
// of two between two and sixty-four (two is necessary to allow writing
|
|
// to disk and RAM simultaneously, sixty-four is the maximum number of
|
|
// things a thread can wait on at once).
|
|
//
|
|
//
|
|
|
|
#define MEM_PRINT_DEF_SUBBUFFER_COUNT 16
|
|
#define MEM_PRINT_MAX_SUBBUFFER_COUNT 64
|
|
|
|
#define MEM_PRINT_LOG_FILE_NAME "\\SystemRoot\\Logfile"
|
|
|
|
//
|
|
// Exported routines. MemPrintInitialize sets up the circular buffer
|
|
// and other memory, MemPrint writes text to the console and/or a
|
|
// log file, and MemPrintFlush writes the current subbuffer to disk
|
|
// whether or not it is full.
|
|
//
|
|
|
|
VOID
|
|
MemPrintInitialize (
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
MemPrint (
|
|
CHAR *Format, ...
|
|
);
|
|
|
|
VOID
|
|
MemPrintFlush (
|
|
VOID
|
|
);
|
|
|
|
#define DbgPrint MemPrint
|
|
|
|
#endif // def _MEMPRINT_
|