Code de contrôle FSCTL_OPBATCH_ACK_CLOSE_PENDING

Le code de contrôle FSCTL_OPBATCH_ACK_CLOSE_PENDING répond à la notification qu’un verrou opportuniste exclusif (niveau 1, batch ou filtre) sur un fichier a été interrompu. Une application cliente envoie ce code de contrôle pour indiquer qu’il accuse réception de l’arrêt de oplock et qu’il va fermer le descripteur de fichier.

Pour une interruption oplock par lot ou filtre, l’appelant doit fermer son handle de fichier après l’envoi de ce code de contrôle. Dans le cas contraire, le système bloquera l’attente de la fermeture du descripteur de fichier.

Ce code de contrôle n’est pas destiné à être utilisé avec les oplocks de niveau 1. Néanmoins, pour une interruption de Oplock 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 obligé de fermer le descripteur de fichier.

Ce code de contrôle est rarement utilisé. Lorsqu’une application cliente est avertie d’une interruption oplock pour un fichier et qu’elle ferme son handle pour le fichier, le système traite le descripteur de fichier comme un accusé de réception complet de la pause oplock. Par conséquent, il n’est 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 de FSCTL_OPBATCH_ACK_CLOSE_PENDING, consultez la documentation Microsoft Windows SDK.

Paramètres

Verrou
Pointeur d’objet oplock opaque pour le fichier.

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

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

OpenCount
Non utilisé avec cette opération ; défini à 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 :

Terme Description

STATUS_SUCCESS

Le oplock détenu par ce handle était en cours de rupture.

STATUS_INVALID_OPLOCK_PROTOCOL

Aucun oplock n’a été détenu par ce handle ou la rupture du verrou oplock n’est pas actuellement en cours. Il s’agit d’un code d’erreur.

Spécifications

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