estructura REQUEST_OPLOCK_OUTPUT_BUFFER (winioctl.h)

Contiene la información de bloqueo oportunista (oplock) devuelta por el código de control FSCTL_REQUEST_OPLOCK.

Sintaxis

typedef struct _REQUEST_OPLOCK_OUTPUT_BUFFER {
  WORD        StructureVersion;
  WORD        StructureLength;
  DWORD       OriginalOplockLevel;
  DWORD       NewOplockLevel;
  DWORD       Flags;
  ACCESS_MASK AccessMode;
  WORD        ShareMode;
} REQUEST_OPLOCK_OUTPUT_BUFFER, *PREQUEST_OPLOCK_OUTPUT_BUFFER;

Miembros

StructureVersion

Versión de la estructura REQUEST_OPLOCK_OUTPUT_BUFFER que se está usando.

StructureLength

Longitud de esta estructura, en bytes.

OriginalOplockLevel

Uno o varios valores OPLOCK_LEVEL_CACHE_XXX que indican el nivel del interbloqueo que se interrumpió.

Para conocer los valores posibles, consulte el miembro RequestedOplockLevel de la estructura REQUEST_OPLOCK_INPUT_BUFFER .

NewOplockLevel

Uno o varios valores OPLOCK_LEVEL_CACHE_XXX que indican el nivel al que se está interrumpiendo un interbloqueo o un nivel de interbloqueo que puede estar disponible para la concesión, en función de la operación que devuelva este búfer.

Para conocer los valores posibles, consulte el miembro RequestedOplockLevel de la estructura REQUEST_OPLOCK_INPUT_BUFFER .

Flags

Uno o varios valores REQUEST_OPLOCK_OUTPUT_FLAG_XXX .

Valor Significado
REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED
Indica que se requiere una confirmación y el interbloqueo descrito en OriginalOplockLevel seguirá estando en vigor hasta que se confirme correctamente la interrupción.
REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED
Indica que los miembros ShareMode y AccessMode contienen las marcas de acceso y recurso compartido, respectivamente, de la solicitud que provoca la interrupción del interbloqueo de operación. Para obtener más información, vea la sección Comentarios.

AccessMode

Si se establece la marca de REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED y se pierde el nivel de OPLOCK_LEVEL_CACHE_HANDLE en una interrupción de interbloqueo, contiene el modo de acceso de la solicitud que está causando la interrupción.

ShareMode

Si se establece la marca de REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED y se pierde el nivel de OPLOCK_LEVEL_CACHE_HANDLE en una interrupción de interbloqueo, contiene el modo de recurso compartido de la solicitud que está causando la interrupción.

Comentarios

La marca REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED indica que los campos ShareMode y AccessMode contienen las marcas de acceso y recurso compartido, respectivamente, de la solicitud que provoca la interrupción del interbloqueo de operación. Esta información puede proporcionarse en saltos en los que se pierde el nivel de OPLOCK_LEVEL_CACHE_HANDLE y puede ser útil para los autores de llamadas que pueden cerrar los identificadores cuyos modos de uso compartido y acceso entran en conflicto con el identificador que provoca la interrupción. Esto puede permitirles mantener al menos algún estado de caché de control. Tenga en cuenta que no todos los saltos en los que se pierde el nivel de OPLOCK_LEVEL_CACHE_HANDLE tendrán establecido esta marca. El caso principal en el que se establecerá esta marca es si la interrupción es el resultado de una operación de creación que necesita que se interrumpa el interbloqueo de OPLOCK_LEVEL_CACHE_HANDLE para evitar errores con ERROR_SHARING_VIOLATION.

Requisitos

   
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Encabezado winioctl.h (incluya Windows.h)

Consulte también

FSCTL_REQUEST_OPLOCK

Semántica de oplock

REQUEST_OPLOCK_INPUT_BUFFER