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.

1132 lines
23 KiB

  1. //+--------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1996 - 1999
  5. //
  6. // File: dbw.cpp
  7. //
  8. // Contents: Cert Server Database interface implementation
  9. //
  10. //---------------------------------------------------------------------------
  11. #include <pch.cpp>
  12. #pragma hdrstop
  13. #include "dbw.h"
  14. #if DBG
  15. BOOL g_fDebugJet = TRUE;
  16. #define DBGJET(args) if (g_fDebugJet) { DBGPRINT(args); }
  17. #define DBGJETDUMPHEX(jerr, flags, pb, cb) \
  18. if (JET_errSuccess == (jerr) && g_fDebugJet && NULL != (pb) && 0 != (cb)) \
  19. { \
  20. DBGDUMPHEX((DBG_SS_CERTJETI, (flags), (pb), (cb))); \
  21. }
  22. #define CTABLEMAX 40
  23. JET_TABLEID g_at[CTABLEMAX];
  24. DWORD g_ct = 0;
  25. DWORD
  26. TableIndex(
  27. JET_TABLEID tableid)
  28. {
  29. DWORD i;
  30. for (i = 0; i < g_ct; i++)
  31. {
  32. if (g_at[i] == tableid)
  33. {
  34. return(i);
  35. }
  36. }
  37. if (g_ct < CTABLEMAX)
  38. {
  39. g_at[g_ct++] = tableid;
  40. DBGJET((DBG_SS_CERTJETI, "TableIndex(%x) --> %x\n", tableid, i));
  41. return(i);
  42. }
  43. return((DWORD) -1);
  44. }
  45. VOID
  46. dbgcat(
  47. IN OUT WCHAR *pwszBuf,
  48. IN WCHAR const *pwszAdd)
  49. {
  50. wcscat(pwszBuf, NULL == wcschr(pwszBuf, L':')? L": " : L", ");
  51. wcscat(pwszBuf, pwszAdd);
  52. }
  53. WCHAR const *
  54. wszOpenDatabase(
  55. JET_GRBIT grbit)
  56. {
  57. static WCHAR s_awc[12];
  58. wsprintf(s_awc, L"{%x}", grbit);
  59. return(s_awc);
  60. }
  61. WCHAR const *
  62. wszAttachDatabase(
  63. JET_GRBIT grbit)
  64. {
  65. static WCHAR s_awc[12];
  66. wsprintf(s_awc, L"{%x}", grbit);
  67. return(s_awc);
  68. }
  69. WCHAR const *
  70. wszSeekgrbit(
  71. JET_GRBIT grbit)
  72. {
  73. static WCHAR s_awc[64]; // 1 + 2 + 6 * 2 + 5 * 2 + 13
  74. wsprintf(s_awc, L"{%x", grbit);
  75. if (JET_bitSeekEQ & grbit) dbgcat(s_awc, L"EQ");
  76. if (JET_bitSeekLT & grbit) dbgcat(s_awc, L"LT");
  77. if (JET_bitSeekLE & grbit) dbgcat(s_awc, L"LE");
  78. if (JET_bitSeekGE & grbit) dbgcat(s_awc, L"GE");
  79. if (JET_bitSeekGT & grbit) dbgcat(s_awc, L"GT");
  80. if (JET_bitSetIndexRange & grbit) dbgcat(s_awc, L"SetIndexRange");
  81. wcscat(s_awc, L"}");
  82. CSASSERT(wcslen(s_awc) < ARRAYSIZE(s_awc));
  83. return(s_awc);
  84. }
  85. WCHAR const *
  86. wszMovecrow(
  87. IN LONG cRow)
  88. {
  89. static WCHAR s_awc[16];
  90. switch (cRow)
  91. {
  92. case JET_MoveFirst: wcscpy(s_awc, L"First"); break;
  93. case JET_MovePrevious: wcscpy(s_awc, L"Previous"); break;
  94. case JET_MoveNext: wcscpy(s_awc, L"Next"); break;
  95. case JET_MoveLast: wcscpy(s_awc, L"Last"); break;
  96. default:
  97. wsprintf(s_awc, L"%d", cRow);
  98. break;
  99. }
  100. CSASSERT(wcslen(s_awc) < ARRAYSIZE(s_awc));
  101. return(s_awc);
  102. }
  103. WCHAR const *
  104. wszMovegrbit(
  105. JET_GRBIT grbit)
  106. {
  107. static WCHAR s_awc[16];
  108. if (JET_bitMoveKeyNE & grbit) wcscpy(s_awc, L"MoveKeyNE");
  109. if (0 == grbit) wcscpy(s_awc, L"0");
  110. CSASSERT(wcslen(s_awc) < ARRAYSIZE(s_awc));
  111. return(s_awc);
  112. }
  113. WCHAR const *
  114. wszSetIndexRangegrbit(
  115. JET_GRBIT grbit)
  116. {
  117. static WCHAR s_awc[64]; // 1 + 2 + 6 * 2 + 5 * 2 + 13
  118. wsprintf(s_awc, L"{%x", grbit);
  119. if (JET_bitRangeInclusive & grbit) dbgcat(s_awc, L"Inclusive");
  120. if (0 == ((JET_bitRangeInclusive | JET_bitRangeRemove) & grbit))
  121. dbgcat(s_awc, L"Exclusive");
  122. if (JET_bitRangeUpperLimit & grbit) dbgcat(s_awc, L"UpperLimit");
  123. if (0 == ((JET_bitRangeUpperLimit | JET_bitRangeRemove) & grbit))
  124. dbgcat(s_awc, L"LowerLimit");
  125. if (JET_bitRangeInstantDuration & grbit) dbgcat(s_awc, L"InstantDuration");
  126. if (JET_bitRangeRemove & grbit) dbgcat(s_awc, L"Remove");
  127. wcscat(s_awc, L"}");
  128. CSASSERT(wcslen(s_awc) < ARRAYSIZE(s_awc));
  129. return(s_awc);
  130. }
  131. WCHAR const *
  132. wszMakeKeygrbit(
  133. JET_GRBIT grbit)
  134. {
  135. static WCHAR s_awc[128];
  136. wsprintf(s_awc, L"{%x", grbit);
  137. if (JET_bitNewKey & grbit) dbgcat(s_awc, L"NewKey");
  138. if (JET_bitStrLimit & grbit) dbgcat(s_awc, L"StrLimit");
  139. if (JET_bitSubStrLimit & grbit) dbgcat(s_awc, L"SubStrLimit");
  140. if (JET_bitNormalizedKey & grbit) dbgcat(s_awc, L"NormalizedKey");
  141. if (JET_bitKeyDataZeroLength & grbit) dbgcat(s_awc, L"KeyDataZeroLength");
  142. wcscat(s_awc, L"}");
  143. CSASSERT(wcslen(s_awc) < ARRAYSIZE(s_awc));
  144. return(s_awc);
  145. }
  146. JET_ERR JET_API
  147. _dbgJetInit(
  148. JET_INSTANCE *pinstance)
  149. {
  150. JET_ERR jerr;
  151. jerr = JetInit(pinstance);
  152. DBGJET((DBG_SS_CERTJETI, "JetInit() --> %d\n", jerr));
  153. return(jerr);
  154. }
  155. JET_ERR JET_API
  156. _dbgJetTerm(
  157. JET_INSTANCE instance)
  158. {
  159. JET_ERR jerr;
  160. jerr = JetTerm(instance);
  161. DBGJET((DBG_SS_CERTJETI, "JetTerm() --> %d\n", jerr));
  162. return(jerr);
  163. }
  164. JET_ERR JET_API
  165. _dbgJetTerm2(
  166. JET_INSTANCE instance,
  167. JET_GRBIT grbit)
  168. {
  169. JET_ERR jerr;
  170. jerr = JetTerm2(instance, grbit);
  171. DBGJET((DBG_SS_CERTJETI, "JetTerm2() --> %d\n", jerr));
  172. return(jerr);
  173. }
  174. JET_ERR JET_API
  175. _dbgJetStopService()
  176. {
  177. JET_ERR jerr;
  178. jerr = JetStopService();
  179. DBGJET((DBG_SS_CERTJETI, "JetStopService() --> %d\n", jerr));
  180. return(jerr);
  181. }
  182. JET_ERR JET_API
  183. _dbgJetBackup(
  184. const char *szBackupPath,
  185. JET_GRBIT grbit,
  186. JET_PFNSTATUS pfnStatus)
  187. {
  188. JET_ERR jerr;
  189. jerr = JetBackup(szBackupPath, grbit, pfnStatus);
  190. DBGJET((
  191. DBG_SS_CERTJETI,
  192. "JetBackup(%hs, %x, %x) --> %d\n",
  193. szBackupPath,
  194. grbit,
  195. pfnStatus,
  196. jerr));
  197. return(jerr);
  198. }
  199. JET_ERR JET_API
  200. _dbgJetRestore(
  201. const char *sz,
  202. JET_PFNSTATUS pfn)
  203. {
  204. JET_ERR jerr;
  205. jerr = JetRestore(sz, pfn);
  206. DBGJET((DBG_SS_CERTJETI, "JetRestore(%hs, %x) --> %d\n", sz, pfn, jerr));
  207. return(jerr);
  208. }
  209. JET_ERR JET_API
  210. _dbgJetRestore2(
  211. const char *sz,
  212. const char *szDest,
  213. JET_PFNSTATUS pfn)
  214. {
  215. JET_ERR jerr;
  216. jerr = JetRestore2(sz, szDest, pfn);
  217. DBGJET((DBG_SS_CERTJETI, "JetRestore2(%hs, %hs, %x) --> %d\n", sz, szDest, pfn, jerr));
  218. return(jerr);
  219. }
  220. JET_ERR JET_API
  221. _dbgJetSetSystemParameter(
  222. JET_INSTANCE *pinstance,
  223. JET_SESID sesid,
  224. unsigned long paramid,
  225. unsigned long lParam,
  226. const char *sz)
  227. {
  228. JET_ERR jerr;
  229. char szlong[32];
  230. char const *sz2;
  231. sz2 = sz;
  232. if (NULL == sz2)
  233. {
  234. sprintf(szlong, "0x%x", lParam);
  235. sz2 = szlong;
  236. }
  237. jerr = JetSetSystemParameter(pinstance, sesid, paramid, lParam, sz);
  238. DBGJET((DBG_SS_CERTJETI, "JetSetSystemParameter(%x, %hs) --> %d\n", paramid, sz2, jerr));
  239. return(jerr);
  240. }
  241. JET_ERR JET_API
  242. _dbgJetBeginSession(
  243. JET_INSTANCE instance,
  244. JET_SESID *psesid,
  245. const char *szUserName,
  246. const char *szPassword)
  247. {
  248. JET_ERR jerr;
  249. jerr = JetBeginSession(instance, psesid, szUserName, szPassword);
  250. DBGJET((DBG_SS_CERTJETI, "JetBeginSession() --> %d\n", jerr));
  251. return(jerr);
  252. }
  253. JET_ERR JET_API
  254. _dbgJetEndSession(
  255. JET_SESID sesid,
  256. JET_GRBIT grbit)
  257. {
  258. JET_ERR jerr;
  259. jerr = JetEndSession(sesid, grbit);
  260. DBGJET((DBG_SS_CERTJETI, "JetEndSession() --> %d\n", jerr));
  261. return(jerr);
  262. }
  263. JET_ERR JET_API
  264. _dbgJetCreateDatabase(
  265. JET_SESID sesid,
  266. const char *szFilename,
  267. const char *szConnect,
  268. JET_DBID *pdbid,
  269. JET_GRBIT grbit)
  270. {
  271. JET_ERR jerr;
  272. jerr = JetCreateDatabase(sesid, szFilename, szConnect, pdbid, grbit);
  273. DBGJET((DBG_SS_CERTJETI, "JetCreateDatabase() --> %d\n", jerr));
  274. return(jerr);
  275. }
  276. JET_ERR JET_API
  277. _dbgJetCreateTable(
  278. JET_SESID sesid,
  279. JET_DBID dbid,
  280. const char *szTableName,
  281. unsigned long lPages,
  282. unsigned long lDensity,
  283. JET_TABLEID *ptableid)
  284. {
  285. JET_ERR jerr;
  286. jerr = JetCreateTable(
  287. sesid,
  288. dbid,
  289. szTableName,
  290. lPages,
  291. lDensity,
  292. ptableid);
  293. DBGJET((DBG_SS_CERTJETI, "JetCreateTable(%hs):%x --> %d\n", szTableName, TableIndex(*ptableid), jerr));
  294. return(jerr);
  295. }
  296. JET_ERR JET_API
  297. _dbgJetGetTableInfo(
  298. JET_SESID sesid,
  299. JET_TABLEID tableid,
  300. void *pvResult,
  301. unsigned long cbMax,
  302. unsigned long InfoLevel)
  303. {
  304. JET_ERR jerr;
  305. jerr = JetGetTableInfo(sesid, tableid, pvResult, cbMax, InfoLevel);
  306. DBGJET((DBG_SS_CERTJETI, "JetGetTableInfo(%x, %p, %x, %x) --> %d\n", TableIndex(tableid), pvResult, cbMax, InfoLevel, jerr));
  307. return(jerr);
  308. }
  309. JET_ERR JET_API
  310. _dbgJetGetColumnInfo(
  311. JET_SESID sesid,
  312. JET_DBID dbid,
  313. const char *szTableName,
  314. const char *szColumnName,
  315. void *pvResult,
  316. unsigned long cbMax,
  317. unsigned long InfoLevel)
  318. {
  319. JET_ERR jerr;
  320. jerr = JetGetColumnInfo(
  321. sesid,
  322. dbid,
  323. szTableName,
  324. szColumnName,
  325. pvResult,
  326. cbMax,
  327. InfoLevel);
  328. DBGJET((DBG_SS_CERTJETI, "JetGetColumnInfo(%hs, %hs, %x) --> %d\n", szTableName, szColumnName, InfoLevel, jerr));
  329. return(jerr);
  330. }
  331. JET_ERR JET_API
  332. _dbgJetConvertDDL(
  333. JET_SESID sesid,
  334. JET_DBID ifmp,
  335. JET_OPDDLCONV convtyp,
  336. void *pvData,
  337. unsigned long cbData)
  338. {
  339. JET_ERR jerr;
  340. jerr = JetConvertDDL(sesid, ifmp, convtyp, pvData, cbData);
  341. if (opDDLConvIncreaseMaxColumnSize == convtyp)
  342. {
  343. JET_DDLMAXCOLUMNSIZE *pjdmcs = (JET_DDLMAXCOLUMNSIZE *) pvData;
  344. DBGJET((DBG_SS_CERTJETI, "JetConvertDDL(%hs, %hs, %x) --> %d\n", pjdmcs->szTable, pjdmcs->szColumn, pjdmcs->cbMax, jerr));
  345. }
  346. else
  347. if (opDDLConvChangeIndexDensity == convtyp)
  348. {
  349. JET_DDLINDEXDENSITY *pjdid = (JET_DDLINDEXDENSITY *) pvData;
  350. DBGJET((DBG_SS_CERTJETI, "JetConvertDDL(%hs, %hs, %x) --> %d\n", pjdid->szTable, pjdid->szIndex, pjdid->ulDensity, jerr));
  351. }
  352. else
  353. {
  354. DBGJET((DBG_SS_CERTJETI, "JetConvertDDL(%x, %p, %x) --> %d\n", convtyp, pvData, cbData, jerr));
  355. }
  356. return(jerr);
  357. }
  358. JET_ERR JET_API
  359. _dbgJetAddColumn(
  360. JET_SESID sesid,
  361. JET_TABLEID tableid,
  362. const char *szColumn,
  363. const JET_COLUMNDEF *pcolumndef,
  364. const void *pvDefault,
  365. unsigned long cbDefault,
  366. JET_COLUMNID *pcolumnid)
  367. {
  368. JET_ERR jerr;
  369. jerr = JetAddColumn(
  370. sesid,
  371. tableid,
  372. szColumn,
  373. pcolumndef,
  374. pvDefault,
  375. cbDefault,
  376. pcolumnid);
  377. DBGJET((DBG_SS_CERTJETI, "JetAddColumn(%x, %hs):%x --> %d\n", TableIndex(tableid), szColumn, *pcolumnid, jerr));
  378. return(jerr);
  379. }
  380. JET_ERR JET_API
  381. _dbgJetDeleteColumn(
  382. JET_SESID sesid,
  383. JET_TABLEID tableid,
  384. const char *szColumnName)
  385. {
  386. JET_ERR jerr;
  387. jerr = JetDeleteColumn(sesid, tableid, szColumnName);
  388. DBGJET((DBG_SS_CERTJETI, "JetDeleteColumn(%x, %hs) --> %d\n", TableIndex(tableid), szColumnName, jerr));
  389. return(jerr);
  390. }
  391. JET_ERR JET_API
  392. _dbgJetCreateIndex(
  393. JET_SESID sesid,
  394. JET_TABLEID tableid,
  395. const char *szIndexName,
  396. JET_GRBIT grbit,
  397. const char *szKey,
  398. unsigned long cbKey,
  399. unsigned long lDensity)
  400. {
  401. JET_ERR jerr;
  402. jerr = JetCreateIndex(
  403. sesid,
  404. tableid,
  405. szIndexName,
  406. grbit,
  407. szKey,
  408. cbKey,
  409. lDensity);
  410. DBGJET((DBG_SS_CERTJETI, "JetCreateIndex(%x, %hs, %x) --> %d\n", TableIndex(tableid), szIndexName, grbit, jerr));
  411. return(jerr);
  412. }
  413. JET_ERR JET_API
  414. _dbgJetDeleteIndex(
  415. JET_SESID sesid,
  416. JET_TABLEID tableid,
  417. const char *szIndexName)
  418. {
  419. JET_ERR jerr;
  420. jerr = JetDeleteIndex(sesid, tableid, szIndexName);
  421. DBGJET((DBG_SS_CERTJETI, "JetDeleteIndex(%x, %hs) --> %d\n", TableIndex(tableid), szIndexName, jerr));
  422. return(jerr);
  423. }
  424. JET_ERR JET_API
  425. _dbgJetGetIndexInfo(
  426. JET_SESID sesid,
  427. JET_DBID dbid,
  428. const char *szTableName,
  429. const char *szIndexName,
  430. void *pvResult,
  431. unsigned long cbResult,
  432. unsigned long InfoLevel)
  433. {
  434. JET_ERR jerr;
  435. jerr = JetGetIndexInfo(
  436. sesid,
  437. dbid,
  438. szTableName,
  439. szIndexName,
  440. pvResult,
  441. cbResult,
  442. InfoLevel);
  443. DBGJET((DBG_SS_CERTJETI, "JetGetIndexInfo(%hs, %hs, %p, %x, %x) --> %d\n", szTableName, szIndexName, pvResult, cbResult, InfoLevel, jerr));
  444. return(jerr);
  445. }
  446. JET_ERR JET_API
  447. _dbgJetBeginTransaction(
  448. JET_SESID sesid)
  449. {
  450. JET_ERR jerr;
  451. jerr = JetBeginTransaction(sesid);
  452. DBGJET((DBG_SS_CERTJETI, "JetBeginTransaction() --> %d\n", jerr));
  453. return(jerr);
  454. }
  455. JET_ERR JET_API
  456. _dbgJetCommitTransaction(
  457. JET_SESID sesid,
  458. JET_GRBIT grbit)
  459. {
  460. JET_ERR jerr;
  461. jerr = JetCommitTransaction(sesid, grbit);
  462. DBGJET((DBG_SS_CERTJETI, "JetCommitTransaction(%x) --> %d\n", grbit, jerr));
  463. return(jerr);
  464. }
  465. JET_ERR JET_API
  466. _dbgJetRollback(
  467. JET_SESID sesid,
  468. JET_GRBIT grbit)
  469. {
  470. JET_ERR jerr;
  471. jerr = JetRollback(sesid, grbit);
  472. DBGJET((DBG_SS_CERTJETI, "JetRollback(%x) --> %d\n", grbit, jerr));
  473. return(jerr);
  474. }
  475. JET_ERR JET_API
  476. _dbgJetOpenDatabase(
  477. JET_SESID sesid,
  478. const char *szFilename,
  479. const char *szConnect,
  480. JET_DBID *pdbid,
  481. JET_GRBIT grbit)
  482. {
  483. JET_ERR jerr;
  484. jerr = JetOpenDatabase(sesid, szFilename, szConnect, pdbid, grbit);
  485. DBGJET((
  486. DBG_SS_CERTJETI,
  487. "JetOpenDatabase(%hs, %ws):%x --> %d\n",
  488. szFilename,
  489. wszOpenDatabase(grbit),
  490. *pdbid,
  491. jerr));
  492. return(jerr);
  493. }
  494. JET_ERR JET_API
  495. _dbgJetAttachDatabase(
  496. JET_SESID sesid,
  497. const char *szFilename,
  498. JET_GRBIT grbit)
  499. {
  500. JET_ERR jerr;
  501. jerr = JetAttachDatabase(sesid, szFilename, grbit);
  502. DBGJET((
  503. DBG_SS_CERTJETI,
  504. "JetAttachDatabase(%hs, %ws) --> %d\n",
  505. szFilename,
  506. wszAttachDatabase(grbit),
  507. jerr));
  508. return(jerr);
  509. }
  510. JET_ERR JET_API
  511. _dbgJetCloseDatabase(
  512. JET_SESID sesid,
  513. JET_DBID dbid,
  514. JET_GRBIT grbit)
  515. {
  516. JET_ERR jerr;
  517. jerr = JetCloseDatabase(sesid, dbid, grbit);
  518. DBGJET((DBG_SS_CERTJETI, "JetCloseDatabase() --> %d\n", jerr));
  519. return(jerr);
  520. }
  521. JET_ERR JET_API
  522. _dbgJetOpenTable(
  523. JET_SESID sesid,
  524. JET_DBID dbid,
  525. const char *szTableName,
  526. const void *pvParameters,
  527. unsigned long cbParameters,
  528. JET_GRBIT grbit,
  529. JET_TABLEID *ptableid)
  530. {
  531. JET_ERR jerr;
  532. jerr = JetOpenTable(
  533. sesid,
  534. dbid,
  535. szTableName,
  536. pvParameters,
  537. cbParameters,
  538. grbit,
  539. ptableid);
  540. DBGJET((DBG_SS_CERTJETI, "JetOpenTable(%hs):%x --> %d\n", szTableName, TableIndex(*ptableid), jerr));
  541. return(jerr);
  542. }
  543. JET_ERR JET_API
  544. _dbgJetCloseTable(
  545. JET_SESID sesid,
  546. JET_TABLEID tableid)
  547. {
  548. JET_ERR jerr;
  549. jerr = JetCloseTable(sesid, tableid);
  550. DBGJET((DBG_SS_CERTJETI, "JetCloseTable(%x) --> %d\n", TableIndex(tableid), jerr));
  551. return(jerr);
  552. }
  553. JET_ERR JET_API
  554. _dbgJetUpdate(
  555. JET_SESID sesid,
  556. JET_TABLEID tableid,
  557. void *pvBookmark,
  558. unsigned long cbBookmark,
  559. unsigned long *pcbActual)
  560. {
  561. JET_ERR jerr;
  562. jerr = JetUpdate(sesid, tableid, pvBookmark, cbBookmark, pcbActual);
  563. DBGJET((DBG_SS_CERTJETI, "JetUpdate(%x) --> %d\n", TableIndex(tableid), jerr));
  564. return(jerr);
  565. }
  566. JET_ERR JET_API
  567. _dbgJetDelete(
  568. JET_SESID sesid,
  569. JET_TABLEID tableid)
  570. {
  571. JET_ERR jerr;
  572. jerr = JetDelete(sesid, tableid);
  573. DBGJET((DBG_SS_CERTJETI, "JetDelete(%x) --> %d\n", TableIndex(tableid), jerr));
  574. return(jerr);
  575. }
  576. JET_ERR JET_API
  577. _dbgJetRetrieveColumn(
  578. JET_SESID sesid,
  579. JET_TABLEID tableid,
  580. JET_COLUMNID columnid,
  581. void *pvData,
  582. unsigned long cbData,
  583. unsigned long *pcbActual,
  584. JET_GRBIT grbit,
  585. JET_RETINFO *pretinfo)
  586. {
  587. JET_ERR jerr;
  588. jerr = JetRetrieveColumn(
  589. sesid,
  590. tableid,
  591. columnid,
  592. pvData,
  593. cbData,
  594. pcbActual,
  595. grbit,
  596. pretinfo);
  597. DBGJET((
  598. DBG_SS_CERTJETI,
  599. "JetRetrieveColumn(%x, %x, %x) cb:%x->%x--> %d\n",
  600. TableIndex(tableid),
  601. columnid,
  602. grbit,
  603. cbData,
  604. *pcbActual,
  605. jerr));
  606. if (NULL != pvData)
  607. {
  608. DBGJETDUMPHEX(jerr, 0, (BYTE const *) pvData, min(cbData, *pcbActual));
  609. }
  610. return(jerr);
  611. }
  612. JET_ERR JET_API
  613. _dbgJetSetColumn(
  614. JET_SESID sesid,
  615. JET_TABLEID tableid,
  616. JET_COLUMNID columnid,
  617. const void *pvData,
  618. unsigned long cbData,
  619. JET_GRBIT grbit,
  620. JET_SETINFO *psetinfo)
  621. {
  622. JET_ERR jerr;
  623. jerr = JetSetColumn(
  624. sesid,
  625. tableid,
  626. columnid,
  627. pvData,
  628. cbData,
  629. grbit,
  630. psetinfo);
  631. DBGJET((
  632. DBG_SS_CERTJETI,
  633. "JetSetColumn(%x, %x, %x) cb:%x --> %d\n",
  634. TableIndex(tableid),
  635. columnid,
  636. grbit,
  637. cbData,
  638. jerr));
  639. DBGJETDUMPHEX(jerr, 0, (BYTE const *) pvData, cbData);
  640. return(jerr);
  641. }
  642. JET_ERR JET_API
  643. _dbgJetPrepareUpdate(
  644. JET_SESID sesid,
  645. JET_TABLEID tableid,
  646. unsigned long prep)
  647. {
  648. JET_ERR jerr;
  649. jerr = JetPrepareUpdate(sesid, tableid, prep);
  650. DBGJET((DBG_SS_CERTJETI, "JetPrepareUpdate(%x, %x) --> %d\n", TableIndex(tableid), prep, jerr));
  651. return(jerr);
  652. }
  653. JET_ERR JET_API
  654. _dbgJetSetCurrentIndex2(
  655. JET_SESID sesid,
  656. JET_TABLEID tableid,
  657. const char *szIndexName,
  658. JET_GRBIT grbit)
  659. {
  660. JET_ERR jerr;
  661. jerr = JetSetCurrentIndex2(sesid, tableid, szIndexName, grbit);
  662. DBGJET((DBG_SS_CERTJETI, "JetSetCurrentIndex2(%x) --> %d\n", TableIndex(tableid), jerr));
  663. return(jerr);
  664. }
  665. JET_ERR JET_API
  666. _dbgJetMove(
  667. JET_SESID sesid,
  668. JET_TABLEID tableid,
  669. long cRow,
  670. JET_GRBIT grbit)
  671. {
  672. JET_ERR jerr;
  673. jerr = JetMove(sesid, tableid, cRow, grbit);
  674. DBGJET((
  675. DBG_SS_CERTJETI,
  676. "JetMove(%x, %ws, %ws) --> %d\n",
  677. TableIndex(tableid),
  678. wszMovecrow(cRow),
  679. wszMovegrbit(grbit),
  680. jerr));
  681. return(jerr);
  682. }
  683. JET_ERR JET_API
  684. _dbgJetMakeKey(
  685. JET_SESID sesid,
  686. JET_TABLEID tableid,
  687. const void *pvData,
  688. unsigned long cbData,
  689. JET_GRBIT grbit)
  690. {
  691. JET_ERR jerr;
  692. jerr = JetMakeKey(sesid, tableid, pvData, cbData, grbit);
  693. DBGJET((
  694. DBG_SS_CERTJETI,
  695. "JetMakeKey(%x, %ws) --> %d\n",
  696. TableIndex(tableid),
  697. wszMakeKeygrbit(grbit),
  698. jerr));
  699. DBGJETDUMPHEX(jerr, 0, (BYTE const *) pvData, cbData);
  700. return(jerr);
  701. }
  702. JET_ERR JET_API
  703. _dbgJetSeek(
  704. JET_SESID sesid,
  705. JET_TABLEID tableid,
  706. JET_GRBIT grbit)
  707. {
  708. JET_ERR jerr;
  709. jerr = JetSeek(sesid, tableid, grbit);
  710. DBGJET((
  711. DBG_SS_CERTJETI,
  712. "JetSeek(%x, %ws) --> %d\n",
  713. TableIndex(tableid),
  714. wszSeekgrbit(grbit),
  715. jerr));
  716. return(jerr);
  717. }
  718. JET_ERR JET_API
  719. _dbgJetBeginExternalBackup(
  720. JET_GRBIT grbit)
  721. {
  722. JET_ERR jerr;
  723. jerr = JetBeginExternalBackup(grbit);
  724. DBGJET((DBG_SS_CERTJETI, "JetBeginExternalBackup(%x) --> %d\n", grbit, jerr));
  725. return(jerr);
  726. }
  727. JET_ERR JET_API
  728. _dbgJetGetAttachInfo(
  729. void *pv,
  730. unsigned long cbMax,
  731. unsigned long *pcbActual)
  732. {
  733. JET_ERR jerr;
  734. jerr = JetGetAttachInfo(pv, cbMax, pcbActual);
  735. DBGJET((
  736. DBG_SS_CERTJETI,
  737. "JetGetAttachInfo(%x, %x, -> %x) --> %d\n",
  738. pv,
  739. cbMax,
  740. *pcbActual,
  741. jerr));
  742. if (NULL != pv)
  743. {
  744. DBGJETDUMPHEX(jerr, 0, (BYTE const *) pv, min(cbMax, *pcbActual));
  745. }
  746. return(jerr);
  747. }
  748. JET_ERR JET_API
  749. _dbgJetOpenFile(
  750. const char *szFileName,
  751. JET_HANDLE *phfFile,
  752. unsigned long *pulFileSizeLow,
  753. unsigned long *pulFileSizeHigh)
  754. {
  755. JET_ERR jerr;
  756. jerr = JetOpenFile(szFileName, phfFile, pulFileSizeLow, pulFileSizeHigh);
  757. DBGJET((
  758. DBG_SS_CERTJETI,
  759. "JetOpenFile(%hs, -> %x, %x, %x) --> %d\n",
  760. szFileName,
  761. *phfFile,
  762. *pulFileSizeLow,
  763. *pulFileSizeHigh,
  764. jerr));
  765. return(jerr);
  766. }
  767. JET_ERR JET_API
  768. _dbgJetReadFile(
  769. JET_HANDLE hfFile,
  770. void *pv,
  771. unsigned long cb,
  772. unsigned long *pcb)
  773. {
  774. JET_ERR jerr;
  775. jerr = JetReadFile(hfFile, pv, cb, pcb);
  776. DBGJET((
  777. DBG_SS_CERTJETI,
  778. "JetReadFile(%x, %x, %x, -> %x) --> %d\n",
  779. hfFile,
  780. pv,
  781. cb,
  782. *pcb,
  783. jerr));
  784. return(jerr);
  785. }
  786. #if 0
  787. JET_ERR JET_API
  788. _dbgJetAsyncReadFile(
  789. JET_HANDLE hfFile,
  790. void* pv,
  791. unsigned long cb,
  792. JET_OLP *pjolp)
  793. {
  794. JET_ERR jerr;
  795. jerr = JetAsyncReadFile(hfFile, pv, cb, pjolp);
  796. DBGJET((
  797. DBG_SS_CERTJETI,
  798. "JetAsyncReadFile(%x, %x, %x, %x) --> %d\n",
  799. hfFile,
  800. pv,
  801. cb,
  802. pjolp,
  803. jerr));
  804. return(jerr);
  805. }
  806. JET_ERR JET_API
  807. _dbgJetCheckAsyncReadFile(
  808. void *pv,
  809. int cb,
  810. unsigned long pgnoFirst)
  811. {
  812. JET_ERR jerr;
  813. jerr = JetCheckAsyncReadFile(pv, cb, pgnoFirst);
  814. DBGJET((
  815. DBG_SS_CERTJETI,
  816. "JetCheckAsyncReadFile(%x, %x, %x) --> %d\n",
  817. pv,
  818. cb,
  819. pgnoFirst,
  820. jerr));
  821. return(jerr);
  822. }
  823. #endif
  824. JET_ERR JET_API
  825. _dbgJetCloseFile(
  826. JET_HANDLE hfFile)
  827. {
  828. JET_ERR jerr;
  829. jerr = JetCloseFile(hfFile);
  830. DBGJET((DBG_SS_CERTJETI, "JetCloseFile(%x) --> %d\n", hfFile, jerr));
  831. return(jerr);
  832. }
  833. JET_ERR JET_API
  834. _dbgJetGetLogInfo(
  835. void *pv,
  836. unsigned long cbMax,
  837. unsigned long *pcbActual)
  838. {
  839. JET_ERR jerr;
  840. jerr = JetGetLogInfo(pv, cbMax, pcbActual);
  841. DBGJET((
  842. DBG_SS_CERTJETI,
  843. "JetGetLogInfo(%x, %x, %x, -> %x) --> %d\n",
  844. pv,
  845. cbMax,
  846. *pcbActual,
  847. jerr));
  848. if (NULL != pv)
  849. {
  850. DBGJETDUMPHEX(jerr, 0, (BYTE const *) pv, min(cbMax, *pcbActual));
  851. }
  852. return(jerr);
  853. }
  854. JET_ERR JET_API
  855. _dbgJetTruncateLog(void)
  856. {
  857. JET_ERR jerr;
  858. jerr = JetTruncateLog();
  859. DBGJET((DBG_SS_CERTJETI, "JetTruncateLog() --> %d\n", jerr));
  860. return(jerr);
  861. }
  862. JET_ERR JET_API
  863. _dbgJetEndExternalBackup(void)
  864. {
  865. JET_ERR jerr;
  866. jerr = JetEndExternalBackup();
  867. DBGJET((DBG_SS_CERTJETI, "JetEndExternalBackup() --> %d\n", jerr));
  868. return(jerr);
  869. }
  870. JET_ERR JET_API
  871. _dbgJetExternalRestore(
  872. char *szCheckpointFilePath,
  873. char *szLogPath,
  874. JET_RSTMAP *rgstmap,
  875. long crstfilemap,
  876. char *szBackupLogPath,
  877. long genLow,
  878. long genHigh,
  879. JET_PFNSTATUS pfn)
  880. {
  881. JET_ERR jerr;
  882. jerr = JetExternalRestore(
  883. szCheckpointFilePath,
  884. szLogPath,
  885. rgstmap,
  886. crstfilemap,
  887. szBackupLogPath,
  888. genLow,
  889. genHigh,
  890. pfn);
  891. DBGJET((
  892. DBG_SS_CERTJETI,
  893. "JetExternalRestore(%hs, %hs, %x, %x, %hs, %x, %x, %x) --> %d\n",
  894. szCheckpointFilePath,
  895. szLogPath,
  896. rgstmap,
  897. crstfilemap,
  898. szBackupLogPath,
  899. genLow,
  900. genHigh,
  901. pfn,
  902. jerr));
  903. return(jerr);
  904. }
  905. JET_ERR JET_API
  906. _dbgJetSetIndexRange(
  907. JET_SESID sesid,
  908. JET_TABLEID tableid,
  909. JET_GRBIT grbit)
  910. {
  911. JET_ERR jerr;
  912. jerr = JetSetIndexRange(sesid, tableid, grbit);
  913. DBGJET((
  914. DBG_SS_CERTJETI,
  915. "JetSetIndexRange(%x, %ws) --> %d\n",
  916. TableIndex(tableid),
  917. wszSetIndexRangegrbit(grbit),
  918. jerr));
  919. return(jerr);
  920. }
  921. JET_ERR JET_API
  922. _dbgJetRetrieveKey(
  923. JET_SESID sesid,
  924. JET_TABLEID tableid,
  925. void *pvData,
  926. unsigned long cbData,
  927. unsigned long *pcbActual,
  928. JET_GRBIT grbit)
  929. {
  930. JET_ERR jerr;
  931. jerr = JetRetrieveKey(sesid, tableid, pvData, cbData, pcbActual, grbit);
  932. DBGJET((
  933. DBG_SS_CERTJETI,
  934. "JetRetrieveKey(%x, %x, -> %x) --> %d\n",
  935. TableIndex(tableid),
  936. cbData,
  937. *pcbActual,
  938. jerr));
  939. DBGJETDUMPHEX(jerr, 0, (BYTE const *) pvData, min(*pcbActual, cbData));
  940. return(jerr);
  941. }
  942. #endif DBG