Bagikan melalui


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

Lihat juga

IStream - Implementasi File Manggala

IStream::UnlockRegion

LOCKTYPE