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