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 .
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) |