FSCTL_OPBATCH_ACK_CLOSE_PENDING IOCTL (winioctl.h)

Avertit un serveur qu’une application cliente est prête à fermer un fichier. Utilisez cette opération après notification qu’un verrou opportuniste sur un fichier est prêt à être rompu.

Pour effectuer cette opération, appelez la fonction DeviceIoControl à l’aide des paramètres suivants.

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
);

Remarques

Avant d’appeler cette fonction, ne faites pas d’hypothèses sur le nombre de canaux virtuels disponibles, car le système et d’autres plug-ins peuvent avoir des canaux virtuels réservés. Toujours case activée pour un CHANNEL_RC_TOO_MANY_CHANNELS le code de retour après l’appel de cette fonction.

Pour connaître les implications des E/S qui se chevauchent sur cette opération, consultez la section Remarques de la rubrique DeviceIoControl .

Utilisez le code de contrôle FSCTL_OPBATCH_ACK_CLOSE_PENDING lorsque vous êtes informé qu’un verrou opportuniste sur un fichier est prêt à être rompu et que vous avez l’intention de fermer le fichier bientôt. Cette opération ne demande pas de nouveau verrou opportuniste.

Si vous n’avez pas l’intention de fermer un fichier, vous pouvez utiliser le code de contrôle FSCTL_OPLOCK_BREAK_ACKNOWLEDGE ou FSCTL_OPLOCK_BREAK_ACK_NO_2 pour répondre à la notification. Le premier, utilisé si le verrou en cours de rupture est un verrou opportuniste exclusif, indique que le fichier doit recevoir un verrou opportuniste de niveau 2 à la place. Ce dernier demande que le fichier reste ouvert, mais perd tout verrouillage.

Les applications sont informées qu’un verrou opportuniste est rompu à l’aide du membre hEvent de la structure OVERLAPPED associée à un fichier sur lequel un verrou opportuniste est rompu. Les applications peuvent également utiliser des fonctions telles que GetOverlappedResult et HasOverlappedIoCompleted.

Dans Windows 8 et Windows Server 2012, ce code est pris en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 No
Basculement transparent SMB 3.0 (TFO) Non
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) No
Système de fichiers du volume partagé de cluster (CsvFS) Oui
Système de fichiers résilient (ReFS) Oui

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête winioctl.h (inclure Windows.h)

Voir aussi