Partager via


code de contrôle FSCTL_REQUEST_OPLOCK

Le code de contrôle FSCTL_REQUEST_OPLOCK demande un verrou opportuniste (oplock) sur un fichier ou reconnaît qu’un blocage d’opération s’est produit.

Pour plus d’informations sur les verrous opportunistes, consultez Verrous opportunistes dans la documentation windows Desktop. Pour plus d’informations sur les contrôles OPLOCK en mode utilisateur, consultez Codes de contrôle de gestion de fichiers dans la documentation windows Desktop.

Pour traiter ce code de contrôle, un système de fichiers ou un pilote de filtre appelle FsRtlOplockFsctrlEx avec les paramètres suivants.

Paramètres

  • Oplock : pointeur d’objet oplock opaque pour le fichier.

  • Irp : pointeur vers l’IRP pour une requête FSCTL IRP_MJ_FILE_SYSTEM_CONTROL. Le paramètre FsControlCode de l’opération doit être FSCTL_REQUEST_OPLOCK.

  • OpenCount : nombre de handles utilisateur pour le fichier si la demande concerne un oplock exclusif. Si la demande concerne un oplock qui peut être partagé, OpenCount est égal à zéro si aucun verrou de plage d’octets n’existe sur le fichier. Sinon, OpenCount est différent de zéro. L’appelant peut appeler la routine FsRtlOplockIsSharedRequest sur l’IRP pour déterminer si la demande concerne un oplock qui peut être partagé.

  • Indicateurs : masque de bits pour les opérations oplock associées. Un système de fichiers ou un pilote de filtre définit des bits pour spécifier le comportement de FsRtlOplockFsctrlEx. Le paramètre Flags a les options suivantes :

    Valeur Signification
    OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) Spécifie que le système de fichiers a vérifié que toutes les clés de verrouillage opportunistes correspondent à n’importe quel handle actuellement ouvert. En spécifiant cet indicateur, le package oplock peut accorder un oplock de niveau RW ou RWH lorsque plusieurs handles ouverts existent dans le fichier. Pour plus d’informations sur les types oplock, consultez Vue d’ensemble.

Bloc d’état

FsRtlOplockFsctrlEx retourne l’une des valeurs NTSTATUS suivantes pour cette opération :

Code Signification
STATUS_PENDING L’oplock a été accordé. Il s’agit d’un code de réussite.
STATUS_CANCELLED L’IRP a été annulé avant la fin de l’opération de FSCTL_REQUEST_OPLOCK. Il s’agit d’un code d’erreur.
STATUS_OPLOCK_NOT_GRANTED L’oplock n’a pas pu être accordé. Il s’agit d’un code d’erreur.

Configuration requise

Type d’exigence Condition requise
En-tête Ntifs.h (inclure Ntifs.h ou Fltkernel.h)

Voir aussi

FsRtlOplockFsctrlEx

FsRtlOplockIsSharedRequest

IRP_MJ_FILE_SYSTEM_CONTROL