Partager via


Fonction FltOplockBreakToNone (fltkernel.h)

La routine FltOplockBreakToNone interrompt immédiatement tous les verrous opportunistes (oplocks) sans tenir compte des touches 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 de données de rappel (FLT_CALLBACK_DATA) pour l’opération d’E/S.

[in, optional] Context

Pointeur vers les informations de contexte définies par l’appelant à passer aux routines de rappel auxquelles pointent les paramètres WaitCompletionRoutine et PrePostCallbackDataRoutine .

[in, optional] WaitCompletionRoutine

Pointeur vers une routine de rappel fournie par l’appelant. Si un arrêt d’opération 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 est NULL, l’appelant est placé dans un état d’attente jusqu’à ce que l’arrêt d’opération 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.

Context

Pointeur d’informations de contexte qui a été passé 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 suspendu. La routine est appelée avant que le package oplock n’arrête 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.

Context

Pointeur d’informations de contexte qui a été passé dans le paramètre Context à FltOplockBreakToNone.

Valeur retournée

FltOplockBreakToNone retourne l’un des codes FLT_PREOP_CALLBACK_STATUS suivants :

Code de retour Description
FLT_PREOP_COMPLETE
FltOplockBreakToNone a 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.
FLT_PREOP_PENDING
Un arrêt d’opération a été lancé, ce qui a entraîné la publication de l’opération d’E/S dans une file d’attente de travail par le Gestionnaire de filtres. L’opération d’E/S est représentée par les données de rappel auxquelles pointe le paramètre CallbackData .
FLT_PREOP_SUCCESS_WITH_CALLBACK
Les données de rappel auxquelles pointe le paramètre CallbackData n’ont pas été interrompues 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 Microsoft Windows SDK.

Configuration requise

Condition requise Valeur
Client minimal pris en charge La routine FltOplockBreakToNone est disponible à partir de Windows 7.
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Voir aussi

FLT_CALLBACK_DATA

FltInitializeOplock

FsRtlOplockBreakToNoneEx

IO_STATUS_BLOCK