Macro FsRtlCheckOplock (rxprocs.h)
La routine FsRtlCheckOplock synchronise l’IRP d’une opération d’E/S de fichier avec l’état actuel du verrou opportuniste (oplock) du fichier.
Syntaxe
void FsRtlCheckOplock(
A1,
A2,
A3,
A4,
A5
);
Paramètres
A1
Pointeur de verrou opportuniste opaque pour le fichier. Ce pointeur doit avoir été initialisé par un appel précédent à FsRtlInitializeOplock.
A2
Pointeur vers l’IRP pour l’opération d’E/S.
A3
Pointeur vers lequel les informations de contexte définies par l’appelant doivent être transmises aux routines de rappel vers laquelle pointent les paramètres CompletionRoutine et PostIrpRoutine point.
A4
Pointeur vers une routine de rappel fournie par l’appelant. Si un saut de verrou opportuniste est en cours, cette routine est appelée lorsque l’arrêt est terminé. Ce paramètre est facultatif et peut être NULL. S’il s’agit NULL, l’appelant est placé dans un état d’attente jusqu’à ce que le saut de verrou opportuniste soit terminé.
Cette routine est déclarée comme suit :
typedef VOID (*POPLOCK_WAIT_COMPLETE_ROUTINE) ( IN PVOID Context, IN PIRP Irp ); |
Cette routine a les paramètres suivants :
- contexte
- Irp
Pointeur d’informations de contexte transmis dans le paramètre Context à FsRtlCheckOplock.
Pointeur vers l’IRP pour l’opération d’E/S.
A5
Pointeur vers une routine de rappel fournie par l’appelant à appeler si l’opération d’E/S est publiée dans une file d’attente de travail. Ce paramètre est facultatif et peut être NULL.
Cette routine est déclarée comme suit :
typedef VOID (*POPLOCK_FS_PREPOST_IRP) ( IN PVOID Context, IN PIRP Irp ); |
- contexte
- Irp
Pointeur d’informations de contexte transmis dans le paramètre Context à FsRtlCheckOplock.
Pointeur vers l’IRP pour l’opération d’E/S.
Valeur de retour
Aucun
Remarques
FsRtlCheckOplock synchronise l’IRP pour une opération d’E/S avec l’état de verrouillage opportuniste actuel d’un fichier en fonction des conditions suivantes :
- Si l’opération d’E/S provoque l’arrêt opportuniste, le saut de verrou opportuniste est lancé.
- Si l’opération d’E/S ne peut pas continuer tant que le saut de verrou opportuniste n’est pas terminé, FsRtlCheckOplock retourne STATUS_PENDING et appelle la routine de rappel vers laquelle pointe le paramètre PostIrpRou tine.
IRP_MJ_CLEANUP
IRP_MJ_CREATE
IRP_MJ_FILE_SYSTEM_CONTROL
IRP_MJ_FLUSH_BUFFERS
IRP_MJ_LOCK_CONTROL
IRP_MJ_READ
IRP_MJ_SET_INFORMATION
IRP_MJ_WRITE
Pour plus d’informations sur les verrous opportunistes, consultez la documentation du Kit de développement logiciel (SDK) Microsoft Windows.
Les minifilters doivent appeler fltCheckOplock au lieu de FsRtlCheckOplock .
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Cette routine est disponible dans Microsoft Windows 2000 et versions ultérieures des systèmes d’exploitation Windows. |
plateforme cible | Universel |
d’en-tête | rxprocs.h (include FltKernel.h, Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Voir aussi
FSCTL_OPBATCH_ACK_CLOSE_PENDING