Compartir a través de


estructura OPLOCK_KEY_ECP_CONTEXT (ntifs.h)

La estructura OPLOCK_KEY_ECP_CONTEXT se usa para adjuntar una clave de interbloqueo a un archivo. Esta estructura está obsoleta para Windows 8 y versiones posteriores; En su lugar, los filtros deben usar DUAL_OP_LOCK_KEY_ECP_CONTEXT.

Sintaxis

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

Miembros

OplockKey

GUID de la clave de interbloqueo. Este GUID se comparte entre distintos identificadores e los identifica como pertenecientes a la misma caché de cliente. Cuando dos identificadores comparten la misma clave de interbloqueo, una solicitud realizada en un identificador no interrumpirá un interbloqueo pendiente en el otro identificador.

Reserved

Reservado. Debe establecerse en cero.

Observaciones

Para obtener información sobre cómo usar ECP para asociar información adicional a un archivo cuando se crea el archivo, vea Using Extra Create Parameters with an IRP_MJ_CREATE Operation.

Un minifiltro no debe modificar el contenido de la estructura de OPLOCK_KEY_ECP_CONTEXT cuando ve el ECP procedente de arriba. Debe usarlo para recuperar información sobre la clave de interbloqueo ECP únicamente. Para obtener más información sobre este problema, consulte System-Defined ECPs.

La clave de interbloqueo permite a una aplicación abrir varios identificadores en la misma secuencia sin interrumpir el interbloqueo propio de la aplicación. La interrupción del interbloqueo solo se produce después de que la aplicación reciba una infracción de uso compartido (STATUS_SHARING_VIOLATION).

Los interbloqueos se conceden en los identificadores de flujo cuando se abre una secuencia. Este identificador de flujo se puede asociar a una clave de interbloqueo. Un autor de llamada puede proporcionar explícitamente la clave de interbloqueo a la rutina IoCreateFileEx para crear el identificador de flujo. Si el autor de la llamada no especifica explícitamente una clave de interbloqueo cuando el autor de la llamada crea el identificador, el sistema operativo trata el identificador como tener una clave de interbloqueo única asociada al identificador, de modo que la clave del controlador difiere de cualquier otra clave en cualquier otro identificador. Si se recibe una operación de archivo en un identificador distinto del en el que se concedió el oplock, y la clave de interbloqueo asociada al identificador del interbloqueo difiere de la clave asociada al identificador de la operación y esa operación no es compatible con el oplock concedido actualmente, ese interbloqueo se interrumpe. El interbloqueo se interrumpe incluso si es el mismo proceso o subproceso que realiza la operación incompatible. Por ejemplo, si un proceso abre una secuencia para la que se concede un interbloqueo exclusivo y el mismo proceso vuelve a abrir la misma secuencia, mediante una clave de interbloqueo diferente (o no), el interbloqueo exclusivo se interrumpe inmediatamente.

Las claves de interbloqueo están asociadas a identificadores cuando se crean los identificadores. Puede asociar un identificador a una clave de interbloqueo incluso si no se conceden interbloqueos.

Para obtener más información sobre los interbloqueos y las claves de interbloqueo, consulte Información general sobre la semántica de oplock.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 7; obsoleto a partir de Windows 8
encabezado de ntifs.h

Consulte también

DUAL_OP_LOCK_KEY_ECP_CONTEXT

IoCreateFileEx