FSCTL_REQUEST_FILTER_OPLOCK IOCTL (winioctl.h)

Fordert eine opportunistische Filtersperre für eine Datei an.

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

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file
  FSCTL_REQUEST_FILTER_OPLOCK,      // 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 anfordern. Clientanwendungen, die opportunistische Sperren von Remoteservern anfordern, dürfen diese nicht direkt anfordern. Der Netzwerkumleitungsor fordert transparent opportunistische Sperren für die Anwendung an. Ein Versuch, mit diesem Vorgang opportunistische Sperren von Remoteservern anzufordern, führt dazu, dass die Anforderung abgelehnt wird.

Wenn ein neuer Oplock-Typ gewünscht wird, muss das Handle geschlossen und ein neues Handle mithilfe von CreateFile erneut geöffnet werden, und DeviceIoControl muss für das neue Handle mit dem gewünschten FSCTL_REQUEST_OPLOCK_XXX Steuerelementcode aufgerufen werden. Um einen Oplock für ein Handle anzufordern, für das der Oplock-Typ geändert werden kann (das Handle muss nicht geschlossen und erneut geöffnet werden), verwenden Sie den FSCTL_REQUEST_OPLOCK-Steuerelementcode.

Verwenden Sie FSCTL_REQUEST_FILTER_OPLOCK , um eine opportunistische Filtersperre für eine Datei anzufordern. Ein Clientdateisystem kann Lesedaten zwischenspeichern und Daten lokal verarbeiten, solange die Filtersperre gehalten wird, aber nur ein Client kann die Sperre gleichzeitig halten.

Der Besitzer des Filter-Oplocks muss einen Oplock-Umbruch (siehe Breaking opportunistic locks) bestätigen, bevor ein Vorgang, der mit einem Filter oplock nicht kompatibel ist, auf einem anderen Handle ausgeführt werden kann. Nachdem die Sperre unterbrochen wurde, wird der Netzwerkumleitung benachrichtigt, keine zwischengespeicherten Daten aus der Datei als gültig anzusehen.

Weitere Informationen finden Sie unter Typen von opportunistischen Sperren.

Einen Vergleich der verschiedenen Oplock-Kontrollcodes finden Sie unter FSCTL_REQUEST_OPLOCK.

Ein FSCTL_REQUEST_FILTER_OPLOCK Steuercode schlägt fehl, wenn die Datei im nicht überlappenden (synchronen) Modus geöffnet wird.

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

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

   
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