|
|
/*++
Copyright (C) 1992-2001 Microsoft Corporation. All rights reserved.
Module Name:
rasdiag.h
Abstract:
Header containing rasdiag forward defintions, etc
Author:
Anthony Leibovitz (tonyle) 02-01-2001
Revision History:
--*/
#ifndef _RASDIAG_H_
#define _RASDIAG_H_
/* Forward definitions */ #include "diagcommon.h"
#include "capture.h"
#ifdef BUILD_RSNIFF
#include "rsniffclnt.h"
#endif
typedef struct _RDGHDR { DWORD dwVer; DWORD dwRDGMajVer; DWORD dwRDGMinVer; SYSTEMTIME CreationTime; } *PRDGHDR, RDGHDR;
typedef struct _RDGHDR_VER5 { DWORD dwVer; SYSTEMTIME CreationTime; } *PRDGHDR_VER5, RDGHDR_VER5;
typedef struct _RDGFILEHDR { DWORD dwVer; WCHAR szFilename[MAX_PATH+1]; DWORD dwFileSize; } *PRDGFILEHDR, RDGFILEHDR;
typedef struct _RDGFILEHDR_VER5 { DWORD dwVer; CHAR szFilename[MAX_PATH+1]; DWORD dwFileSize; } *PRDGFILEHDR_VER5, RDGFILEHDR_VER5;
typedef struct _tagCMINFO { DWORD fStatus; WCHAR *pwcRegKey; WCHAR *pwcCurUserRegKey; WCHAR *pszCmsFileName; WCHAR *pwcLogFileName; WCHAR *pwcServiceName; DWORD dwPrevLogState; // save off current state (put back when done)
struct _tagCMINFO *pNext; } *PCMINFO, CMINFO;
typedef struct _tagRASDIAGCONFIG { DWORD dwUserOptions; WCHAR szTempDir[MAX_PATH+1]; WCHAR szRasDiagDir[MAX_PATH+1]; WCHAR szWindowsDirectory[MAX_PATH+1]; WCHAR szTracingDir[MAX_PATH+1]; WCHAR szSysPbk[MAX_PATH+1]; WCHAR szUserPbk[MAX_PATH+1]; SYSTEMTIME DiagTime; PRASDIAGCAPTURE pNetInterfaces; DWORD dwNetCount; #ifdef BUILD_RSNIFF
PSOCKCB pSockCb; #endif
WCHAR **pCmFileName; DWORD dwCmLogs; PCMINFO pCmInfo; } *PRASDIAGCONFIG, RASDIAGCONFIG;
#ifndef _RASDIAG_P_H_
#include "rasdiag_p.h"
#endif //_RASDIAG_P_H_
typedef void (*LPFNNetCfgDiagFromCommandArgs)(DIAG_OPTIONS *);
#define CMINFO_STATUS_ALLUSER 0x00000001
#define CMINFO_STATUS_CURUSER 0x00000002
BOOL DoCMLogSetup(PCMINFO *ppCmInfo);
void DeleteCMLogs(PCMINFO pCmInfo);
BOOL SetCmLogState(PCMINFO pCmInfo, BOOL bEnabled);
void FindCmLog(WCHAR *pszSource, PCMINFO *ppCmInfo, DWORD dwOpt);
BOOL GetCmLogInfo(PCMINFO pCmInfo);
void FreeCmInfoResources(PCMINFO pCmInfo);
BOOL AddLog(HANDLE hWrite, WCHAR *pszSrcFileName, BOOL bSrcUnicode, WCHAR *pszLogTitle);
BOOL AddModemLogs(HANDLE hWrite);
void SetModemTracing(BOOL bState);
void DeleteModemLogs(WCHAR *szWindowsDirectory);
void DeviceDump(HANDLE hWrite);
BOOL SetTracing(BOOL bState);
void DeleteTracingLogs(WCHAR *pszTracingDir);
void OpenLogFileWithEditor(WCHAR *pszTracingDirectory, WCHAR *szWindowsDirectory);
void AddHeader(HANDLE hFile, PRASDIAGCONFIG);
BOOL BuildRasDiagLog(PRASDIAGCONFIG pRdc);
BOOL CheckFileAccess(WCHAR *pszTracingDir);
BOOL GetPbkPaths(WCHAR *szSysPbk, WCHAR *szUserPbk);
BOOL EnableOakleyLogging(BOOL bEnable);
BOOL AddOakleyLog(HANDLE hWrite);
BOOL AddNetworkLog(HANDLE hWrite);
BOOL DeleteOakleyLog(void); BOOL CreateRasdiagDirectory(WCHAR *pszRasdiagDirectory);
void RaiseFolderUI(WCHAR *pszDir);
BOOL ProcessArgs(int argc, WCHAR **argv, DWORD *pdwUserOptions);
///// Service
void MonitorState(SC_HANDLE hService, WCHAR *pServiceName, DWORD dwStateToEnforce);
BOOL MyStartService(SC_HANDLE hService, WCHAR *pServiceName);
BOOL StopService(SC_HANDLE hService, WCHAR *pServiceName); BOOL StopStartService(WCHAR *pServiceName, BOOL bStart);
///// CM
BOOL EnableCMLogging(BOOL bEnable, WCHAR ***ppPathArray, DWORD *pdwCount, WCHAR *szTempDir);
void CleanupCMLogFiles(WCHAR **pFileAry, DWORD dwCount);
void DeleteCMLogFiles(WCHAR **pFileAry, DWORD dwCount);
///// Package
BOOL UnpackFile(HANDLE hSrcFile, PRDGFILEHDR pHdr, OPTIONAL IN WCHAR *pszDestinationPath);
BOOL ClosePackage(HANDLE hFile);
BOOL CreatePackage(HANDLE *phFile, SYSTEMTIME *pDiagTime, WCHAR *szRasDiagDir);
BOOL AddFileToPackage(HANDLE hPkgFile, WCHAR *pszFileName);
BOOL BuildPackage(PRASDIAGCAPTURE pCaptures, DWORD dwCaptureCount, WCHAR *pszRasDiagDir, SYSTEMTIME *pDiagTime);
BOOL PrintUserMsg(int iMsgID,...);
void ExecNetUtils(void);
BOOL DoNetTests(void);
BOOL DumpProcessInfo(HANDLE hWrite);
BOOL ResolveProcessServices(LPENUM_SERVICE_STATUS_PROCESS pServices, DWORD dwServiceCount, HANDLE hWrite);
void PrintHelp(void);
void PrintUserInstructions(void);
BOOL RegisterRdgFileAssociation(WCHAR *pszPath);
BOOL WINAPI HandlerRoutine( DWORD dwCtrlType // control signal type
);
#endif // _RASDIAG_H_
|