Metode IByteBuffer::LockRegion

[Metode LockRegion tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini tidak tersedia untuk digunakan di Windows Server 2003 dengan Paket Layanan 1 (SP1) dan yang lebih baru, Windows Vista, Windows Server 2008, dan versi sistem operasi berikutnya. Antarmuka IStream menyediakan fungsionalitas serupa.]

Metode LockRegion membatasi akses ke rentang byte tertentu dalam objek buffer.

Sintaks

HRESULT LockRegion(
  [in] LONG libOffset,
  [in] LONG cb,
  [in] LONG dwLockType
);

Parameter

libOffset [in]

Bilangan bulat yang menentukan offset byte untuk awal rentang.

cb [in]

Bilangan bulat yang menentukan panjang rentang, dalam byte, yang akan dibatasi.

dwLockType [in]

Menentukan pembatasan yang diminta untuk mengakses rentang. Ini bisa menjadi salah satu nilai dalam tabel berikut ini.

Nilai Makna
LOCK_WRITE
Rentang byte yang ditentukan dapat dibuka dan dibaca beberapa kali, tetapi menulis ke rentang terkunci dilarang kecuali untuk pemilik yang diberikan kunci ini.
LOCK_EXCLUSIVE
Menulis ke rentang byte yang ditentukan dilarang kecuali untuk pemilik yang diberikan kunci ini.
LOCK_ONLYONCE
Jika kunci ini diberikan, tidak ada kunci LOCK_ONLYONCE lain yang dapat diperoleh pada rentang. Biasanya jenis kunci ini adalah alias untuk beberapa jenis kunci lainnya. Dengan demikian, implementasi tertentu dapat memiliki perilaku tambahan yang terkait dengan jenis kunci ini.

Nilai kembali

Nilai yang dikembalikan adalah HRESULT. Nilai S_OK menunjukkan bahwa panggilan berhasil.

Keterangan

Rentang byte dapat meluas melewati akhir aliran saat ini. Penguncian di luar akhir 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 mana pun yang dikunci dengan LockRegion nantinya harus dibuka secara eksplisit dengan memanggil parameter IByteBuffer::UnlockRegion dengan nilai yang sama persis untuk parameter libOffset, cb, dan dwLockType . Wilayah harus dibuka kuncinya sebelum aliran dirilis. Dua wilayah yang berdekatan tidak dapat dikunci secara terpisah dan kemudian dibuka dengan satu panggilan buka kunci.

Contoh

Contoh berikut menunjukkan pembatasan akses ke rentang byte.

HRESULT  hr;

// Lock a region.
hr = pIByteBuff->LockRegion(0, 10, LOCK_EXCLUSIVE);
if (FAILED(hr))
  printf("Failed IByteBuffer::LockRegion\n");

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows XP [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2003 [hanya aplikasi desktop]
Akhir dukungan klien
Windows XP
Akhir dukungan server
Windows Server 2003
Header
Scardssp.h
Pustaka jenis
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer didefinisikan sebagai E126F8FE-A7AF-11D0-B88A-00C04FD424B9