Bagikan melalui


FSCTL_REQUEST_OPLOCK_LEVEL_1 IOCTL (winioctl.h)

Meminta kunci oportunistik tingkat 1 pada file.

Untuk melakukan operasi ini, panggil fungsi DeviceIoControl menggunakan parameter berikut.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file
  FSCTL_REQUEST_OPLOCK_LEVEL_1,     // dwIoControlCode
  NULL,                             // lpInBuffer
  0,                                // nInBufferSize
  NULL,                             // lpOutBuffer
  0,                                // nOutBufferSize
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

Keterangan

Operasi ini hanya digunakan oleh aplikasi klien yang meminta kunci oportunistik dari server lokal. Aplikasi klien yang meminta kunci oportunistik dari server jarak jauh tidak boleh memintanya secara langsung—pengalih jaringan secara transparan meminta kunci oportunistik untuk aplikasi. Upaya untuk menggunakan operasi ini untuk meminta kunci oportunistik dari server jarak jauh akan mengakibatkan permintaan ditolak.

Jika jenis oplock baru diinginkan, handel harus ditutup dan handel baru dibuka kembali menggunakan CreateFile, dan DeviceIoControl harus dipanggil pada handel baru dengan FSCTL_REQUEST_OPLOCKyang diinginkan_XXX kode kontrol. Untuk meminta oplock pada handel yang dapat mengubah jenis oplock di tempat (handel tidak harus ditutup dan dibuka kembali), gunakan kode kontrol FSCTL_REQUEST_OPLOCK .

Gunakan FSCTL_REQUEST_OPLOCK_LEVEL_1 untuk meminta kunci oportunistik tingkat 1 pada file. Sistem file klien dapat menyimpan data baca atau menulis data secara lokal selama kunci tingkat 1 disimpan.

Pemilik oplock tingkat 1 harus mengakui jeda oplock (lihat Melanggar kunci oportunistik) sebelum operasi apa pun yang tidak kompatibel dengan oplock tingkat 1 dapat melalui pada handel lain. Setelah kunci rusak, pengalih jaringan diberitahu untuk tidak menganggap sebagai data cache yang valid dari file.

Untuk informasi selengkapnya, lihat Jenis Kunci Oportunistik.

Untuk perbandingan berbagai kode kontrol oplock, lihat FSCTL_REQUEST_OPLOCK.

Kode kontrol FSCTL_REQUEST_OPLOCK_LEVEL_1 gagal jika file dibuka dalam mode tidak tumpang tindih (sinkron).

Untuk implikasi I/O yang tumpang tindih pada operasi ini, lihat bagian Keterangan dari topik DeviceIoControl .

Di Windows 8 dan Windows Server 2012, kode ini didukung oleh teknologi berikut.

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0 Tidak
SMB 3.0 Transparent Failover (TFO) Tidak
SMB 3.0 dengan Scale-out File Shares (SO) Tidak
Sistem File Volume Bersama Kluster (CsvFS) Ya
Sistem File Tangguh (ReFS) Ya

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header winioctl.h (termasuk Windows.h)

Lihat juga