structure OPLOCK_KEY_ECP_CONTEXT (ntifs.h)

La structure OPLOCK_KEY_ECP_CONTEXT est utilisée pour attacher une clé oplock à un fichier. Cette structure est obsolète pour les versions Windows 8 et ultérieures ; les filtres doivent plutôt utiliser DUAL_OP_LOCK_KEY_ECP_CONTEXT.

Syntaxe

typedef struct _OPLOCK_KEY_ECP_CONTEXT {
  GUID  OplockKey;
  ULONG Reserved;
} OPLOCK_KEY_ECP_CONTEXT, *POPLOCK_KEY_ECP_CONTEXT;

Membres

OplockKey

GUID pour la touche oplock. Ce GUID est partagé entre différents handles et les identifie comme appartenant au même cache client. Lorsque deux handles partagent la même clé oplock, une requête effectuée sur un handle n’interrompt pas un oplock en suspens sur l’autre handle.

Reserved

Réservé. Doit être défini sur zéro.

Remarques

Pour plus d’informations sur l’utilisation des ecps pour associer des informations supplémentaires à un fichier lors de la création du fichier, consultez Utilisation de paramètres de création supplémentaires avec une opération de IRP_MJ_CREATE.

Un minifiltre ne doit pas modifier le contenu de la structure OPLOCK_KEY_ECP_CONTEXT lorsqu’il voit l’ECP descendre d’en haut. Vous devez l’utiliser pour récupérer des informations sur la clé oplock ECP uniquement. Pour plus d’informations sur ce problème, consultez Les fournisseurs d’environnement définis par le système.

La touche oplock permet à une application d’ouvrir plusieurs handles sur le même flux sans briser le propre oplock de l’application. L’arrêt d’opération se produit uniquement après que l’application a reçu une violation de partage (STATUS_SHARING_VIOLATION).

Les oplocks sont accordés sur les handles de flux lorsqu’un flux est ouvert. Un tel handle de flux peut être associé à une clé oplock. Un appelant peut fournir explicitement la clé oplock à la routine IoCreateFileEx pour créer le handle de flux. Si l’appelant ne spécifie pas explicitement de clé oplock lorsque l’appelant crée le handle, le système d’exploitation considère le handle comme ayant une clé oplock unique associée au handle, de sorte que la clé du handle diffère de toute autre clé sur n’importe quel autre handle. Si une opération de fichier est reçue sur un handle autre que celui sur lequel l’oplock a été accordé, et que la clé oplock associée au handle d’oplock diffère de la clé associée au handle de l’opération, et que cette opération est incompatible avec l’oplock actuellement accordé, alors cet oplock est rompu. L’oplock s’interrompt même s’il s’agit du même processus ou thread effectuant l’opération incompatible. Par exemple, si un processus ouvre un flux pour lequel un oplock exclusif est accordé et que le même processus ouvre à nouveau le même flux, en utilisant une clé oplock différente (ou pas), l’oplock exclusif est immédiatement rompu.

Les clés Oplock sont associées aux handles lors de la création des handles. Vous pouvez associer un handle à une clé oplock même si aucun oplock n’est accordé.

Pour plus d’informations sur les oplocks et les clés oplock, consultez Vue d’ensemble de la sémantique Oplock.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 ; obsolète à partir de Windows 8
En-tête ntifs.h

Voir aussi

DUAL_OP_LOCK_KEY_ECP_CONTEXT

IoCreateFileEx