//+-------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1996 - 1999 // // File: dbw.cpp // // Contents: Cert Server Database interface implementation // //--------------------------------------------------------------------------- #include #pragma hdrstop #include "dbw.h" #if DBG BOOL g_fDebugJet = TRUE; #define DBGJET(args) if (g_fDebugJet) { DBGPRINT(args); } #define DBGJETDUMPHEX(jerr, flags, pb, cb) \ if (JET_errSuccess == (jerr) && g_fDebugJet && NULL != (pb) && 0 != (cb)) \ { \ DBGDUMPHEX((DBG_SS_CERTJETI, (flags), (pb), (cb))); \ } #define CTABLEMAX 40 JET_TABLEID g_at[CTABLEMAX]; DWORD g_ct = 0; DWORD TableIndex( JET_TABLEID tableid) { DWORD i; for (i = 0; i < g_ct; i++) { if (g_at[i] == tableid) { return(i); } } if (g_ct < CTABLEMAX) { g_at[g_ct++] = tableid; DBGJET((DBG_SS_CERTJETI, "TableIndex(%x) --> %x\n", tableid, i)); return(i); } return((DWORD) -1); } VOID dbgcat( IN OUT WCHAR *pwszBuf, IN WCHAR const *pwszAdd) { wcscat(pwszBuf, NULL == wcschr(pwszBuf, L':')? L": " : L", "); wcscat(pwszBuf, pwszAdd); } WCHAR const * wszOpenDatabase( JET_GRBIT grbit) { static WCHAR s_awc[12]; wsprintf(s_awc, L"{%x}", grbit); return(s_awc); } WCHAR const * wszAttachDatabase( JET_GRBIT grbit) { static WCHAR s_awc[12]; wsprintf(s_awc, L"{%x}", grbit); return(s_awc); } WCHAR const * wszSeekgrbit( JET_GRBIT grbit) { static WCHAR s_awc[64]; // 1 + 2 + 6 * 2 + 5 * 2 + 13 wsprintf(s_awc, L"{%x", grbit); if (JET_bitSeekEQ & grbit) dbgcat(s_awc, L"EQ"); if (JET_bitSeekLT & grbit) dbgcat(s_awc, L"LT"); if (JET_bitSeekLE & grbit) dbgcat(s_awc, L"LE"); if (JET_bitSeekGE & grbit) dbgcat(s_awc, L"GE"); if (JET_bitSeekGT & grbit) dbgcat(s_awc, L"GT"); if (JET_bitSetIndexRange & grbit) dbgcat(s_awc, L"SetIndexRange"); wcscat(s_awc, L"}"); CSASSERT(wcslen(s_awc) < ARRAYSIZE(s_awc)); return(s_awc); } WCHAR const * wszMovecrow( IN LONG cRow) { static WCHAR s_awc[16]; switch (cRow) { case JET_MoveFirst: wcscpy(s_awc, L"First"); break; case JET_MovePrevious: wcscpy(s_awc, L"Previous"); break; case JET_MoveNext: wcscpy(s_awc, L"Next"); break; case JET_MoveLast: wcscpy(s_awc, L"Last"); break; default: wsprintf(s_awc, L"%d", cRow); break; } CSASSERT(wcslen(s_awc) < ARRAYSIZE(s_awc)); return(s_awc); } WCHAR const * wszMovegrbit( JET_GRBIT grbit) { static WCHAR s_awc[16]; if (JET_bitMoveKeyNE & grbit) wcscpy(s_awc, L"MoveKeyNE"); if (0 == grbit) wcscpy(s_awc, L"0"); CSASSERT(wcslen(s_awc) < ARRAYSIZE(s_awc)); return(s_awc); } WCHAR const * wszSetIndexRangegrbit( JET_GRBIT grbit) { static WCHAR s_awc[64]; // 1 + 2 + 6 * 2 + 5 * 2 + 13 wsprintf(s_awc, L"{%x", grbit); if (JET_bitRangeInclusive & grbit) dbgcat(s_awc, L"Inclusive"); if (0 == ((JET_bitRangeInclusive | JET_bitRangeRemove) & grbit)) dbgcat(s_awc, L"Exclusive"); if (JET_bitRangeUpperLimit & grbit) dbgcat(s_awc, L"UpperLimit"); if (0 == ((JET_bitRangeUpperLimit | JET_bitRangeRemove) & grbit)) dbgcat(s_awc, L"LowerLimit"); if (JET_bitRangeInstantDuration & grbit) dbgcat(s_awc, L"InstantDuration"); if (JET_bitRangeRemove & grbit) dbgcat(s_awc, L"Remove"); wcscat(s_awc, L"}"); CSASSERT(wcslen(s_awc) < ARRAYSIZE(s_awc)); return(s_awc); } WCHAR const * wszMakeKeygrbit( JET_GRBIT grbit) { static WCHAR s_awc[128]; wsprintf(s_awc, L"{%x", grbit); if (JET_bitNewKey & grbit) dbgcat(s_awc, L"NewKey"); if (JET_bitStrLimit & grbit) dbgcat(s_awc, L"StrLimit"); if (JET_bitSubStrLimit & grbit) dbgcat(s_awc, L"SubStrLimit"); if (JET_bitNormalizedKey & grbit) dbgcat(s_awc, L"NormalizedKey"); if (JET_bitKeyDataZeroLength & grbit) dbgcat(s_awc, L"KeyDataZeroLength"); wcscat(s_awc, L"}"); CSASSERT(wcslen(s_awc) < ARRAYSIZE(s_awc)); return(s_awc); } JET_ERR JET_API _dbgJetInit( JET_INSTANCE *pinstance) { JET_ERR jerr; jerr = JetInit(pinstance); DBGJET((DBG_SS_CERTJETI, "JetInit() --> %d\n", jerr)); return(jerr); } JET_ERR JET_API _dbgJetTerm( JET_INSTANCE instance) { JET_ERR jerr; jerr = JetTerm(instance); DBGJET((DBG_SS_CERTJETI, "JetTerm() --> %d\n", jerr)); return(jerr); } JET_ERR JET_API _dbgJetTerm2( JET_INSTANCE instance, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetTerm2(instance, grbit); DBGJET((DBG_SS_CERTJETI, "JetTerm2() --> %d\n", jerr)); return(jerr); } JET_ERR JET_API _dbgJetBackup( const char *szBackupPath, JET_GRBIT grbit, JET_PFNSTATUS pfnStatus) { JET_ERR jerr; jerr = JetBackup(szBackupPath, grbit, pfnStatus); DBGJET(( DBG_SS_CERTJETI, "JetBackup(%hs, %x, %x) --> %d\n", szBackupPath, grbit, pfnStatus, jerr)); return(jerr); } JET_ERR JET_API _dbgJetRestore( const char *sz, JET_PFNSTATUS pfn) { JET_ERR jerr; jerr = JetRestore(sz, pfn); DBGJET((DBG_SS_CERTJETI, "JetRestore(%hs, %x) --> %d\n", sz, pfn, jerr)); return(jerr); } JET_ERR JET_API _dbgJetRestore2( const char *sz, const char *szDest, JET_PFNSTATUS pfn) { JET_ERR jerr; jerr = JetRestore2(sz, szDest, pfn); DBGJET((DBG_SS_CERTJETI, "JetRestore2(%hs, %hs, %x) --> %d\n", sz, szDest, pfn, jerr)); return(jerr); } JET_ERR JET_API _dbgJetSetSystemParameter( JET_INSTANCE *pinstance, JET_SESID sesid, unsigned long paramid, unsigned long lParam, const char *sz) { JET_ERR jerr; char szlong[32]; char const *sz2; sz2 = sz; if (NULL == sz2) { sprintf(szlong, "0x%x", lParam); sz2 = szlong; } jerr = JetSetSystemParameter(pinstance, sesid, paramid, lParam, sz); DBGJET((DBG_SS_CERTJETI, "JetSetSystemParameter(%x, %hs) --> %d\n", paramid, sz2, jerr)); return(jerr); } JET_ERR JET_API _dbgJetBeginSession( JET_INSTANCE instance, JET_SESID *psesid, const char *szUserName, const char *szPassword) { JET_ERR jerr; jerr = JetBeginSession(instance, psesid, szUserName, szPassword); DBGJET((DBG_SS_CERTJETI, "JetBeginSession() --> %d\n", jerr)); return(jerr); } JET_ERR JET_API _dbgJetEndSession( JET_SESID sesid, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetEndSession(sesid, grbit); DBGJET((DBG_SS_CERTJETI, "JetEndSession() --> %d\n", jerr)); return(jerr); } JET_ERR JET_API _dbgJetCreateDatabase( JET_SESID sesid, const char *szFilename, const char *szConnect, JET_DBID *pdbid, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetCreateDatabase(sesid, szFilename, szConnect, pdbid, grbit); DBGJET((DBG_SS_CERTJETI, "JetCreateDatabase() --> %d\n", jerr)); return(jerr); } JET_ERR JET_API _dbgJetCreateTable( JET_SESID sesid, JET_DBID dbid, const char *szTableName, unsigned long lPages, unsigned long lDensity, JET_TABLEID *ptableid) { JET_ERR jerr; jerr = JetCreateTable( sesid, dbid, szTableName, lPages, lDensity, ptableid); DBGJET((DBG_SS_CERTJETI, "JetCreateTable(%hs):%x --> %d\n", szTableName, TableIndex(*ptableid), jerr)); return(jerr); } JET_ERR JET_API _dbgJetGetColumnInfo( JET_SESID sesid, JET_DBID dbid, const char *szTableName, const char *szColumnName, void *pvResult, unsigned long cbMax, unsigned long InfoLevel) { JET_ERR jerr; jerr = JetGetColumnInfo( sesid, dbid, szTableName, szColumnName, pvResult, cbMax, InfoLevel); DBGJET((DBG_SS_CERTJETI, "JetGetColumnInfo(%hs, %hs, %x) --> %d\n", szTableName, szColumnName, InfoLevel, jerr)); return(jerr); } JET_ERR JET_API _dbgJetConvertDDL( JET_SESID sesid, JET_DBID ifmp, JET_OPDDLCONV convtyp, void *pvData, unsigned long cbData) { JET_ERR jerr; jerr = JetConvertDDL(sesid, ifmp, convtyp, pvData, cbData); if (opDDLConvIncreaseMaxColumnSize == convtyp) { JET_DDLMAXCOLUMNSIZE *pjdmcs = (JET_DDLMAXCOLUMNSIZE *) pvData; DBGJET((DBG_SS_CERTJETI, "JetConvertDDL(%hs, %hs, %x) --> %d\n", pjdmcs->szTable, pjdmcs->szColumn, pjdmcs->cbMax, jerr)); } else { DBGJET((DBG_SS_CERTJETI, "JetConvertDDL(%x, %p, %x) --> %d\n", convtyp, pvData, cbData, jerr)); } return(jerr); } JET_ERR JET_API _dbgJetAddColumn( JET_SESID sesid, JET_TABLEID tableid, const char *szColumn, const JET_COLUMNDEF *pcolumndef, const void *pvDefault, unsigned long cbDefault, JET_COLUMNID *pcolumnid) { JET_ERR jerr; jerr = JetAddColumn( sesid, tableid, szColumn, pcolumndef, pvDefault, cbDefault, pcolumnid); DBGJET((DBG_SS_CERTJETI, "JetAddColumn(%x, %hs):%x --> %d\n", TableIndex(tableid), szColumn, *pcolumnid, jerr)); return(jerr); } JET_ERR JET_API _dbgJetDeleteColumn( JET_SESID sesid, JET_TABLEID tableid, const char *szColumnName) { JET_ERR jerr; jerr = JetDeleteColumn(sesid, tableid, szColumnName); DBGJET((DBG_SS_CERTJETI, "JetDeleteColumn(%x, %hs) --> %d\n", TableIndex(tableid), szColumnName, jerr)); return(jerr); } JET_ERR JET_API _dbgJetCreateIndex( JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName, JET_GRBIT grbit, const char *szKey, unsigned long cbKey, unsigned long lDensity) { JET_ERR jerr; jerr = JetCreateIndex( sesid, tableid, szIndexName, grbit, szKey, cbKey, lDensity); DBGJET((DBG_SS_CERTJETI, "JetCreateIndex(%x, %hs, %x) --> %d\n", TableIndex(tableid), szIndexName, grbit, jerr)); return(jerr); } JET_ERR JET_API _dbgJetDeleteIndex( JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName) { JET_ERR jerr; jerr = JetDeleteIndex(sesid, tableid, szIndexName); DBGJET((DBG_SS_CERTJETI, "JetDeleteIndex(%x, %hs) --> %d\n", TableIndex(tableid), szIndexName, jerr)); return(jerr); } JET_ERR JET_API _dbgJetBeginTransaction( JET_SESID sesid) { JET_ERR jerr; jerr = JetBeginTransaction(sesid); DBGJET((DBG_SS_CERTJETI, "JetBeginTransaction() --> %d\n", jerr)); return(jerr); } JET_ERR JET_API _dbgJetCommitTransaction( JET_SESID sesid, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetCommitTransaction(sesid, grbit); DBGJET((DBG_SS_CERTJETI, "JetCommitTransaction(%x) --> %d\n", grbit, jerr)); return(jerr); } JET_ERR JET_API _dbgJetRollback( JET_SESID sesid, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetRollback(sesid, grbit); DBGJET((DBG_SS_CERTJETI, "JetRollback(%x) --> %d\n", grbit, jerr)); return(jerr); } JET_ERR JET_API _dbgJetOpenDatabase( JET_SESID sesid, const char *szFilename, const char *szConnect, JET_DBID *pdbid, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetOpenDatabase(sesid, szFilename, szConnect, pdbid, grbit); DBGJET(( DBG_SS_CERTJETI, "JetOpenDatabase(%hs, %ws):%x --> %d\n", szFilename, wszOpenDatabase(grbit), *pdbid, jerr)); return(jerr); } JET_ERR JET_API _dbgJetAttachDatabase( JET_SESID sesid, const char *szFilename, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetAttachDatabase(sesid, szFilename, grbit); DBGJET(( DBG_SS_CERTJETI, "JetAttachDatabase(%hs, %ws) --> %d\n", szFilename, wszAttachDatabase(grbit), jerr)); return(jerr); } JET_ERR JET_API _dbgJetCloseDatabase( JET_SESID sesid, JET_DBID dbid, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetCloseDatabase(sesid, dbid, grbit); DBGJET((DBG_SS_CERTJETI, "JetCloseDatabase() --> %d\n", jerr)); return(jerr); } JET_ERR JET_API _dbgJetOpenTable( JET_SESID sesid, JET_DBID dbid, const char *szTableName, const void *pvParameters, unsigned long cbParameters, JET_GRBIT grbit, JET_TABLEID *ptableid) { JET_ERR jerr; jerr = JetOpenTable( sesid, dbid, szTableName, pvParameters, cbParameters, grbit, ptableid); DBGJET((DBG_SS_CERTJETI, "JetOpenTable(%hs):%x --> %d\n", szTableName, TableIndex(*ptableid), jerr)); return(jerr); } JET_ERR JET_API _dbgJetCloseTable( JET_SESID sesid, JET_TABLEID tableid) { JET_ERR jerr; jerr = JetCloseTable(sesid, tableid); DBGJET((DBG_SS_CERTJETI, "JetCloseTable(%x) --> %d\n", TableIndex(tableid), jerr)); return(jerr); } JET_ERR JET_API _dbgJetUpdate( JET_SESID sesid, JET_TABLEID tableid, void *pvBookmark, unsigned long cbBookmark, unsigned long *pcbActual) { JET_ERR jerr; jerr = JetUpdate(sesid, tableid, pvBookmark, cbBookmark, pcbActual); DBGJET((DBG_SS_CERTJETI, "JetUpdate(%x) --> %d\n", TableIndex(tableid), jerr)); return(jerr); } JET_ERR JET_API _dbgJetDelete( JET_SESID sesid, JET_TABLEID tableid) { JET_ERR jerr; jerr = JetDelete(sesid, tableid); DBGJET((DBG_SS_CERTJETI, "JetDelete(%x) --> %d\n", TableIndex(tableid), jerr)); return(jerr); } JET_ERR JET_API _dbgJetRetrieveColumn( JET_SESID sesid, JET_TABLEID tableid, JET_COLUMNID columnid, void *pvData, unsigned long cbData, unsigned long *pcbActual, JET_GRBIT grbit, JET_RETINFO *pretinfo) { JET_ERR jerr; jerr = JetRetrieveColumn( sesid, tableid, columnid, pvData, cbData, pcbActual, grbit, pretinfo); DBGJET(( DBG_SS_CERTJETI, "JetRetrieveColumn(%x, %x, %x) cb:%x->%x--> %d\n", TableIndex(tableid), columnid, grbit, cbData, *pcbActual, jerr)); if (NULL != pvData) { DBGJETDUMPHEX(jerr, 0, (BYTE const *) pvData, min(cbData, *pcbActual)); } return(jerr); } JET_ERR JET_API _dbgJetSetColumn( JET_SESID sesid, JET_TABLEID tableid, JET_COLUMNID columnid, const void *pvData, unsigned long cbData, JET_GRBIT grbit, JET_SETINFO *psetinfo) { JET_ERR jerr; jerr = JetSetColumn( sesid, tableid, columnid, pvData, cbData, grbit, psetinfo); DBGJET(( DBG_SS_CERTJETI, "JetSetColumn(%x, %x, %x) cb:%x --> %d\n", TableIndex(tableid), columnid, grbit, cbData, jerr)); DBGJETDUMPHEX(jerr, 0, (BYTE const *) pvData, cbData); return(jerr); } JET_ERR JET_API _dbgJetPrepareUpdate( JET_SESID sesid, JET_TABLEID tableid, unsigned long prep) { JET_ERR jerr; jerr = JetPrepareUpdate(sesid, tableid, prep); DBGJET((DBG_SS_CERTJETI, "JetPrepareUpdate(%x, %x) --> %d\n", TableIndex(tableid), prep, jerr)); return(jerr); } JET_ERR JET_API _dbgJetSetCurrentIndex2( JET_SESID sesid, JET_TABLEID tableid, const char *szIndexName, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetSetCurrentIndex2(sesid, tableid, szIndexName, grbit); DBGJET((DBG_SS_CERTJETI, "JetSetCurrentIndex2(%x) --> %d\n", TableIndex(tableid), jerr)); return(jerr); } JET_ERR JET_API _dbgJetMove( JET_SESID sesid, JET_TABLEID tableid, long cRow, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetMove(sesid, tableid, cRow, grbit); DBGJET(( DBG_SS_CERTJETI, "JetMove(%x, %ws, %ws) --> %d\n", TableIndex(tableid), wszMovecrow(cRow), wszMovegrbit(grbit), jerr)); return(jerr); } JET_ERR JET_API _dbgJetMakeKey( JET_SESID sesid, JET_TABLEID tableid, const void *pvData, unsigned long cbData, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetMakeKey(sesid, tableid, pvData, cbData, grbit); DBGJET(( DBG_SS_CERTJETI, "JetMakeKey(%x, %ws) --> %d\n", TableIndex(tableid), wszMakeKeygrbit(grbit), jerr)); DBGJETDUMPHEX(jerr, 0, (BYTE const *) pvData, cbData); return(jerr); } JET_ERR JET_API _dbgJetSeek( JET_SESID sesid, JET_TABLEID tableid, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetSeek(sesid, tableid, grbit); DBGJET(( DBG_SS_CERTJETI, "JetSeek(%x, %ws) --> %d\n", TableIndex(tableid), wszSeekgrbit(grbit), jerr)); return(jerr); } JET_ERR JET_API _dbgJetBeginExternalBackup( JET_GRBIT grbit) { JET_ERR jerr; jerr = JetBeginExternalBackup(grbit); DBGJET((DBG_SS_CERTJETI, "JetBeginExternalBackup(%x) --> %d\n", grbit, jerr)); return(jerr); } JET_ERR JET_API _dbgJetGetAttachInfo( void *pv, unsigned long cbMax, unsigned long *pcbActual) { JET_ERR jerr; jerr = JetGetAttachInfo(pv, cbMax, pcbActual); DBGJET(( DBG_SS_CERTJETI, "JetGetAttachInfo(%x, %x, -> %x) --> %d\n", pv, cbMax, *pcbActual, jerr)); if (NULL != pv) { DBGJETDUMPHEX(jerr, 0, (BYTE const *) pv, min(cbMax, *pcbActual)); } return(jerr); } JET_ERR JET_API _dbgJetOpenFile( const char *szFileName, JET_HANDLE *phfFile, unsigned long *pulFileSizeLow, unsigned long *pulFileSizeHigh) { JET_ERR jerr; jerr = JetOpenFile(szFileName, phfFile, pulFileSizeLow, pulFileSizeHigh); DBGJET(( DBG_SS_CERTJETI, "JetOpenFile(%hs, -> %x, %x, %x) --> %d\n", szFileName, *phfFile, *pulFileSizeLow, *pulFileSizeHigh, jerr)); return(jerr); } JET_ERR JET_API _dbgJetReadFile( JET_HANDLE hfFile, void *pv, unsigned long cb, unsigned long *pcb) { JET_ERR jerr; jerr = JetReadFile(hfFile, pv, cb, pcb); DBGJET(( DBG_SS_CERTJETI, "JetReadFile(%x, %x, %x, -> %x) --> %d\n", hfFile, pv, cb, *pcb, jerr)); return(jerr); } #if 0 JET_ERR JET_API _dbgJetAsyncReadFile( JET_HANDLE hfFile, void* pv, unsigned long cb, JET_OLP *pjolp) { JET_ERR jerr; jerr = JetAsyncReadFile(hfFile, pv, cb, pjolp); DBGJET(( DBG_SS_CERTJETI, "JetAsyncReadFile(%x, %x, %x, %x) --> %d\n", hfFile, pv, cb, pjolp, jerr)); return(jerr); } JET_ERR JET_API _dbgJetCheckAsyncReadFile( void *pv, int cb, unsigned long pgnoFirst) { JET_ERR jerr; jerr = JetCheckAsyncReadFile(pv, cb, pgnoFirst); DBGJET(( DBG_SS_CERTJETI, "JetCheckAsyncReadFile(%x, %x, %x) --> %d\n", pv, cb, pgnoFirst, jerr)); return(jerr); } #endif JET_ERR JET_API _dbgJetCloseFile( JET_HANDLE hfFile) { JET_ERR jerr; jerr = JetCloseFile(hfFile); DBGJET((DBG_SS_CERTJETI, "JetCloseFile(%x) --> %d\n", hfFile, jerr)); return(jerr); } JET_ERR JET_API _dbgJetGetLogInfo( void *pv, unsigned long cbMax, unsigned long *pcbActual) { JET_ERR jerr; jerr = JetGetLogInfo(pv, cbMax, pcbActual); DBGJET(( DBG_SS_CERTJETI, "JetGetLogInfo(%x, %x, %x, -> %x) --> %d\n", pv, cbMax, *pcbActual, jerr)); if (NULL != pv) { DBGJETDUMPHEX(jerr, 0, (BYTE const *) pv, min(cbMax, *pcbActual)); } return(jerr); } JET_ERR JET_API _dbgJetTruncateLog(void) { JET_ERR jerr; jerr = JetTruncateLog(); DBGJET((DBG_SS_CERTJETI, "JetTruncateLog() --> %d\n", jerr)); return(jerr); } JET_ERR JET_API _dbgJetEndExternalBackup(void) { JET_ERR jerr; jerr = JetEndExternalBackup(); DBGJET((DBG_SS_CERTJETI, "JetEndExternalBackup() --> %d\n", jerr)); return(jerr); } JET_ERR JET_API _dbgJetExternalRestore( char *szCheckpointFilePath, char *szLogPath, JET_RSTMAP *rgstmap, long crstfilemap, char *szBackupLogPath, long genLow, long genHigh, JET_PFNSTATUS pfn) { JET_ERR jerr; jerr = JetExternalRestore( szCheckpointFilePath, szLogPath, rgstmap, crstfilemap, szBackupLogPath, genLow, genHigh, pfn); DBGJET(( DBG_SS_CERTJETI, "JetExternalRestore(%hs, %hs, %x, %x, %hs, %x, %x, %x) --> %d\n", szCheckpointFilePath, szLogPath, rgstmap, crstfilemap, szBackupLogPath, genLow, genHigh, pfn, jerr)); return(jerr); } JET_ERR JET_API _dbgJetSetIndexRange( JET_SESID sesid, JET_TABLEID tableid, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetSetIndexRange(sesid, tableid, grbit); DBGJET(( DBG_SS_CERTJETI, "JetSetIndexRange(%x, %ws) --> %d\n", TableIndex(tableid), wszSetIndexRangegrbit(grbit), jerr)); return(jerr); } JET_ERR JET_API _dbgJetRetrieveKey( JET_SESID sesid, JET_TABLEID tableid, void *pvData, unsigned long cbData, unsigned long *pcbActual, JET_GRBIT grbit) { JET_ERR jerr; jerr = JetRetrieveKey(sesid, tableid, pvData, cbData, pcbActual, grbit); DBGJET(( DBG_SS_CERTJETI, "JetRetrieveKey(%x, %x, -> %x) --> %d\n", TableIndex(tableid), cbData, *pcbActual, jerr)); DBGJETDUMPHEX(jerr, 0, (BYTE const *) pvData, min(*pcbActual, cbData)); return(jerr); } #endif DBG