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 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:
|
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