windows-nt/Source/XPSP1/NT/net/jet500/jetconv/defs.h
2020-09-26 16:20:57 +08:00

240 lines
5.6 KiB
C

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
defs.h
Abstract:
Main definitions of the jetconv.exe process
Author:
Sanjay Anand (SanjayAn) Nov. 14, 1995
Environment:
User mode
Revision History:
Sanjay Anand (SanjayAn) Nov. 14, 1995
Created
--*/
#include <nt.h>
#include <ntrtl.h>
#include <nturtl.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include "locmsg.h"
#define NUM_SERVICES 3
#define MAX_NAME_LEN 20
#define PAD 44444
#define JCONVMUTEXNAME TEXT("JCMUTEX")
#define JCONVSHAREDMEMNAME TEXT("JCSHAREDMEM")
#define SYSTEM_ROOT TEXT("%systemroot%\\system32\\")
#define CONVERT_EXE_PATH TEXT("%systemroot%\\system32\\upg351db.exe")
#define JCONV_LOG_KEY_PREFIX TEXT("System\\CurrentControlSet\\Services\\EventLog\\Application\\")
#define WINS_REGISTRY_SERVICE_PATH TEXT("System\\CurrentControlSet\\Services\\Wins")
#define DHCP_REGISTRY_SERVICE_PATH TEXT("System\\CurrentControlSet\\Services\\DHCPServer")
#define RPL_REGISTRY_SERVICE_PATH TEXT("System\\CurrentControlSet\\Services\\RemoteBoot")
#define WINS_REGISTRY_PARAMETERS_PATH TEXT("System\\CurrentControlSet\\Services\\Wins\\Parameters")
#define DHCP_REGISTRY_PARAMETERS_PATH TEXT("System\\CurrentControlSet\\Services\\DHCPServer\\Parameters")
#define RPL_REGISTRY_PARAMETERS_PATH TEXT("System\\CurrentControlSet\\Services\\RemoteBoot\\Parameters")
#define WINS_REGISTRY_DBFILE_PATH TEXT("DbFileNm")
#define DHCP_REGISTRY_DBFILE_PATH TEXT("DatabasePath")
#define DHCP_REGISTRY_DBFILE_NAME TEXT("DatabaseName")
#define RPL_REGISTRY_DBFILE_PATH TEXT("Directory")
#define WINS_REGISTRY_LOGFILE_PATH TEXT("LogFilePath")
#define DHCP_REGISTRY_LOGFILE_PATH TEXT("LogFilePath")
// no such path
// #define RPL_REGISTRY_LOGFILE_PATH TEXT("LogFilePath")
#define WINS_REGISTRY_BACKUP_PATH TEXT("BackupDirPath")
#define DHCP_REGISTRY_BACKUP_PATH TEXT("BackupDatabasePath")
// no such path
// #define RPL_REGISTRY_BACKUP_PATH TEXT("BackupDatabasePath")
#define DEFAULT_WINS_DBFILE_PATH TEXT("%systemroot%\\system32\\Wins\\wins.mdb")
#define DEFAULT_DHCP_DBFILE_PATH TEXT("%systemroot%\\system32\\Dhcp\\dhcp.mdb")
#define DEFAULT_RPL_DBFILE_PATH TEXT("%systemroot%\\Rpl\\rplsvc.mdb")
#define DEFAULT_WINS_LOGFILE_PATH TEXT("%systemroot%\\system32\\Wins")
#define DEFAULT_DHCP_LOGFILE_PATH TEXT("%systemroot%\\system32\\Dhcp")
#define DEFAULT_RPL_LOGFILE_PATH TEXT("%systemroot%\\Rpl")
#define DEFAULT_WINS_BACKUP_PATH TEXT("")
#define DEFAULT_DHCP_BACKUP_PATH TEXT("%systemroot%\\system32\\Dhcp\\Backup")
#define DEFAULT_RPL_BACKUP_PATH TEXT("%systemroot%\\Rpl\\Backup")
#define DEFAULT_WINS_SYSTEM_PATH TEXT("%systemroot%\\system32\\Wins\\system.mdb")
#define DEFAULT_DHCP_SYSTEM_PATH TEXT("%systemroot%\\system32\\Dhcp\\system.mdb")
#define DEFAULT_RPL_SYSTEM_PATH TEXT("%systemroot%\\Rpl\\system.mdb")
//
// Jet500 to Jet600 definitions, etc.
//
#define CONVERT_EXE_PATH_ESE TEXT("%systemroot%\\system32\\esentutl.exe")
#define DEFAULT_WINS_BACKUP_PATH_ESE TEXT("") // TEXT("%systemroot%\\system32\\Wins\\winsb.mdb")
#define DEFAULT_DHCP_BACKUP_PATH_ESE TEXT("%systemroot%\\system32\\Dhcp\\Backup\\dhcp.mdb")
#define DEFAULT_RPL_BACKUP_PATH_ESE TEXT("%systemroot%\\Rpl\\Backup\\rplsvc.mdb")
#define DEFAULT_WINS_PRESERVE_PATH_ESE TEXT("%systemroot%\\system32\\Wins\\40Db\\wins.mdb")
#define DEFAULT_DHCP_PRESERVE_PATH_ESE TEXT("%systemroot%\\system32\\Dhcp\\40Db\\dhcp.mdb")
#define DEFAULT_RPL_PRESERVE_PATH_ESE TEXT("")
#if DBG
#define MYDEBUG(_Print) { \
if (JCDebugLevel == 1) { \
DbgPrint ("JCONV: "); \
DbgPrint _Print; \
} else { \
printf ("JCONV: "); \
printf _Print; \
}\
}
#else
#define MYDEBUG(_Print)
#endif
typedef enum _SERVICES {
DHCP,
WINS,
RPL
} SERVICES, *PSERVICES;
typedef struct _SERVICE_INFO {
TCHAR ServiceName[MAX_NAME_LEN];
BOOLEAN Installed;
BOOLEAN DefaultDbPath;
BOOLEAN DefaultLogFilePath;
BOOLEAN DBConverted;
BOOLEAN ServiceStarted;
TCHAR DBPath[MAX_PATH];
TCHAR SystemFilePath[MAX_PATH];
TCHAR LogFilePath[MAX_PATH];
TCHAR BackupPath[MAX_PATH];
//
// ESE has a different backup path specification format
// Which gives rise to the following spud.
//
TCHAR ESEBackupPath[MAX_PATH];
TCHAR ESEPreservePath[MAX_PATH];
LARGE_INTEGER DBSize;
} SERVICE_INFO, *PSERVICE_INFO;
typedef struct _SHARED_MEM {
BOOLEAN InvokedByService[NUM_SERVICES];
} SHARED_MEM, *PSHARED_MEM;
extern TCHAR SystemDrive[4];
extern LONG JCDebugLevel;
extern HANDLE EventLogHandle;
extern PSHARED_MEM shrdMemPtr;
extern HANDLE hMutex;
extern HANDLE hFileMapping;
extern BOOLEAN Jet200;
//
// Prototypes
//
NTSTATUS
JCRegisterEventSrc();
NTSTATUS
JCDeRegisterEventSrc();
VOID
JCLogEvent(
IN DWORD EventId,
IN LPSTR MsgTypeString1,
IN LPSTR MsgTypeString2,
IN LPSTR MsgTypeString3
);
VOID
JCReadRegistry(
IN PSERVICE_INFO pServiceInfo
);
VOID
JCGetMutex (
IN HANDLE mutex,
IN DWORD To
);
VOID
JCFreeMutex (
IN HANDLE mutex
);
NTSTATUS
JCCallUpg(
IN SERVICES Id,
IN PSERVICE_INFO pServiceInfo
);
DWORD
JCConvert(
IN PSERVICE_INFO pServiceInfo
);
NTSTATUS
DeleteLogFiles(
TCHAR * LogFilePath
);
DWORD
PreserveCurrentDb( TCHAR * szBasePath,
TCHAR * szSourceDb,
TCHAR * szPreserveDbPath,
TCHAR * szPreserveDB
);