Freigeben über


FSCTL_REQUEST_BATCH_OPLOCK IOCTL (winioctl.h)

Fordert eine opportunistische Batchsperre für eine Datei an.

Um diesen Vorgang auszuführen, rufen Sie die DeviceIoControl-Funktion mit den folgenden Argumenten auf.

BOOL b = DeviceIoControl(
  (HANDLE) hDevice,              // handle to file
  FSCTL_REQUEST_BATCH_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 (Oplock) 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_BATCH_OPLOCK , um eine batchoprtunistische Sperre für eine Datei anzufordern. Ein Clientdateisystem kann Lesedaten zwischenspeichern, Daten schreiben und Daten lokal verarbeiten, solange die Sperre der Ebene 1 gehalten wird.

Der Besitzer des Batch-Oplocks muss einen Oplock-Umbruch (siehe Breaking opportunistic locks) bestätigen, bevor ein Vorgang, der mit einem Batch-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_BATCH_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