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_PARAMETERS pour IRP_MJ_FILE_SYSTEM_CONTROL