Freigeben über


FSCTL_OPLOCK_BREAK_ACKNOWLEDGE IOCTL (winioctl.h)

Reagiert auf die Benachrichtigung, dass eine exklusive opportunistische Sperre für eine Datei unterbrochen wird. Verwenden Sie diesen Vorgang, um anzugeben, dass die Datei eine opportunistische Sperre der Ebene 2 erhalten soll.

Rufen Sie zum Ausführen dieses Vorgangs die DeviceIoControl-Funktion mit den folgenden Parametern auf.

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
);

Hinweise

Dieser Vorgang wird nur von Clientanwendungen verwendet, die eine opportunistische Sperre von einem lokalen Server angefordert haben. Clientanwendungen, die opportunistische Sperren von Remoteservern anfordern, dürfen diese nicht direkt anfordern. Der Netzwerkumleitungsor fordert transparent opportunistische Sperren für die Anwendung an.

Die Auswirkungen von überlappenden E/A-Vorgängen auf diesen Vorgang finden Sie im Abschnitt Hinweise des Themas DeviceIoControl .

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE ist eine Antwort auf die Benachrichtigung, dass eine opportunistische Sperre der Ebene 1, Batch oder Filter für die Datei einer Anwendung unterbrochen wurde. Sie gibt dem Server an, dass die Anwendung eine opportunistische Sperre der Ebene 2 erhalten soll. Wenn der Vorgang den Fehlercode ERROR_IO_PENDING zurückgibt, hat der Server der Anwendung eine Sperre der Ebene 2 für die Datei gewährt.

Eine Alternative zur Verwendung von FSCTL_OPLOCK_BREAK_ACKNOWLEDGE besteht darin, anzugeben, dass die Anwendung die Datei trotzdem schließen wird. Verwenden Sie den FSCTL_OPBATCH_ACK_CLOSE_PENDING-Steuerelementcode für diese Antwort.

Eine andere Alternative besteht darin, die Datei geöffnet zu lassen, aber alle Sperren durch den FSCTL_OPLOCK_BREAK_ACK_NO_2 Kontrollcode zu verlieren.

Anwendungen werden benachrichtigt, dass eine opportunistische Sperre unterbrochen wird, indem sie den hEvent-Member der OVERLAPPED-Struktur verwenden, die der Datei zugeordnet ist, für die die opportunistische Sperre unterbrochen wird. Anwendungen können auch Funktionen wie GetOverlappedResult und HasOverlappedIoCompleted verwenden.

In Windows 8 und Windows Server 2012 wird dieser Code von den folgenden Technologien unterstützt.

Technologie Unterstützt
SMB 3.0-Protokoll (Server Message Block) No
SMB 3.0 Transparent Failover (TFO) No
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) No
Dateisystem mit freigegebenen Clustervolumes (CsvFS) Ja
Robustes Dateisystem (Resilient File System, ReFS) Ja

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile winioctl.h (windows.h einschließen)

Weitere Informationen