Bagikan melalui


Fungsi JetOpenFile

Berlaku untuk: Windows | Windows Server

Fungsi JetOpenFile

Fungsi JetOpenFile membuka database terlampir, file patch database, atau file log transaksi dari instans aktif untuk tujuan melakukan pencadangan fuzzy streaming. Data dari file-file ini kemudian dapat dibaca melalui handel yang dikembalikan menggunakan JetReadFile. Handel yang dikembalikan harus ditutup menggunakan JetCloseFile. Cadangan eksternal instans harus telah dimulai sebelumnya menggunakan JetBeginExternalBackup.

    JET_ERR JET_API JetOpenFile(
      __in          const tchar* szFileName,
      __out         JET_HANDLE* phfFile,
      __out         unsigned long* pulFileSizeLow,
      __out         unsigned long* pulFileSizeHigh
    );

Parameter

szFileName

Jalur relatif atau absolut ke database terlampir, file patch database, atau file log transaksi yang dikelola oleh instans yang akan dibaca untuk cadangan.

phfFile

Buffer output yang menerima handel ke file yang akan dibaca.

pulFileSizeLow

Buffer output yang menerima ukuran 32 bit yang paling tidak signifikan dari file.

pulFileSizeHigh

Buffer output yang menerima 32 bit paling signifikan dari ukuran file.

Tampilkan Nilai

Fungsi ini mengembalikan jenis data JET_ERR dengan salah satu kode pengembalian berikut. Untuk informasi selengkapnya tentang kemungkinan kesalahan ESE, lihat Kesalahan Mesin Penyimpanan yang Dapat Diperluas dan Parameter Penanganan Kesalahan.

Menampilkan kode

Deskripsi

JET_errSuccess

Operasi berhasil diselesaikan.

JET_errBackupAbortByServer

Operasi gagal karena cadangan eksternal saat ini telah dibatalkan oleh panggilan ke JetStopBackup. Kesalahan ini hanya akan dikembalikan oleh Windows XP dan rilis yang lebih baru.

JET_errClientRequestToStopJetService

Tidak dimungkinkan untuk menyelesaikan operasi karena semua aktivitas pada instans yang terkait dengan sesi telah berhenti sebagai akibat dari panggilan ke JetStopService.

JET_errFileAccessDenied

Operasi gagal karena tidak dapat membuka file yang diminta karena pelanggaran berbagi atau hak istimewa yang tidak memadai.

JET_errFileNotFound

Operasi gagal karena tidak dapat membuka file yang diminta karena tidak dapat ditemukan pada jalur yang ditentukan. Kesalahan ini hanya akan dikembalikan oleh Windows 2000.

JET_errInstanceUnavailable

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi telah mengalami kesalahan fatal yang mengharuskan akses ke semua data dicabut untuk melindungi integritas data tersebut. Kesalahan ini hanya akan dikembalikan oleh Windows XP dan rilis yang lebih baru.

JET_errInvalidBackupSequence

Operasi pencadangan gagal karena dipanggil secara berurutan.

JET_errInvalidParameter

Salah satu parameter yang disediakan berisi nilai yang tidak terduga atau berisi nilai yang tidak masuk akal ketika dikombinasikan dengan nilai parameter lain. Ini dapat terjadi untuk JetOpenFile ketika:

  • Handel instans yang ditentukan tidak valid (Windows XP dan rilis yang lebih baru).

  • Parameter nama file yang ditentukan adalah NULL atau string panjang nol (Windows XP dan rilis yang lebih baru).

JET_errInvalidPath

Operasi gagal karena jalur yang ditentukan tidak dapat ditemukan.

JET_errMissingFileToBackup

File yang diminta tidak dapat dibuka untuk pencadangan karena tidak dapat ditemukan. Kesalahan ini hanya akan dikembalikan oleh Windows XP dan rilis yang lebih baru.

JET_errNoBackup

Operasi gagal karena tidak ada pencadangan eksternal yang sedang berlangsung.

JET_errNotInitialized

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi belum diinisialisasi.

JET_errOutOfMemory

