Bagikan melalui


Antarmuka Penyimpanan Terstruktur

Layanan Penyimpanan Terstruktur diatur ke dalam tiga kategori antarmuka . Setiap set mewakili tingkat tidak langsung atau abstraksi berturut-turut antara file gabungan, objek yang dikandungnya, dan media fisik tempat komponen individual ini disimpan.

Kategori antarmuka pertama terdiri dari IStorage, IStream, dan IRootStorage. Dua antarmuka pertama menentukan bagaimana objek disimpan dalam file gabungan. Antarmuka ini menyediakan metode untuk membuka elemen penyimpanan, menerapkan dan mengembalikan perubahan, menyalin dan memindahkan elemen, serta membaca dan menulis aliran. Antarmuka ini tidak mengenali format data asli objek individual dan karenanya tidak memiliki metode untuk menyimpan objek tersebut ke penyimpanan persisten. Antarmuka IRootStorage memiliki satu metode untuk mengaitkan dokumen majemuk dengan nama sistem file yang mendasar. Klien harus menerapkan antarmuka ini untuk file campuran mereka.

Kategori antarmuka kedua terdiri dari antarmuka IPersist, yang diterapkan objek untuk mengelola data persisten mereka. Antarmuka ini menyediakan metode untuk membaca format data objek individual dan karenanya tahu cara menyimpannya. Objek bertanggung jawab untuk menerapkan antarmuka ini karena klien tidak mengetahui format data asli objek berlapis mereka. Antarmuka ini, bagaimanapun, tidak memiliki pengetahuan tentang media penyimpanan fisik tertentu.

Kategori ketiga terdiri dari satu antarmuka, ILockBytes, yang menyediakan metode untuk menulis file ke media fisik tertentu, seperti hard disk atau tape drive. Namun, sebagian besar aplikasi tidak akan menerapkan antarmuka ILockBytes karena COM sudah menyediakan implementasi untuk dua situasi yang paling umum, yaitu implementasi berbasis File dan implementasi berbasis Memori. Objek penyimpanan file gabungan memanggil metode ILockBytes yang tidak Anda panggil langsung dalam implementasi.

Batas Implementasi File Campuran

Implementasi COM dari arsitektur Penyimpanan Terstruktur disebut file campuran. Objek penyimpanan, seperti yang diimplementasikan dalam file majemuk, termasuk implementasiIPropertyStorage dan antarmuka IPropertySetStorage.

Penunjuk ke implementasi file gabungan antarmuka ini diperoleh dengan memanggil fungsi StgCreateStorageEx untuk membuat objek file gabungan baru, atau StgOpenStorageEx untuk membuka file gabungan yang dibuat sebelumnya.

Metode alternatif untuk memperoleh penunjuk ke implementasi file gabungan dari antarmuka ini adalah dengan memanggil fungsiStgCreateDocfile yang lebih lama danlebih terbatas atauStgOpenStorage. Keempat fungsi diperlakukan sebagai implementasi file campuran.

Implementasi file majemuk dapat dikonfigurasi untuk menggunakan sektor byte 512 atau 4096, seperti yang didefinisikan dalam strukturSTGOPTIONS.

Implementasi file mampul dari file campuran tunduk pada batasan implementasi berikut.

Batas File gabungan
Batas ukuran file: 512: 2 gigabyte (GB) 4096: Hingga batas sistem file
Ukuran timbunan maksimum yang diperlukan untuk elemen terbuka: 512: 4 megabyte (MB) 4096: Hingga batas memori virtual
Akar bersamaan terbuka (terbuka dari file yang sama): Jika STGM_READ dan STGM_SHARE_DENY_WRITE ditentukan, batasan ditentukan oleh batas sistem file. Jika tidak, ada batas 20 pembukaan akar bersamaan dari file yang sama.
Jumlah elemen dalam file: 512: Tidak terbatas, tetapi performa dapat menURUR JIKA jumlah elemen dalam ribuan 4096: Tidak Terbatas

Karena batas ukuran tumpukan 4-MB, jumlah elemen terbuka dalam mode yang ditransaksikan biasanya terbatas pada beberapa ribu elemen.