Fonction FsRtlUpperOplockFsctrl (ntifs.h)
La routine FsRtlUpperOplockFsctrl traite les demandes de verrouillage 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 envoie l’état du verrou d’opération contenu 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 demande de verrouillage 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 d’oplocks, consultez Types d’oplocks.
[in] LowerOplockState
Valeur du niveau d’oplock inférieur détenu 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 oplock Read (R). |
OPLOCK_LEVEL_CACHE_WRITE | Indique un type d’écriture oplock (W). |
OPLOCK_LEVEL_CACHE_HANDLE | Indique un type de handle 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 Flags a 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 descripteurs actuellement ouverts correspondent. En spécifiant cet indicateur, vous autorisez le package oplock à accorder un oplock de niveau RW ou RWH lorsqu’il existe plusieurs handles ouverts au fichier. |
Valeur retournée
FsRtlUpperOplockFsctrl retourne l’une des valeurs NTSTATUS suivantes :
Code de retour | Description |
---|---|
STATUS_SUCCESS | Pour une demande IRP_MJ_CREATE, STATUS_SUCCESS indique que le verrou opportuniste de filtre (oplock) demandé 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 Notes 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 de l’opération d’E/S n’était pas une demande de verrouillage de valeurs valide. Les types de requête 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 du verrouillage du système de fichiers supérieur demandé n’est pas valide pour le verrouillage d’opération 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 Notes dans FsRtlOplockFsctrlEx. STATUS_PENDING est un code de réussite. |
STATUS_CANNOT_GRANT_REQUESTED_OPLOCK | Un accusé de réception oplock pour un nouveau verrou d’opération n’est pas autorisé. Le niveau de verrouillage du système de fichiers supérieur n’est pas valide pour le verrouillage du système de fichiers inférieur. |
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8.1 |
Plateforme cible | Universal |
En-tête | ntifs.h (include Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <= APC_LEVEL |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour