Bagikan melalui


FSCTL_OPLOCK_BREAK_ACKNOWLEDGE IOCTL (winioctl.h)

Merespons pemberitahuan bahwa kunci oportunistik eksklusif pada file akan rusak. Gunakan operasi ini untuk menunjukkan bahwa file harus menerima kunci oportunistik tingkat 2.

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

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file
  FSCTL_OPLOCK_BREAK_ACKNOWLEDGE,   // 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 telah 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.

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

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE adalah respons terhadap pemberitahuan bahwa kunci oportunistik tingkat 1, batch, atau filter pada file aplikasi telah rusak. Ini menunjukkan kepada server bahwa aplikasi harus menerima kunci oportunistik tingkat 2. Jika operasi mengembalikan kode kesalahan ERROR_IO_PENDING, server telah memberikan aplikasi kunci tingkat 2 pada file.

Salah satu alternatif untuk menggunakan FSCTL_OPLOCK_BREAK_ACKNOWLEDGE adalah menunjukkan bahwa aplikasi akan tetap menutup file. Gunakan kode kontrol FSCTL_OPBATCH_ACK_CLOSE_PENDING untuk respons ini.

Alternatif lain adalah meminta untuk menjaga file tetap terbuka tetapi kehilangan semua penguncian, dengan cara kode kontrol FSCTL_OPLOCK_BREAK_ACK_NO_2 .

Aplikasi diberi tahu bahwa kunci oportunistik rusak dengan menggunakan anggota hEvent dari struktur TUMPANG TINDIH yang terkait dengan file tempat kunci oportunistik rusak. Aplikasi juga dapat menggunakan fungsi seperti GetOverlappedResult dan HasOverlappedIoCompleted.

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 Berbagi File Peluasan Skala (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