FSCTL_REQUEST_OPLOCK_LEVEL_1 IOCTL (winioctl.h)

Fordert eine opportunistische Sperre der Ebene 1 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_OPLOCK_LEVEL_1,     // 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 im neuen Handle mit dem gewünschten FSCTL_REQUEST_OPLOCK_XXX-Steuerelementcode aufgerufen werden. Um einen Oplock für ein Handle anzufordern, bei dem 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_OPLOCK_LEVEL_1 , um eine opportunistische Sperre der Ebene 1 für eine Datei anzufordern. Ein Clientdateisystem kann sowohl Lesedaten zwischenspeichern als auch Daten lokal schreiben, solange die Sperre der Ebene 1 gehalten wird.

Der Oplockbesitzer der Ebene 1 muss einen Oplock-Umbruch bestätigen (siehe Breaking opportunistic locks), bevor ein Vorgang, der mit einem Oplock der Ebene 1 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-Steuerungscodes finden Sie unter FSCTL_REQUEST_OPLOCK.

Ein FSCTL_REQUEST_OPLOCK_LEVEL_1-Steuerelementcode 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

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

Weitere Informationen