Operasi gagal karena memori tidak cukup dapat dialokasikan untuk menyelesaikannya. JetOpenFile akan mengembalikan JET_errOutOfMemory jika upaya dilakukan untuk membuka file lain sebelum file sebelumnya dibuka menggunakan JetOpenFile telah ditutup oleh JetCloseFile. Hanya satu handel file terutang yang saat ini didukung.

JET_errRunningInMultiInstanceMode

Operasi gagal karena upaya dilakukan untuk menggunakan mesin dalam mode warisan (mode kompatibilitas Windows 2000) di mana hanya satu instans yang didukung ketika sebenarnya beberapa instans sudah ada.

JET_errTermInProgress

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi sedang dimatikan. JET_errRestoreInProgress Tidak dimungkinkan untuk menyelesaikan operasi karena operasi pemulihan sedang berlangsung pada instans yang terkait dengan sesi.

Jika berhasil, handel ke file yang diminta akan dikembalikan. Jika handel adalah untuk file database, file database tersebut akan disiapkan untuk pencadangan streaming yang dapat mengakibatkan pembuatan file patch database di lokasi yang sama dengan file database. File patch database memiliki jalur dan nama file yang sama persis dengan file database, tetapi memiliki . Ekstensi PAT. Ukuran file juga akan dikembalikan.

Jika gagal, status buffer output tidak akan terdefinisi. File patch database dapat dibuat sementara pada disk dan file yang ada di lokasi file patch dapat dihapus. Kegagalan akan mengakibatkan pembatalan seluruh proses pencadangan untuk instans. Pada Windows XP dan rilis yang lebih baru, cadangan tidak akan dibatalkan jika upaya dilakukan untuk mencadangkan database yang tidak dilampirkan ke instans pada saat panggilan.

Peringatan Untuk alasan keamanan, penting untuk dicatat bahwa JetOpenFile tidak memverifikasi bahwa jalur file yang diminta dikaitkan dengan kumpulan file yang harus dicadangkan untuk instans. Akibatnya, dimungkinkan untuk menggunakan fungsi ini untuk mengakses file apa pun yang dapat dibuka oleh konteks keamanan utas saat ini. Sangat penting bahwa aplikasi membatasi jalur yang diteruskan ke fungsi ini ke serangkaian jalur file yang baik yang diketahui atau pengungkapan serangan informasi dapat dimungkinkan.

Keterangan

Penyangga output handel dan ukuran file harus ada. Jika tidak ada maka mesin akan crash karena parameter buffer output tidak divalidasi.

Saat ini, hanya satu file yang dapat dibuka untuk pencadangan pada satu waktu.

JetOpenFile tidak menegaskan hak istimewa cadangan sebelum membuka file yang diminta.

Ukuran file yang akan dibaca seperti yang dilaporkan oleh fungsi ini mungkin tidak cocok dengan ukuran file pada disk. Pada Windows XP dan rilis yang lebih baru, informasi tambahan dapat ditambahkan ke file database yang digunakan oleh mesin database selama operasi pemulihan. Dengan demikian, aplikasi hanya boleh mengandalkan ukuran file yang dikembalikan oleh JetOpenFile atau pada jumlah byte data aktual yang dikembalikan oleh JetReadFile.

Persyaratan

Persyaratan Nilai

Klien

Memerlukan Windows Vista, Windows XP, atau Windows 2000 Professional.

Server

Memerlukan Windows Server 2008, Windows Server 2003, atau Windows 2000 Server.

Header

Dinyatakan dalam Esent.h.

Pustaka

Gunakan ESENT.lib.

DLL

Membutuhkan ESENT.dll.

Unicode

Diimplementasikan sebagai JetOpenFileW (Unicode) dan JetOpenFileA (ANSI).

Lihat juga

JET_ERR
JET_HANDLE
JET_INSTANCE
JetAttachDatabase
JetBeginExternalBackup
JetCloseFile
JetGetAttachInfo
JetGetLogInfo
JetReadFile
JetStopBackup
JetStopService
JetTruncateLog