Leaked source code of windows server 2003
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.
 
 
 
 
 
 

229 lines
8.9 KiB

#ifndef ISAMAPI_H
#define ISAMAPI_H
#define ISAMAPI
typedef struct
{
JET_COLUMNID columnidSrc;
JET_COLUMNID columnidDest;
} CPCOL;
#define columnidBookmark 0xFFFFFFFF
typedef struct tagSTATUSINFO
{
JET_SESID sesid;
JET_PFNSTATUS pfnStatus; // address of status notification function
JET_SNP snp; // status notification process
JET_SNT snt; // status notification type
ULONG cunitTotal; // total units of work
ULONG cunitDone; // units of work completed
ULONG cunitPerProgression; // units of work per unit of progression
// Detailed statistics:
BOOL fDumpStats; // dump compaction statistics (DEBUG only)
struct _iobuf *hfCompactStats; // handle to compaction statistics file
ULONG timerInitDB;
ULONG timerCopyDB;
ULONG timerInitTable;
ULONG timerCopyRecords;
ULONG timerRebuildIndexes;
ULONG timerCopyTable;
ULONG cDBPagesOwned; // OwnExt of source DB
ULONG cDBPagesAvail; // AvailExt of source DB
char *szTableName; // Name of current table
ULONG cTableFixedVarColumns; // Number of fixed and variable columns in current dest. table
ULONG cTableTaggedColumns; // Number of tagged columns in current dest. table
ULONG cTableInitialPages; // Pages initially allocated to current dest. table
ULONG cTablePagesOwned; // OwnExt of current source table
ULONG cTablePagesAvail; // AvailExt of current source table
ULONG cbRawData; // Bytes of non-LV raw data copied
ULONG cbRawDataLV; // Bytes of LV raw data copied
ULONG cLeafPagesTraversed; // Number of leaf pages traversed in current source table
ULONG cLVPagesTraversed; // Number of long value pages traversed in current source table
ULONG cNCIndexes; // Number of non-clustered indexes in current source table
} STATUSINFO;
/* Typedefs for dispatched APIs. */
/* Please keep in alphabetical order */
typedef ERR ISAMAPI ISAMFNAttachDatabase(JET_VSESID sesid, const char *szFileName, JET_GRBIT grbit );
typedef ERR ISAMAPI ISAMFNBeginExternalBackup( JET_GRBIT grbit );
typedef ERR ISAMAPI ISAMFNBackup( const char *szBackupPath,
JET_GRBIT grbit, JET_PFNSTATUS pfnStatus );
typedef ERR ISAMAPI ISAMFNBeginSession(JET_VSESID *pvsesid);
typedef ERR ISAMAPI ISAMFNInvalidateCursors( JET_VSESID sesid );
typedef ERR ISAMAPI ISAMFNCloseFile( JET_HANDLE hfFile );
typedef ERR ISAMAPI ISAMFNGetSessionInfo( JET_VSESID sesid, JET_GRBIT *pgrbit );
typedef ERR ISAMAPI ISAMFNSetSessionInfo( JET_VSESID sesid, JET_GRBIT grbit );
typedef ERR ISAMAPI ISAMFNBeginTransaction(JET_VSESID sesid);
typedef ERR ISAMAPI ISAMFNCommitTransaction(JET_VSESID sesid, JET_GRBIT grbit);
typedef ERR ISAMAPI ISAMFNCopyRecords(JET_VSESID sesid, JET_TABLEID tableidSrc,
JET_TABLEID tableidDest, CPCOL *rgcpcol, unsigned long ccpcolMax,
long crecMax, unsigned long *pcrowCopy, unsigned long *precidLast,
JET_COLUMNID *mpcolumnidcolumnidTagged, STATUSINFO *pstatus );
typedef ERR ISAMAPI ISAMFNCreateDatabase(JET_VSESID sesid,
const char *szDatabase, const char *szConnect,
JET_DBID *pdbid, JET_GRBIT grbit);
typedef ERR ISAMAPI ISAMFNDetachDatabase(JET_VSESID sesid, const char *szFileName);
typedef ERR ISAMAPI ISAMFNEndExternalBackup( void );
typedef ERR ISAMAPI ISAMFNEndSession(JET_VSESID sesid, JET_GRBIT grbit);
typedef ERR ISAMAPI ISAMFNExternalRestore( char *szCheckpointFilePath, char *szLogPath, JET_RSTMAP *rgstmap, int crstfilemap, char *szBackupLogPath, long genLow, long genHigh, JET_PFNSTATUS pfn );
typedef ERR ISAMAPI ISAMFNGetAttachInfo( void *pv, unsigned long cbMax, unsigned long *pcbActual );
typedef ERR ISAMAPI ISAMFNGetLogInfo( void *pv, unsigned long cbMax, unsigned long *pcbActual );
typedef ERR ISAMAPI ISAMFNIdle(JET_VSESID sesid, JET_GRBIT grbit);
typedef ERR ISAMAPI ISAMFNIndexRecordCount(JET_SESID sesid,
JET_TABLEID tableid, unsigned long *pcrec, unsigned long crecMax);
typedef ERR ISAMAPI ISAMFNInit( unsigned long itib );
typedef ERR ISAMAPI ISAMFNLoggingOn(JET_VSESID sesid);
typedef ERR ISAMAPI ISAMFNLoggingOff(JET_VSESID sesid);
typedef ERR ISAMAPI ISAMFNOpenDatabase(JET_VSESID sesid,
const char *szDatabase, const char *szConnect,
JET_DBID *pdbid, JET_GRBIT grbit);
typedef ERR ISAMAPI ISAMFNOpenFile( const char *szFileName,
JET_HANDLE *phfFile,
unsigned long *pulFileSizeLow,
unsigned long *pulFileSizeHigh );
typedef ERR ISAMAPI ISAMFNOpenTempTable( JET_VSESID sesid,
const JET_COLUMNDEF *prgcolumndef,
unsigned long ccolumn,
unsigned long langid,
JET_GRBIT grbit,
JET_TABLEID *ptableid,
JET_COLUMNID *prgcolumnid );
typedef ERR ISAMAPI ISAMFNReadFile( JET_HANDLE hfFile, void *pv, unsigned long cbMax, unsigned long *pcbActual );
typedef ERR ISAMAPI ISAMFNRepairDatabase(JET_VSESID sesid, const char *szFilename,
JET_PFNSTATUS pfnStatus);
typedef ERR ISAMAPI ISAMFNRestore( char *szRestoreFromPath, JET_PFNSTATUS pfn );
typedef ERR ISAMAPI ISAMFNRestore2( char *szRestoreFromPath, char *szDestPath, JET_PFNSTATUS pfn );
typedef ERR ISAMAPI ISAMFNRollback(JET_VSESID sesid, JET_GRBIT grbit);
typedef ERR ISAMAPI ISAMFNSetSystemParameter(JET_VSESID sesid,
unsigned long paramid, unsigned long l, const void *sz);
typedef ERR ISAMAPI ISAMFNSetWaitLogFlush( JET_VSESID sesid, long lmsec );
typedef ERR ISAMAPI ISAMFNResetCounter( JET_SESID sesid, int CounterType );
typedef ERR ISAMAPI ISAMFNGetCounter( JET_SESID sesid, int CounterType, long *plValue );
typedef ERR ISAMAPI ISAMFNSetCommitDefault( JET_VSESID sesid, long lmsec );
typedef ERR ISAMAPI ISAMFNTerm( JET_GRBIT grbit );
typedef ERR ISAMAPI ISAMFNTruncateLog( void );
typedef ERR ISAMAPI FNDeleteFile(const char *szFilename);
typedef ERR ISAMAPI ISAMFNCompact( JET_SESID sesid, const char *szDatabaseSrc,
const char *szDatabaseDest, JET_PFNSTATUS pfnStatus,
JET_CONVERT *pconvert, JET_GRBIT grbit );
typedef ERR ISAMAPI ISAMFNDBUtilities( JET_SESID sesid, JET_DBUTIL *pdbutil );
typedef struct ISAMDEF {
ISAMFNAttachDatabase *pfnAttachDatabase;
ISAMFNBackup *pfnBackup;
ISAMFNBeginSession *pfnBeginSession;
ISAMFNBeginTransaction *pfnBeginTransaction;
ISAMFNCommitTransaction *pfnCommitTransaction;
ISAMFNCreateDatabase *pfnCreateDatabase;
ISAMFNDetachDatabase *pfnDetachDatabase;
ISAMFNEndSession *pfnEndSession;
ISAMFNIdle *pfnIdle;
ISAMFNInit *pfnInit;
ISAMFNLoggingOn *pfnLoggingOn;
ISAMFNLoggingOff *pfnLoggingOff;
ISAMFNOpenDatabase *pfnOpenDatabase;
ISAMFNOpenTempTable *pfnOpenTempTable;
ISAMFNRepairDatabase *pfnRepairDatabase;
ISAMFNRestore *pfnRestore;
ISAMFNRollback *pfnRollback;
ISAMFNSetSystemParameter *pfnSetSystemParameter;
ISAMFNTerm *pfnTerm;
} ISAMDEF;
/* The following ISAM APIs are not dispatched */
typedef ERR ISAMAPI ISAMFNLoad(ISAMDEF * *ppisamdef);
/* Declarations for the built-in ISAM which is called directly. */
extern ISAMFNAttachDatabase ErrIsamAttachDatabase;
extern ISAMFNBackup ErrIsamBackup;
extern ISAMFNBeginSession ErrIsamBeginSession;
extern ISAMFNBeginExternalBackup ErrIsamBeginExternalBackup;
extern ISAMFNBeginTransaction ErrIsamBeginTransaction;
extern ISAMFNCloseFile ErrIsamCloseFile;
extern ISAMFNCommitTransaction ErrIsamCommitTransaction;
extern ISAMFNCopyRecords ErrIsamCopyRecords;
extern ISAMFNCreateDatabase ErrIsamCreateDatabase;
extern ISAMFNDetachDatabase ErrIsamDetachDatabase;
extern ISAMFNEndExternalBackup ErrIsamEndExternalBackup;
extern ISAMFNEndSession ErrIsamEndSession;
extern ISAMFNExternalRestore ErrIsamExternalRestore;
extern ISAMFNGetAttachInfo ErrIsamGetAttachInfo;
extern ISAMFNGetLogInfo ErrIsamGetLogInfo;
extern ISAMFNIdle ErrIsamIdle;
extern ISAMFNIndexRecordCount ErrIsamIndexRecordCount;
extern ISAMFNInit ErrIsamInit;
extern ISAMFNLoggingOn ErrIsamLoggingOn;
extern ISAMFNLoggingOff ErrIsamLoggingOff;
extern ISAMFNOpenDatabase ErrIsamOpenDatabase;
extern ISAMFNOpenFile ErrIsamOpenFile;
extern ISAMFNOpenTempTable ErrIsamOpenTempTable;
extern ISAMFNReadFile ErrIsamReadFile;
extern ISAMFNRepairDatabase ErrIsamRepairDatabase;
extern ISAMFNRestore ErrIsamRestore;
extern ISAMFNRestore2 ErrIsamRestore2;
extern ISAMFNRollback ErrIsamRollback;
extern ISAMFNSetSessionInfo ErrIsamSetSessionInfo;
extern ISAMFNGetSessionInfo ErrIsamGetSessionInfo;
extern ISAMFNSetSystemParameter ErrIsamSetSystemParameter;
extern ISAMFNSetWaitLogFlush ErrIsamSetWaitLogFlush;
extern ISAMFNResetCounter ErrIsamResetCounter;
extern ISAMFNGetCounter ErrIsamGetCounter;
extern ISAMFNSetCommitDefault ErrIsamSetCommitDefault;
extern ISAMFNTerm ErrIsamTerm;
extern ISAMFNTruncateLog ErrIsamTruncateLog;
extern ISAMFNCompact ErrIsamCompact;
extern ISAMFNInvalidateCursors ErrIsamInvalidateCursors;
extern ISAMFNDBUtilities ErrIsamDBUtilities;
extern FNDeleteFile ErrDeleteFile;
#endif /* !ISAMAPI_H */