структура 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 .

Значение Значение
REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED
Указывает, что требуется подтверждение, и действие блокировки, описанное в OriginalOplockLevel , будет оставаться в силе до тех пор, пока прерывание не будет успешно подтверждено.
REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED
Указывает, что элементы ShareMode и AccessMode содержат флаги общего доступа и общего доступа соответственно запроса, вызывающего прерывание блокировки. Дополнительные сведения см. в разделе «Примечания».

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)

См. также раздел

FSCTL_REQUEST_OPLOCK

Семантика Oplock

REQUEST_OPLOCK_INPUT_BUFFER