Partager via


FsRtlUpperOplockFsctrl, fonction (ntifs.h)

Le FsRtlUpperOplockFsctrl routine traite les requêtes de verrou opportuniste (oplock) et les accusés de réception pour les systèmes de fichiers secondaires ou en couches. Le système de fichiers supérieur soumet l’état de l’oplock conservé dans le système de fichiers inférieur. FsRtlUpperOplockFsctrl détermine s’il faut accorder ou refuser le verrouillage du système de fichiers supérieur.

Syntaxe

NTSTATUS FsRtlUpperOplockFsctrl(
  [in] POPLOCK Oplock,
  [in] PIRP    Irp,
  [in] ULONG   OpenCount,
  [in] ULONG   LowerOplockState,
  [in] ULONG   Flags
);

Paramètres

[in] Oplock

Pointeur oplock opaque pour le fichier. Ce pointeur doit avoir été initialisé par un appel précédent à FsRtlInitializeOplock.

[in] Irp

Pointeur vers l’IRP pour l’opération d’E/S.

[in] OpenCount

Nombre de handles utilisateur pour le fichier, si un oplock exclusif est demandé. La définition d’une valeur différente de zéro pour une requête oplock de niveau 2, R ou RH indique qu’il existe des verrous de plage d’octets sur le fichier. Pour plus d’informations sur les types oplock, consultez Types d’oplocks.

[in] LowerOplockState

Valeur du niveau d’oplock inférieur conservé par le système de fichiers supérieur. Il s’agit d’une combinaison OR au niveau du bit des éléments suivants :

Valeur Signification
OPLOCK_LEVEL_CACHE_READ Indique un type de lecture oplock (R).
OPLOCK_LEVEL_CACHE_WRITE Indique un type d’écriture oplock (W).
OPLOCK_LEVEL_CACHE_HANDLE Indique un type de handle d’oplock (H).

[in] Flags

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 FsRtlUpperOplockFsctrl. Le paramètre indicateurs de contient les options suivantes :

Valeur Signification
OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) Le système de fichiers a vérifié que toutes les clés oplock sur les handles actuellement ouverts correspondent. En spécifiant cet indicateur, vous autorisez le package oplock à accorder un oplock de niveau RW ou RWH lorsque plusieurs handles ouverts existent sur le fichier.

Valeur de retour

FsRtlUpperOplockFsctrl retourne l’une des valeurs NTSTATUS suivantes :

Retourner le code Description
STATUS_SUCCESS Pour une demande de IRP_MJ_CREATE, STATUS_SUCCESS indique que le verrou opportuniste de filtre demandé (oplock) a été accordé. Pour une opération FSCTL, la signification de STATUS_SUCCESS dépend du code FSCTL. Pour plus d’informations, consultez la section Remarques dans FsRtlOplockFsctrlEx.
STATUS_CANCELLED L’opération d’E/S a été annulée. STATUS_CANCELLED est un code d’erreur.
STATUS_INVALID_PARAMETER Le code FSCTL pour l’opération d’E/S n’était pas une demande d’oplock de valeurs valides. Les types de requêtes valides sont répertoriés dans la section Notes de FsRtlOplockFsctrlEx. STATUS_INVALID_PARAMETER est un code d’erreur.
STATUS_OPLOCK_NOT_GRANTED L’oplock n’a pas pu être accordé. Le niveau d’oplock du système de fichiers supérieur demandé n’est pas valide pour l’oplock accordé pour le système de fichiers inférieur. STATUS_OPLOCK_NOT_GRANTED est un code d’erreur.
STATUS_PENDING Utilisé uniquement pour les opérations FSCTL. La signification de STATUS_PENDING dépend du code FSCTL. Pour plus d’informations, consultez la section Remarques dans FsRtlOplockFsctrlEx. STATUS_PENDING est un code de réussite.
STATUS_CANNOT_GRANT_REQUESTED_OPLOCK Un accusé de réception oplock pour un nouvel oplock n’est pas autorisé. Le niveau du système de fichiers supérieur du verrou n’est pas valide pour le verrouillage du système de fichiers inférieur.

Exigences

Exigence Valeur
client minimum pris en charge Windows 8.1
plateforme cible Universel
d’en-tête ntifs.h (include Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= APC_LEVEL

Voir aussi

FsRtlCheckUpperOplock

FsRtlOplockFsctrlEx