FSCTL_REQUEST_OPLOCK_LEVEL_1 IOCTL (winioctl.h)

Demande un verrou opportuniste de niveau 1 sur un fichier.

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

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

Remarques

Cette opération est utilisée uniquement par les applications clientes qui demandent un verrou opportuniste à partir d’un serveur local. Les applications clientes qui demandent des verrous opportunistes à partir de serveurs distants ne doivent pas les demander directement. Le redirecteur réseau demande en toute transparence des verrous opportunistes pour l’application. Une tentative d’utilisation de cette opération pour demander des verrous opportunistes à des serveurs distants entraîne le refus de la demande.

Si un nouveau type oplock est souhaité, le handle doit être fermé et un nouveau handle rouvert à l’aide de CreateFile, et DeviceIoControl doit être appelé sur le nouveau handle avec le code de contrôle FSCTL_REQUEST_OPLOCK_XXX souhaité. Pour demander un oplock sur un handle dont le type oplock peut être modifié (le handle n’a pas besoin d’être fermé et rouvert), utilisez le code de contrôle FSCTL_REQUEST_OPLOCK .

Utilisez FSCTL_REQUEST_OPLOCK_LEVEL_1 pour demander un verrou opportuniste de niveau 1 sur un fichier. Un système de fichiers client peut mettre en cache des données en lecture ou en écriture localement tant que le verrou de niveau 1 est conservé.

Le propriétaire d’oplock de niveau 1 doit reconnaître un arrêt d’opération (voir Cassant les verrous opportunistes) avant qu’une opération incompatible avec un oplock de niveau 1 puisse passer sur un autre handle. Une fois le verrou rompu, le redirecteur réseau est averti de ne pas considérer comme valides les données mises en cache du fichier.

Pour plus d’informations, consultez Types de verrous opportunistes.

Pour une comparaison des différents codes de contrôle oplock, consultez FSCTL_REQUEST_OPLOCK.

Un code de contrôle FSCTL_REQUEST_OPLOCK_LEVEL_1 échoue si le fichier est ouvert en mode non chevauchement (synchrone).

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

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

Condition requise Valeur
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