IStream::Metode LockRegion (objidl.h)
Metode LockRegion membatasi akses ke rentang byte tertentu dalam aliran. Mendukung fungsionalitas ini bersifat opsional karena beberapa sistem file tidak menyediakannya.
Sintaks
HRESULT LockRegion(
[in] ULARGE_INTEGER libOffset,
[in] ULARGE_INTEGER cb,
[in] DWORD dwLockType
);
Parameter
[in] libOffset
Bilangan bulat yang menentukan offset byte untuk awal rentang.
[in] cb
Bilangan bulat yang menentukan panjang rentang, dalam byte, yang akan dibatasi.
[in] dwLockType
Menentukan batasan yang diminta untuk mengakses rentang.
Nilai kembali
Metode ini dapat mengembalikan salah satu nilai ini.
Menampilkan kode | Deskripsi |
---|---|
S_OK | Rentang byte yang ditentukan dikunci. |
E_PENDING | Hanya Penyimpanan Asinkron: Bagian atau semua data aliran saat ini tidak tersedia. |
STG_E_INVALIDFUNCTION | Penguncian tidak didukung sama sekali atau jenis kunci tertentu yang diminta tidak didukung. |
STG_E_LOCKVIOLATION | Kunci yang diminta didukung, tetapi tidak dapat diberikan karena kunci yang ada. |
STG_E_REVERTED | Objek telah divalidasi oleh operasi kembali di atasnya di pohon transaksi. |
Keterangan
Rentang byte aliran dapat diperpanjang. Mengunci rentang yang diperluas untuk aliran berguna sebagai metode komunikasi antara berbagai instans aliran tanpa mengubah data yang sebenarnya merupakan bagian dari aliran.
Tiga jenis penguncian dapat didukung: mengunci untuk mengecualikan penulis lain, mengunci untuk mengecualikan pembaca atau penulis lain, dan penguncian yang hanya memungkinkan satu pemohon untuk mendapatkan kunci pada rentang yang diberikan, yang biasanya merupakan alias untuk salah satu dari dua jenis kunci lainnya. Instans aliran tertentu mungkin mendukung salah satu dari dua jenis pertama, atau keduanya. Jenis kunci ditentukan oleh dwLockType, menggunakan nilai dari enumerasi LOCKTYPE .
Wilayah apa pun yang dikunci dengan IStream::LockRegion nantinya harus dibuka secara eksplisit dengan memanggil IStream::UnlockRegion dengan nilai yang sama persis untuk parameter libOffset, cb, dan dwLockType . Wilayah harus dibuka kuncinya sebelum aliran dirilis. Dua wilayah yang berdingin tidak dapat dikunci secara terpisah dan kemudian dibuka dengan satu panggilan buka kunci.
Catatan untuk Penelepon
Karena jenis penguncian yang didukung bersifat opsional dan dapat bervariasi dalam implementasi IStream yang berbeda, Anda harus memberikan kode untuk menangani kesalahan STG_E_INVALIDFUNCTION.Metode LockRegion tidak berpengaruh dalam implementasi file campuran, karena implementasinya tidak mendukung penguncian rentang.
Catatan untuk Pelaksana
Dukungan untuk metode ini bersifat opsional untuk implementasi objek aliran karena mungkin tidak didukung oleh sistem file yang mendasar. Jenis penguncian yang didukung juga opsional. Kesalahan STG_E_INVALIDFUNCTION dikembalikan jika jenis penguncian yang diminta tidak didukung.Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows 2000 Server [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | objidl.h |
Pustaka | Uuid.lib |
DLL | Ole32.dll |