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 diferentes 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.
Comentarios
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 SOLO ECP. Para obtener más información sobre este problema, consulte ECP definidas por el sistema.
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 secuencia se puede asociar a una clave de interbloqueo. Un autor de la llamada puede proporcionar explícitamente la clave de interbloqueo a la rutina IoCreateFileEx para crear el identificador de secuencia. 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 de oplock difiere de la clave asociada al identificador de la operación y esa operación no es compatible con el oplock concedido actualmente, se interrumpe ese interbloqueo. 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, a continuación, 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 | Value |
---|---|
Cliente mínimo compatible | Windows 7; obsoleto a partir de Windows 8 |
Encabezado | ntifs.h |