FltOplockBreakToNone, fonction (fltkernel.h)
La routine FltOplockBreakToNone interrompt immédiatement tous les verrous opportunistes (oplocks) sans tenir compte de toute clé oplock.
Syntaxe
FLT_PREOP_CALLBACK_STATUS FLTAPI FltOplockBreakToNone(
[in] POPLOCK Oplock,
[in] PFLT_CALLBACK_DATA CallbackData,
[in, optional] PVOID Context,
[in, optional] PFLTOPLOCK_WAIT_COMPLETE_ROUTINE WaitCompletionRoutine,
[in, optional] PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE PrePostCallbackDataRoutine
);
Paramètres
[in] Oplock
Pointeur oplock opaque pour le fichier. Ce pointeur doit avoir été initialisé par un appel précédent à FltInitializeOplock.
[in] CallbackData
Pointeur vers la structure des données de rappel (FLT_CALLBACK_DATA) pour l’opération d’E/S.
[in, optional] Context
Pointeur vers lequel les informations de contexte définies par l’appelant doivent être transmises aux routines de rappel auxquelles les paramètres WaitCompletionRoutine et PrePostCallbackDataRoutine pointent.
[in, optional] WaitCompletionRoutine
Pointeur vers une routine de rappel fournie par l’appelant. Si un saut d’oplock 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 l’arrêt d’oplock soit terminé.
Cette routine est déclarée comme suit :
typedef VOID
(*PFLTOPLOCK_WAIT_COMPLETE_ROUTINE) (
__in PFLT_CALLBACK_DATA CallbackData,
__in_opt PVOID Context
);
Cette routine a les paramètres suivants :
CallbackData
Pointeur vers la structure de données de rappel pour l’opération d’E/S.
Contexte
Pointeur d’informations de contexte transmis dans le paramètre context à FltOplockBreakToNone.
[in, optional] PrePostCallbackDataRoutine
Pointeur vers une routine de rappel fournie par l’appelant à appeler si l’opération d’E/S doit être pendée. La routine est appelée avant que le package oplock pende l’IRP. Ce paramètre est facultatif et peut être NULL.
Cette routine est déclarée comme suit :
typedef VOID
(*PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) (
__in PFLT_CALLBACK_DATA CallbackData,
__in_opt PVOID Context
);
Cette routine a les paramètres suivants :
CallbackData
Pointeur vers la structure de données de rappel pour l’opération d’E/S.
Contexte
Pointeur d’informations de contexte transmis dans le paramètre context à FltOplockBreakToNone.
Valeur de retour
FltOplockBreakToNone retourne l’un des codes de FLT_PREOP_CALLBACK_STATUS suivants :
Retourner le code | Description |
---|---|
|
FltOplockBreakToNone rencontré un échec d’allocation de pool, ou un appel à la fonction FsRtlOplockBreakToNoneEx a renvoyé une erreur. FltOplockBreakToNone définit le code d’erreur dans le membre Status de la structure IO_STATUS_BLOCK du membre IoStatus. La structure IO_STATUS_BLOCK est spécifiée dans le membre IoStatus de la structure de données de rappel FLT_CALLBACK_DATA. Le paramètre CallbackData pointe vers cette FLT_CALLBACK_DATA. |
|
Un arrêt d’oplock a été lancé, ce qui a provoqué la publication de l’opération d’E/S dans une file d’attente de travail. L’opération d’E/S est représentée par les données de rappel auxquelles pointe le paramètre CallbackData. |
|
Les données de rappel auxquelles le CallbackData points de paramètre à ne pas avoir été suspendus et l’opération d’E/S a été effectuée immédiatement. |
Remarques
Pour plus d’informations sur les verrous opportunistes, consultez la documentation du Kit de développement logiciel (SDK) Microsoft Windows.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | La routine FltOplockBreakToNone est disponible à partir de Windows 7. |
plateforme cible | Universel |
d’en-tête | fltkernel.h (include Fltkernel.h) |
bibliothèque | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |