Any ESENT API which creates a table (JetCreateTable, JetCreateTableColumnIndex, JetCreateTableColumnIndex2) returns a JET_TABLEID which is a cursor on the newly created table. That JET_TABLEID is actually opened exclusively (internally JET_bitTableDenyRead is passed to the open call). So the newly created table can't be opened by another session (JET_SESID) until it is closed.