// Token: 0x06000953 RID: 2387 RVA: 0x0002BB40 File Offset: 0x00029D40 private static EseDatabaseReader BuildEseDatabaseReader(string serverName, Guid dbGuid, string dbName, string dbPath) { EseDatabaseReader eseDatabaseReader = new EseDatabaseReader(dbName, dbGuid); SafeBackupContextHandle safeBackupContextHandle = eseDatabaseReader; SafeBackupContextHandle.GetAndSetIntPtrInCER(serverName, dbName, null, ref safeBackupContextHandle); bool flag = false; try { JET_DBINFOMISC jet_DBINFOMISC; int databaseInfo = CReplicaSeederInterop.GetDatabaseInfo(eseDatabaseReader.handle, dbPath, out jet_DBINFOMISC); if (databaseInfo != 0) { throw new FailedToGetDatabaseInfo(databaseInfo); } eseDatabaseReader.m_pageSize = (long)jet_DBINFOMISC.cbPageSize; eseDatabaseReader.m_dbPath = dbPath; if (jet_DBINFOMISC.cbPageSize != 4096 && jet_DBINFOMISC.cbPageSize != 8192 && jet_DBINFOMISC.cbPageSize != 32768) { throw new UnExpectedPageSizeException(dbPath, (long)jet_DBINFOMISC.cbPageSize); } flag = true; } finally { if (!flag) { eseDatabaseReader.ReleaseHandle(); } } return(eseDatabaseReader); }
// Token: 0x06001A2F RID: 6703 RVA: 0x0006DD74 File Offset: 0x0006BF74 public static EseDatabaseBackupReader GetESEDatabaseBackupReader(string serverName, string dbName, Guid dbGuid, string transferAddress, string sourceFileToBackupFullPath, uint readHintSizeBytes) { bool flag = false; int num = 0; IntPtr value = new IntPtr(-1); EseDatabaseBackupReader eseDatabaseBackupReader = new EseDatabaseBackupReader(dbName, dbGuid); SafeBackupContextHandle safeBackupContextHandle = eseDatabaseBackupReader; EseDatabaseBackupReader result; try { EseDatabaseBackupReader.SetupNativeLogger(); SafeBackupContextHandle.GetAndSetIntPtrInCER(serverName, dbName, transferAddress, ref safeBackupContextHandle); flag = true; RuntimeHelpers.PrepareConstrainedRegions(); try { } finally { num = CReplicaSeederInterop.OpenBackupFileHandle(eseDatabaseBackupReader.handle, sourceFileToBackupFullPath, readHintSizeBytes, out eseDatabaseBackupReader.m_backupFileHandle, out eseDatabaseBackupReader.m_sourceFileSizeBytes); } if (num != 0 || eseDatabaseBackupReader.m_backupFileHandle == IntPtr.Zero || eseDatabaseBackupReader.m_backupFileHandle == value) { eseDatabaseBackupReader.Close(); throw new FailedToOpenBackupFileHandleException(dbName, serverName, num, SeedHelper.TranslateSeederErrorCode((long)num, serverName)); } result = eseDatabaseBackupReader; } finally { if (!flag) { EseDatabaseBackupReader.CleanupNativeLogger(); } } return(result); }