|
|
/*Copyright (c) 1994 Microsoft Corporation
Module Name:
database.h
Abstract:
Author:
Revision History:
--*/
#ifndef _DATABASE_
#define _DATABASE_
#define cszWLANMonInstanceName "WLANMON"
//
// database constants.
//
#define DB_TABLE_SIZE 10 // table size in 4K pages.
#define DB_TABLE_DENSITY 80 // page density
#define DB_LANGID 0x0409 // language id
#define DB_CP 1252 // code page
/***************** New Added **********************/
#include "wzcmon.h"
#define DBFILENAMEPREFIX "windir"
#define DBFILENAMESUFFIX "\\tracing\\wzcmon\\"
#define DBFILENAME "amlog.mdb"
#define LOG_RECORD_TABLE "LogTable"
#define RECORD_IDX_STR "RecordIndex"
#define RECORD_ID_STR "RecordID"
#define COMPONENT_ID_STR "ComponentID"
#define CATEGORY_STR "Category"
#define TIMESTAMP_STR "TimeStamp"
#define MESSAGE_STR "Message"
#define INTERFACE_MAC_STR "InterfaceMAC"
#define DEST_MAC_STR "DestMac"
#define SSID_STR "SSID"
#define CONTEXT_STR "Context"
#define RECORD_IDX_IDX 0
#define RECORD_ID_IDX 1
#define COMPONENT_ID_IDX 2
#define CATEGORY_IDX 3
#define TIMESTAMP_IDX 4
#define MESSAGE_IDX 5
#define INTERFACE_MAC_IDX 6
#define DEST_MAC_IDX 7
#define SSID_IDX 8
#define CONTEXT_IDX 9
#define MAX_CHECK_POINT_DEPTH (20*1024*1024)
#define MAX_RECORD_NUM 5000
#define MAX_SUMMARY_MESSAGE_SIZE 80
#define MAX_SESSION_NUM 5
/*************************************************/
typedef struct _TABLE_INFO { CHAR * ColName; JET_COLUMNID ColHandle; JET_COLTYP ColType; DWORD dwJetBit; } TABLE_INFO, * PTABLE_INFO;
typedef struct _SESSION_CONTAINER { DWORD_PTR SessionID; DWORD_PTR DbID; DWORD_PTR TableID; struct _SESSION_CONTAINER * pNext; } SESSION_CONTAINER, * PSESSION_CONTAINER;
/********************* New added functions **************/
typedef struct _WZC_RW_LOCK { CRITICAL_SECTION csExclusive; BOOL bInitExclusive; CRITICAL_SECTION csShared; BOOL bInitShared; LONG lReaders; HANDLE hReadDone; DWORD dwCurExclusiveOwnerThreadId; } WZC_RW_LOCK, * PWZC_RW_LOCK;
DWORD InitWZCDbGlobals( BOOL bLoggingEnabled );
VOID DeInitWZCDbGlobals( );
DWORD WZCSetLoggingState( BOOL bLoggingEnabled );
DWORD WZCMapJetError( JET_ERR JetError, LPSTR CallerInfo OPTIONAL );
DWORD WZCCreateDatabase( JET_SESID JetServerSession, CHAR * Connect, JET_DBID * pJetDatabaseHandle, JET_GRBIT JetBits );
DWORD WZCOpenDatabase( JET_SESID JetServerSession, CHAR * Connect, JET_DBID * pJetDatabaseHandle, JET_GRBIT JetBits );
DWORD WZCInitializeDatabase( JET_SESID * pJetServerSession );
VOID WZCTerminateJet( JET_SESID * pJetServerSession );
DWORD WZCJetBeginTransaction( JET_SESID JetServerSession );
DWORD WZCJetRollBack( JET_SESID JetServerSession );
DWORD WZCJetCommitTransaction( JET_SESID JetServerSession, JET_TABLEID JetTableHandle );
DWORD WZCJetPrepareUpdate( JET_SESID JetServerSession, JET_TABLEID JetTableHandle, char * ColumnName, PVOID Key, DWORD KeySize, BOOL NewRecord );
DWORD WZCJetCommitUpdate( JET_SESID JetServerSession, JET_TABLEID JetTableHandle );
DWORD WZCJetSetValue( JET_SESID JetServerSession, JET_TABLEID JetTableHandle, JET_COLUMNID KeyColumnId, PVOID Data, DWORD DataSize );
DWORD WZCJetPrepareSearch( JET_SESID JetServerSession, JET_TABLEID JetTableHandle, char * ColumnName, BOOL SearchFromStart, PVOID Key, DWORD KeySize );
DWORD WZCJetNextRecord( JET_SESID JetServerSession, JET_TABLEID JetTableHandle );
DWORD WZCCreateTableData( JET_SESID JetServerSession, JET_DBID JetDatabaseHandle, JET_TABLEID * pJetTableHandle );
DWORD WZCOpenTableData( JET_SESID JetServerSession, JET_DBID JetDatabaseHandle, JET_TABLEID * pJetTableHandle );
DWORD WZCJetGetValue( JET_SESID JetServerSession, JET_TABLEID JetTableHandle, JET_COLUMNID ColumnId, PVOID pvData, DWORD dwSize, PDWORD pdwRequiredSize );
DWORD CreateSessionCont( PSESSION_CONTAINER * ppSessionCont );
DWORD IniOpenWZCDbLogSession( PSESSION_CONTAINER pSessionCont );
VOID FreeSessionCont( PSESSION_CONTAINER pSessionCont );
DWORD GetSessionContainer( HANDLE hSession, PSESSION_CONTAINER * ppSessionCont );
DWORD IniCloseWZCDbLogSession( PSESSION_CONTAINER pSessionCont );
VOID RemoveSessionCont( PSESSION_CONTAINER pSessionCont );
VOID DestroySessionContList( PSESSION_CONTAINER pSessionContList );
DWORD WZCOpenAppendSession( PSESSION_CONTAINER pSessionCont );
DWORD WZCCloseAppendSession( PSESSION_CONTAINER pSessionCont );
DWORD IniEnumWZCDbLogRecords( PSESSION_CONTAINER pSessionCont, PBOOL pbEnumFromStart, DWORD dwPreferredNumEntries, PWZC_DB_RECORD * ppWZCRecords, LPDWORD pdwNumRecords );
VOID FreeWZCRecords( PWZC_DB_RECORD pWZCRecords, DWORD dwNumRecords );
DWORD IniFlushWZCDbLog( );
DWORD CloseAllTableSessions( PSESSION_CONTAINER pSessionContList );
DWORD OpenAllTableSessions( PSESSION_CONTAINER pSessionContList );
DWORD WZCGetTableDataHandle( JET_SESID * pMyJetServerSession, JET_DBID * pMyJetDatabaseHandle, JET_TABLEID * pMyClientTableHandle );
BOOL IsDBOpened( );
DWORD IniEnumWZCDbLogRecordsSummary( PSESSION_CONTAINER pSessionCont, PBOOL pbEnumFromStart, DWORD dwPreferredNumEntries, PWZC_DB_RECORD * ppWZCRecords, LPDWORD pdwNumRecords );
DWORD EnumWZCDbLogRecordsSummary( HANDLE hSession, PWZC_DB_RECORD pTemplateRecord, PBOOL pbEnumFromStart, DWORD dwPreferredNumEntries, PWZC_DB_RECORD * ppWZCRecords, LPDWORD pdwNumRecords, LPVOID pvReserved );
DWORD GetWZCDbLogRecord( HANDLE hSession, PWZC_DB_RECORD pTemplateRecord, PWZC_DB_RECORD * ppWZCRecords, LPVOID pvReserved ); DWORD IniGetWZCDbLogRecord( PSESSION_CONTAINER pSessionCont, PWZC_DB_RECORD pTemplateRecord, PWZC_DB_RECORD * ppWZCRecords );
DWORD WZCSeekRecordOnIndexTime( JET_SESID JetServerSession, JET_TABLEID JetTableHandle, DWORD dwIndex, FILETIME ftTimeStamp );
/*******************************************************/ #endif // _DATABASE_
|