Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Windows | Windows Server
Fungsi JetOpenFileInstance
Fungsi JetOpenFileInstance membuka database terlampir, file patch database, atau file log transaksi instans aktif untuk tujuan melakukan pencadangan fuzzy streaming. Data dari file-file ini kemudian dapat dibaca melalui handel yang dikembalikan menggunakan JetReadFileInstance. Handel yang dikembalikan harus ditutup menggunakan JetCloseFileInstance. Cadangan eksternal instans harus telah dimulai sebelumnya menggunakan JetBeginExternalBackupInstance.
Windows XP:JetOpenFileInstance diperkenalkan di Windows XP.
JET_ERR JET_API JetOpenFileInstance(
__in JET_INSTANCE instance,
__in JET_PCSTR szFileName,
__out JET_HANDLE* phfFile,
__out unsigned long* pulFileSizeLow,
__out unsigned long* pulFileSizeHigh
);
Parameter
Sebagai contoh
Instans yang digunakan untuk panggilan ini.
Untuk Windows 2000, varian API yang menerima parameter ini tidak tersedia karena hanya satu instans yang didukung. Penggunaan instans global yang satu ini tersirat dalam kasus ini.
Untuk rilis Windows XP dan yang lebih baru, varian API yang tidak menerima parameter ini hanya dapat dipanggil ketika mesin berada dalam mode warisan (mode kompatibilitas Windows 2000) di mana hanya satu instans yang didukung. Jika tidak, operasi akan gagal dengan JET_errRunningInMultiInstanceMode.
szFileName
Jalur relatif atau absolut ke database terlampir, file patch database, atau file log transaksi yang dikelola oleh instans yang dibaca untuk cadangan.
phfFile
Arahkan ke buffer output yang menerima handel ke file yang akan dibaca.
pulFileSizeLow
Arahkan ke buffer output yang menerima 32 bit yang paling tidak signifikan dari ukuran file.
pulFileSizeHigh
Arahkan ke 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 JetStopBackupInstance. 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 JetStopServiceInstance. |
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_errInvalidBackupSequence |
Operasi pencadangan gagal karena dipanggil secara berurutan. |
JET_errInvalidPath |
Operasi gagal karena jalur yang ditentukan tidak dapat ditemukan. |
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_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 JetOpenFileInstance ketika:
|
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. JetOpenFileInstance akan mengembalikan JET_errOutOfMemory jika upaya dilakukan untuk membuka file lain sebelum file sebelumnya dibuka menggunakan JetOpenFileInstance telah ditutup oleh JetCloseFileInstance. Hanya satu handel file terutang yang saat ini didukung. |
JET_errRestoreInProgress |
Tidak dimungkinkan untuk menyelesaikan operasi karena operasi pemulihan sedang berlangsung pada instans yang terkait dengan sesi. |
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. |
Jika berhasil, handel ke file yang diminta 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 dengan . 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 JetOpenFileInstance tidak memverifikasi bahwa jalur file yang diminta dikaitkan dengan kumpulan file yang 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.
JetOpenFileInstance 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 JetOpenFileInstance atau pada jumlah byte data aktual yang dikembalikan oleh JetReadFileInstance.
Persyaratan
| Persyaratan | Nilai |
|---|---|
Klien |
Memerlukan Windows Vista atau Windows XP. |
Server |
Memerlukan Windows Server 2008 atau Windows Server 2003. |
Header |
Dinyatakan dalam Esent.h. |
Pustaka |
Gunakan ESENT.lib. |
DLL |
Membutuhkan ESENT.dll. |
Unicode |
Diimplementasikan sebagai JetOpenFileInstanceW (Unicode) dan JetOpenFileInstanceA (ANSI). |
Lihat juga
JET_ERR
JET_HANDLE
JET_INSTANCE
JetAttachDatabase
JetBeginExternalBackupInstance
JetCloseFileInstance
JetGetAttachInfoInstance
JetGetLogInfoInstance
JetReadFileInstance
JetStopBackupInstance
JetTruncateLogInstance