code de contrôle FSCTL_OPBATCH_ACK_CLOSE_PENDING

Le code de contrôle FSCTL_OPBATCH_ACK_CLOSE_PENDING répond à la notification indiquant qu’un verrou opportuniste exclusif (niveau 1, lot ou filtre) sur un fichier a été rompu. Une application cliente envoie ce code de contrôle pour indiquer qu’elle reconnaît l’arrêt oplock et qu’elle est sur le point de fermer le handle de fichier.

Pour un arrêt oplock de lot ou de filtre, l’appelant doit fermer son handle de fichier après l’envoi de ce code de contrôle. Sinon, le système bloque l’attente de la fermeture du handle de fichier.

Ce code de contrôle n’est pas destiné à être utilisé avec des oplocks de niveau 1. Néanmoins, pour un arrêt d’opération de niveau 1, le système traite ce code de contrôle comme un accusé de réception complet de l’arrêt, et l’appelant n’est pas tenu de fermer le handle de fichier.

Ce code de contrôle est rarement utilisé. Lorsqu’une application cliente est avertie d’un arrêt d’opération pour un fichier et qu’elle ferme son handle pour le fichier, le système traite le handle de fichier fermé comme un accusé de réception complet de l’arrêt d’opération. Il n’est donc jamais nécessaire d’envoyer ce code de contrôle.

Pour traiter ce code de contrôle, un minifiltre appelle FltOplockFsctrl avec les paramètres suivants. Un système de fichiers ou un pilote de filtre hérité appelle FsRtlOplockFsctrl.

Pour plus d’informations sur le verrouillage opportuniste et sur le code de contrôle FSCTL_OPBATCH_ACK_CLOSE_PENDING, consultez la documentation Microsoft Windows SDK.

Paramètres

  • Oplock : pointeur d’objet oplock opaque pour le fichier.

  • CallbackData : FltOplockFsctrl uniquement. Structure de données de rappel (FLT_CALLBACK_DATA) pour une demande FSCTL IRP_MJ_FILE_SYSTEM_CONTROL. Le paramètre FsControlCode de l’opération doit être FSCTL_OPBATCH_ACK_CLOSE_PENDING.

  • Irp : FsRtlOplockFsctrl uniquement. IRP pour une demande FSCTL IRP_MJ_FILE_SYSTEM_CONTROL. Le paramètre FsControlCode de l’opération doit être FSCTL_OPBATCH_ACK_CLOSE_PENDING.

  • OpenCount : non utilisé avec cette opération ; défini sur zéro.

Bloc d’état

FltOplockFsctrl retourne toujours FLT_PREOP_COMPLETE pour cette opération.

FsRtlOplockFsctrl retourne l’une des valeurs NTSTATUS suivantes pour cette opération :

Code Signification
STATUS_SUCCESS L’oplock tenu par ce handle était en cours de rupture.
STATUS_INVALID_OPLOCK_PROTOCOL Aucun oplock n’a été tenu par ce handle, ou l’arrêt d’oplock n’est pas en cours actuellement. Il s’agit d’un code d’erreur.

Configuration requise

Type d’exigence Condition requise
En-tête Ntifs.h (inclure Ntifs.h ou Fltkernel.h)

Voir aussi

FLT_CALLBACK_DATA

FLT_PARAMETERS pour IRP_MJ_FILE_SYSTEM_CONTROL

FltOplockFsctrl

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FsRtlOplockFsctrl

IRP_MJ_FILE_SYSTEM_CONTROL