Partager via


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 Windows 8 et versions ultérieures ; les filtres doivent à la place 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 de la clé 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 ne rompt pas un oplock en attente sur l’autre handle.

Reserved

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

Remarques

Pour plus d’informations sur l’utilisation d’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émentaire avec une opération de IRP_MJ_CREATE.

Un mini-filtre ne doit pas modifier le contenu de la structure OPLOCK_KEY_ECP_CONTEXT lorsqu’il voit l’ECP descendre de ci-dessus. Vous devez l’utiliser pour récupérer des informations sur la clé d’oplock ECP uniquement. Pour plus d’informations sur ce problème, consultez System-Defineddes PPE.

La clé oplock permet à une application d’ouvrir plusieurs handles dans le même flux sans rompre le propre oplock de l’application. L’arrêt d’oplock se produit uniquement une fois que l’application reçoit 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é d’oplock lorsque l’appelant crée le handle, le système d’exploitation traite le handle comme ayant une clé d’oplock unique associée au handle, afin que la clé du handle diffère de n’importe quelle autre clé sur un 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é d’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 le verrou d’oplock actuellement accordé, cette opération est interrompue. 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, à l’aide d’une clé oplock différente (ou non), l’oplock exclusif est rompu immédiatement.

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

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

Exigences

Exigence Valeur
client minimum pris en charge Windows 7 ; obsolète à partir de Windows 8
d’en-tête ntifs.h

Voir aussi

DUAL_OP_LOCK_KEY_ECP_CONTEXT

IoCreateFileEx