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.
327 lines
6.4 KiB
327 lines
6.4 KiB
/*++
|
|
|
|
Copyright (c) 2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
diagrprt.h
|
|
|
|
Abstract:
|
|
|
|
This file contains all defines for the RAS Diag Report.
|
|
|
|
Author:
|
|
|
|
Jeff Sigman (JeffSi) September 13, 2001
|
|
|
|
Environment:
|
|
|
|
User Mode
|
|
|
|
Revision History:
|
|
|
|
JeffSi 09/13/01 Created
|
|
|
|
--*/
|
|
|
|
#ifndef _DIAGRPRT_H_
|
|
#define _DIAGRPRT_H_
|
|
|
|
#define ALL_USERS_PROF 0x00000001
|
|
#define CURRENT_USER 0x00000002
|
|
#define GET_FOR_CM 0x00000004
|
|
#define GET_FOR_RAS 0x00000008
|
|
#define GET_FOR_MSINFO 0x00000010
|
|
|
|
#define SHOW_LOGS 0x00000001
|
|
#define SHOW_INSTALL 0x00000002
|
|
#define SHOW_CONFIG 0x00000004
|
|
#define SHOW_ALL 0x0000ffff
|
|
|
|
#define TIMESIZE 8
|
|
|
|
#define TIMEDATESTR 80
|
|
|
|
#define MAX_MSG_LENGTH 5120
|
|
|
|
#define BUF_WRITE_SIZE 4096
|
|
|
|
#define TITLE_SIZE 128
|
|
|
|
#define RPRT_ITM 14
|
|
#define RPRT_ITM_VERBOSE 1
|
|
//
|
|
// Macro to determine the percentage complete
|
|
//
|
|
#define ADD_PERCENT_DONE(x) \
|
|
((DWORD)(100 / (x ? (RPRT_ITM + RPRT_ITM_VERBOSE) : RPRT_ITM)))
|
|
|
|
typedef
|
|
LPBYTE
|
|
(*RAS_PRINTFILE_FUNC_CB)(
|
|
IN LPBYTE pBuff,
|
|
IN DWORD dwSize,
|
|
IN DWORD dwHours);
|
|
|
|
typedef struct _BUFFER_WRITE_FILE
|
|
{
|
|
DWORD dwPosition;
|
|
HANDLE hFile;
|
|
LPBYTE lpBuff;
|
|
|
|
} BUFFER_WRITE_FILE;
|
|
|
|
typedef struct _REPORT_INFO
|
|
{
|
|
BOOL fDisplay;
|
|
BOOL fVerbose;
|
|
DWORD dwHours;
|
|
BUFFER_WRITE_FILE* pBuff;
|
|
DiagGetReportCb pCallback;
|
|
GET_REPORT_STRING_CB* pCbInfo;
|
|
|
|
} REPORT_INFO;
|
|
|
|
typedef struct _CMD_LINE_UTILS
|
|
{
|
|
PWCHAR pwszCmdLine;
|
|
PWCHAR pwszAnchor;
|
|
|
|
} CMD_LINE_UTILS;
|
|
|
|
//
|
|
// task list structure
|
|
//
|
|
typedef struct _TASK_LIST
|
|
{
|
|
DWORD dwProcessId;
|
|
HANDLE hwnd;
|
|
LPTSTR lpszWinSta;
|
|
LPTSTR lpszDesk;
|
|
WCHAR szWindowTitle[TITLE_SIZE];
|
|
|
|
} TASK_LIST, *PTASK_LIST;
|
|
|
|
typedef struct _TASK_LIST_ENUM
|
|
{
|
|
PTASK_LIST tlist;
|
|
DWORD dwNumTasks;
|
|
LPTSTR lpszWinSta;
|
|
LPTSTR lpszDesk;
|
|
BOOL bFirstLoop;
|
|
|
|
} TASK_LIST_ENUM, *PTASK_LIST_ENUM;
|
|
|
|
extern CONST WCHAR g_pwszLBracket;
|
|
extern CONST WCHAR g_pwszRBracket;
|
|
extern CONST WCHAR g_pwszBackSlash;
|
|
extern CONST WCHAR g_pwszNull;
|
|
|
|
extern CONST WCHAR g_pwszEmpty[];
|
|
extern CONST WCHAR g_pwszSpace[];
|
|
extern CONST WCHAR g_pwszLogSrchStr[];
|
|
extern CONST WCHAR g_pwszLogging[];
|
|
extern CONST WCHAR g_pwszDispNewLine[];
|
|
|
|
extern CONST WCHAR g_pwszNewLineHtml[];
|
|
extern CONST WCHAR g_pwszPreStart[];
|
|
extern CONST WCHAR g_pwszPreEnd[];
|
|
extern CONST WCHAR g_pwszAnNameStart[];
|
|
extern CONST WCHAR g_pwszAnNameMiddle[];
|
|
extern CONST WCHAR g_pwszAnNameEnd[];
|
|
extern CONST WCHAR g_pwszAnStart[];
|
|
extern CONST WCHAR g_pwszAnMiddle[];
|
|
extern CONST WCHAR g_pwszAnEnd[];
|
|
extern CONST WCHAR g_pwszLiStart[];
|
|
extern CONST WCHAR g_pwszLiEnd[];
|
|
|
|
extern CONST WCHAR g_pwszTableOfContents[];
|
|
extern CONST WCHAR g_pwszTraceCollectTracingLogs[];
|
|
extern CONST WCHAR g_pwszTraceCollectCmLogs[];
|
|
extern CONST WCHAR g_pwszTraceCollectModemLogs[];
|
|
extern CONST WCHAR g_pwszTraceCollectIpsecLogs[];
|
|
extern CONST WCHAR g_pwszPrintRasEventLogs[];
|
|
extern CONST WCHAR g_pwszPrintSecurityEventLogs[];
|
|
extern CONST WCHAR g_pwszPrintRasInfData[];
|
|
extern CONST WCHAR g_pwszHrValidateRas[];
|
|
extern CONST WCHAR g_pwszHrShowNetComponentsAll[];
|
|
extern CONST WCHAR g_pwszCheckRasRegistryKeys[];
|
|
extern CONST WCHAR g_pwszPrintRasEnumDevices[];
|
|
extern CONST WCHAR g_pwszPrintProcessInfo[];
|
|
extern CONST WCHAR g_pwszPrintConsoleUtils[];
|
|
extern CONST WCHAR g_pwszPrintWinMsdReport[];
|
|
extern CONST WCHAR g_pwszPrintAllRasPbks[];
|
|
|
|
VOID
|
|
WriteLinkBackToToc(
|
|
IN BUFFER_WRITE_FILE* pBuff);
|
|
|
|
VOID
|
|
WriteHtmlSection(
|
|
IN BUFFER_WRITE_FILE* pBuff,
|
|
IN LPCWSTR pwszAnchor,
|
|
IN DWORD dwMsgId);
|
|
|
|
VOID
|
|
WriteHeaderSep(
|
|
IN BUFFER_WRITE_FILE* pBuff,
|
|
IN LPCWSTR pwszTitle);
|
|
|
|
DWORD
|
|
BufferWriteFileStrW(
|
|
IN BUFFER_WRITE_FILE* pBuff,
|
|
IN LPCWSTR pwszString);
|
|
|
|
DWORD
|
|
PrintFile(
|
|
IN REPORT_INFO* pInfo,
|
|
IN LPCWSTR pwszFile,
|
|
IN BOOL fWritePath,
|
|
IN RAS_PRINTFILE_FUNC_CB pCallback);
|
|
|
|
PWCHAR
|
|
GetTracingDir();
|
|
|
|
BOOL
|
|
GetCMLoggingSearchPath(
|
|
IN HANDLE hKey,
|
|
IN LPCWSTR pwszName,
|
|
IN LPCWSTR* ppwszLogPath,
|
|
IN LPCWSTR* ppwszSeach);
|
|
|
|
PWCHAR
|
|
FormatMessageFromMod(
|
|
IN HANDLE hModule,
|
|
IN DWORD dwId);
|
|
|
|
VOID
|
|
FreeFormatMessageFromMod(
|
|
IN LPCWSTR pwszMessage);
|
|
|
|
PWCHAR
|
|
LoadStringFromHinst(
|
|
IN HINSTANCE hInst,
|
|
IN DWORD dwId);
|
|
|
|
VOID
|
|
FreeStringFromHinst(
|
|
IN LPCWSTR pwszMessage);
|
|
|
|
DWORD
|
|
CopyAndCallCB(
|
|
IN REPORT_INFO* pInfo,
|
|
IN DWORD dwId);
|
|
|
|
PWCHAR
|
|
CreateErrorString(
|
|
IN WORD wNumStrs,
|
|
IN LPCWSTR pswzStrings,
|
|
IN LPCWSTR pswzErrorMsg);
|
|
|
|
VOID
|
|
WriteEventLogEntry(
|
|
IN BUFFER_WRITE_FILE* pBuff,
|
|
IN PEVENTLOGRECORD pevlr,
|
|
IN LPCWSTR pwszDescr,
|
|
IN LPCWSTR pwszCategory);
|
|
|
|
DWORD
|
|
BufferWriteMessage(
|
|
IN BUFFER_WRITE_FILE* pBuff,
|
|
IN HANDLE hModule,
|
|
IN DWORD dwMsgId,
|
|
...);
|
|
|
|
DWORD
|
|
WriteNewLine(
|
|
IN BUFFER_WRITE_FILE* pBuff);
|
|
|
|
DWORD
|
|
BufferWriteFileCharW(
|
|
IN BUFFER_WRITE_FILE* pBuff,
|
|
IN CONST WCHAR wszChar);
|
|
|
|
DWORD
|
|
DiagGetReport(
|
|
IN DWORD dwFlags,
|
|
IN OUT LPCWSTR pwszString,
|
|
IN OPTIONAL DiagGetReportCb pCallback,
|
|
IN OPTIONAL PVOID pContext);
|
|
|
|
VOID
|
|
PrintTableOfContents(
|
|
IN REPORT_INFO* pInfo,
|
|
IN DWORD dwFlag);
|
|
|
|
DWORD
|
|
RasDiagShowAll(
|
|
IN REPORT_INFO* pInfo);
|
|
|
|
DWORD
|
|
RasDiagShowInstallation(
|
|
IN REPORT_INFO* pInfo);
|
|
|
|
DWORD
|
|
RasDiagShowConfiguration(
|
|
IN REPORT_INFO* pInfo);
|
|
|
|
DWORD
|
|
CopyTempFileName(
|
|
OUT LPCWSTR pwszTempFileName);
|
|
|
|
PWCHAR
|
|
CreateHtmFileName(
|
|
IN LPCWSTR pwszFile);
|
|
|
|
DWORD
|
|
CreateReportFile(
|
|
IN BUFFER_WRITE_FILE* pBuff,
|
|
IN LPCWSTR pwszReport);
|
|
|
|
VOID
|
|
CloseReportFile(
|
|
IN BUFFER_WRITE_FILE* pBuff);
|
|
|
|
VOID
|
|
PrintHtmlHeader(
|
|
IN BUFFER_WRITE_FILE* pBuff);
|
|
|
|
VOID
|
|
PrintHtmlFooter(
|
|
IN BUFFER_WRITE_FILE* pBuff);
|
|
|
|
PWCHAR
|
|
CabCompressFile(
|
|
IN LPCWSTR pwszFile);
|
|
|
|
DWORD
|
|
MapiSendMail(
|
|
IN LPCWSTR pwszEmailAdr,
|
|
IN LPCWSTR pwszTempFile);
|
|
|
|
LPBYTE
|
|
ParseRasLogForTime(
|
|
IN LPBYTE pBuff,
|
|
IN DWORD dwSize,
|
|
IN DWORD dwHours);
|
|
|
|
LPBYTE
|
|
ParseModemLogForTime(
|
|
IN LPBYTE pBuff,
|
|
IN DWORD dwSize,
|
|
IN DWORD dwHours);
|
|
|
|
LPBYTE
|
|
ParseCmLogForTime(
|
|
IN LPBYTE pBuff,
|
|
IN DWORD dwSize,
|
|
IN DWORD dwHours);
|
|
|
|
LPBYTE
|
|
ParseIpsecLogForTime(
|
|
IN LPBYTE pBuff,
|
|
IN DWORD dwSize,
|
|
IN DWORD dwHours);
|
|
|
|
#endif // _DIAGRPRT_H_
|
|
|