Freigeben über


FSCTL_REQUEST_OPLOCK_LEVEL_2 IOCTL (winioctl.h)

Fordert eine opportunistische Sperre der Ebene 2 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_2,     // 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_2 , um eine opportunistische Sperre der Ebene 2 für eine Datei anzufordern. Ein Clientdateisystem kann Gelesene Daten zwischenspeichern (aber keine Daten schreiben), solange die Sperre der Ebene 2 gehalten wird.

Das Dateisystem erfordert keine Bestätigung von der Anwendung, die die opportunistische Sperre der Stufe 2 angefordert hat, wenn die Sperre unterbrochen ist. Nachdem die Sperre unterbrochen wurde, wird der Netzwerkumleitung benachrichtigt, keine zwischengespeicherten Daten aus der Datei als gültig anzusehen. Weitere Informationen finden Sie unter Breaking Oplocks.

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_2-Steuerelementcode schlägt fehl, wenn die Datei im nicht überlappten (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