структура REQUEST_OPLOCK_OUTPUT_BUFFER (winioctl.h)
Содержит сведения о оппортунистической блокировке (oplock), возвращаемые кодом элемента управления FSCTL_REQUEST_OPLOCK .
Синтаксис
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;
Члены
StructureVersion
Версия используемой структуры REQUEST_OPLOCK_OUTPUT_BUFFER .
StructureLength
Длина этой структуры в байтах.
OriginalOplockLevel
Одно или несколько значений OPLOCK_LEVEL_CACHE_XXX, указывающих уровень блокировки операции, которая была нарушена.
Возможные значения см. в разделе Элемент RequestedOplockLevel структуры REQUEST_OPLOCK_INPUT_BUFFER .
NewOplockLevel
Одно или несколько значений OPLOCK_LEVEL_CACHE_XXX, указывающих уровень, до которого нарушается блокировка, или уровень блокировки, который может быть доступен для предоставления в зависимости от операции, возвращающей этот буфер.
Возможные значения см. в разделе Элемент RequestedOplockLevel структуры REQUEST_OPLOCK_INPUT_BUFFER .
Flags
Одно или несколько значений REQUEST_OPLOCK_OUTPUT_FLAG_XXX .
AccessMode
Если установлен флаг REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED и уровень OPLOCK_LEVEL_CACHE_HANDLE теряется при прерывании блокировки, содержит режим доступа запроса, вызвавшего прерывание.
ShareMode
Если установлен флаг REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED и уровень OPLOCK_LEVEL_CACHE_HANDLE теряется при прерывании блокировки, содержит режим общего доступа запроса, вызвавшего прерывание.
Комментарии
Флаг REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED указывает, что поля ShareMode и AccessMode содержат флаги общего доступа и доступа соответственно запроса, вызывающего прерывание операции. Эта информация может быть предоставлена при разрыве , когда уровень OPLOCK_LEVEL_CACHE_HANDLE теряется, и может быть полезна для абонентов, которые могут закрыть дескрипторы, режимы общего доступа и доступа которых конфликтуют с дескриптором, вызывающим прерывание. Это может позволить им поддерживать хотя бы некоторое состояние кэша дескрипторов. Обратите внимание, что этот флаг будет установлен не для всех разрывов, на которых теряется уровень OPLOCK_LEVEL_CACHE_HANDLE . Основной случай, когда этот флаг будет установлен, — если разрыв является результатом операции создания, для которой требуется сломать OPLOCK_LEVEL_CACHE_HANDLE , чтобы избежать сбоя с ERROR_SHARING_VIOLATION.
Требования
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Верхняя часть | winioctl.h (включая Windows.h) |