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.
152 lines
3.1 KiB
152 lines
3.1 KiB
/*++
|
|
|
|
Copyright (c) 1997 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
sdpspdbg.c
|
|
|
|
Abstract:
|
|
|
|
This module contains the debugging support for the multicast conference
|
|
service provider.
|
|
|
|
Author:
|
|
|
|
Mu Han (muhan) 26-March-1997
|
|
|
|
--*/
|
|
|
|
|
|
#include "stdafx.h"
|
|
#include "confdbg.h"
|
|
#include <stdio.h>
|
|
|
|
#ifdef DBG
|
|
|
|
#define MAXDEBUGSTRINGLEN 2048
|
|
#define MAXPATHLEN 255
|
|
|
|
|
|
VOID
|
|
DbgPrt(
|
|
IN int DbgLevel,
|
|
IN PCHAR lpszFormat,
|
|
IN ...
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Formats the incoming debug message & calls DbgPrint
|
|
|
|
Arguments:
|
|
|
|
DbgLevel - level of message verboseness
|
|
|
|
DbgMessage - printf-style format string, followed by appropriate
|
|
list of arguments
|
|
|
|
Return Value:
|
|
|
|
--*/
|
|
{
|
|
const TCHAR gszTSPKey[] =
|
|
"Software\\Microsoft\\Windows\\CurrentVersion\\IPConfTSP";
|
|
|
|
static FILE *log = NULL;
|
|
static int DebugLevel = -1;
|
|
|
|
if (DebugLevel == -1)
|
|
{
|
|
HKEY hTSPKey;
|
|
DWORD dwDataSize = sizeof (int), dwDataType;
|
|
const TCHAR szTSPDebugLevel[] = "DebugLevel";
|
|
const TCHAR szTSPLogFile[] = "LogFile";
|
|
|
|
DebugLevel=0;
|
|
|
|
if (RegOpenKeyEx(
|
|
HKEY_LOCAL_MACHINE,
|
|
gszTSPKey,
|
|
0,
|
|
KEY_READ,
|
|
&hTSPKey
|
|
) == ERROR_SUCCESS)
|
|
{
|
|
|
|
if (RegQueryValueEx(
|
|
hTSPKey,
|
|
szTSPDebugLevel,
|
|
0,
|
|
&dwDataType,
|
|
(LPBYTE) &DebugLevel,
|
|
&dwDataSize
|
|
) == ERROR_SUCCESS)
|
|
{
|
|
|
|
char szFileName[MAXPATHLEN + 1];
|
|
dwDataSize = MAXPATHLEN;
|
|
if (RegQueryValueEx(
|
|
hTSPKey,
|
|
szTSPLogFile,
|
|
0,
|
|
&dwDataType,
|
|
(LPBYTE) &szFileName,
|
|
&dwDataSize
|
|
) == ERROR_SUCCESS)
|
|
{
|
|
log = fopen(szFileName, "w");
|
|
}
|
|
}
|
|
RegCloseKey (hTSPKey);
|
|
}
|
|
}
|
|
if (DbgLevel <= DebugLevel)
|
|
{
|
|
char buf[MAXDEBUGSTRINGLEN + 1];
|
|
char *message[5] =
|
|
{
|
|
"FAIL: ",
|
|
"WARN: ",
|
|
"INFO: ",
|
|
"TRCE: ",
|
|
"ELSE: "
|
|
};
|
|
|
|
va_list ap;
|
|
|
|
if (DbgLevel > 5)
|
|
{
|
|
DbgLevel = 5;
|
|
}
|
|
|
|
SYSTEMTIME SystemTime;
|
|
|
|
// retrieve local time
|
|
GetLocalTime(&SystemTime);
|
|
|
|
wsprintfA(buf, "IPCONF:[%02u:%02u:%02u.%03u,tid=%x:]%s",
|
|
SystemTime.wHour,
|
|
SystemTime.wMinute,
|
|
SystemTime.wSecond,
|
|
SystemTime.wMilliseconds,
|
|
GetCurrentThreadId(),
|
|
message[DbgLevel - 1]
|
|
);
|
|
|
|
va_start(ap, lpszFormat);
|
|
_vsnprintf(&buf[strlen(buf)],
|
|
MAXDEBUGSTRINGLEN - strlen(buf), lpszFormat, ap);
|
|
lstrcatA (buf, "\n");
|
|
OutputDebugStringA (buf);
|
|
if (log != NULL)
|
|
{
|
|
fprintf(log, "%s", buf);
|
|
fflush(log);
|
|
}
|
|
va_end(ap);
|
|
}
|
|
}
|
|
|
|
#endif //DBG
|