FSCTL_OPBATCH_ACK_CLOSE_PENDING IOCTL (winioctl.h)

Benachrichtigt einen Server, dass eine Clientanwendung bereit ist, eine Datei zu schließen. Verwenden Sie diesen Vorgang, nachdem Sie benachrichtigt haben, dass eine opportunistische Sperre für eine Datei zum Brechen bereit ist.

Um diesen Vorgang auszuführen, rufen Sie die DeviceIoControl-Funktion mithilfe der folgenden Parameter auf.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file
  FSCTL_OPBATCH_ACK_CLOSE_PENDING,  // dwIoControlCode
  NULL,                             // lpInBuffer
  0,                                // nInBufferSize
  NULL,                             // lpOutBuffer
  0,                                // nOutBufferSize
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

Hinweise

Bevor Sie diese Funktion aufrufen, machen Sie keine Annahmen über die Anzahl der verfügbaren virtuellen Kanäle, da das System und andere Plug-Ins möglicherweise reservierte virtuelle Kanäle haben. Suchen Sie nach dem Aufrufen dieser Funktion immer nach einem CHANNEL_RC_TOO_MANY_CHANNELS Rückgabecode.

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

Verwenden Sie den FSCTL_OPBATCH_ACK_CLOSE_PENDING-Steuerungscode, wenn Sie benachrichtigt werden, dass eine opportunistische Sperre für eine Datei zum Brechen bereit ist, und Sie beabsichtigen, die Datei bald zu schließen. Dieser Vorgang fordert keine neue opportunistische Sperre an.

Wenn Sie keine Datei schließen möchten, können Sie den FSCTL_OPLOCK_BREAK_ACKNOWLEDGE oder FSCTL_OPLOCK_BREAK_ACK_NO_2 Steuercode verwenden, um auf die Benachrichtigung zu reagieren. Ersteres, das verwendet wird, wenn die Sperre unterbrochen wird, eine exklusive opportunistische Sperre ist, gibt an, dass die Datei stattdessen eine opportunistische Sperre der Ebene 2 erhalten sollte. Letztere fordert, dass die Datei geöffnet bleibt, verliert jedoch alle Sperren.

Anwendungen werden benachrichtigt, dass eine opportunistische Sperre unterbrochen wird, indem sie das hEvent-Element der OVERLAPPED-Struktur verwenden, das einer Datei zugeordnet ist, für die eine opportunistische Sperre unterbrochen ist. 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

   
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