Compartilhar via


estrutura REQUEST_OPLOCK_OUTPUT_BUFFER (winioctl.h)

Contém as informações sobre bloqueio oportunista (oplock) retornadas pelo código de controle FSCTL_REQUEST_OPLOCK.

Sintaxe

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;

Membros

StructureVersion

A versão da estrutura REQUEST_OPLOCK_OUTPUT_BUFFER que está sendo usada.

StructureLength

O comprimento dessa estrutura, em bytes.

OriginalOplockLevel

Um ou mais valores OPLOCK_LEVEL_CACHE_XXX que indicam o nível do oplock que foi quebrado.

Para obter valores possíveis, consulte o membro RequestedOplockLevel da estrutura REQUEST_OPLOCK_INPUT_BUFFER .

NewOplockLevel

Um ou mais valores OPLOCK_LEVEL_CACHE_XXX que indicam o nível para o qual um oplock está sendo quebrado ou um nível de oplock que pode estar disponível para concessão, dependendo da operação que retorna esse buffer.

Para obter valores possíveis, consulte o membro RequestedOplockLevel da estrutura REQUEST_OPLOCK_INPUT_BUFFER .

Flags

Um ou mais valores REQUEST_OPLOCK_OUTPUT_FLAG_XXX .

Valor Significado
REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED
Indica que uma confirmação é necessária e o oplock descrito em OriginalOplockLevel continuará em vigor até que a interrupção seja confirmada com êxito.
REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED
Indica que os membros ShareMode e AccessMode contêm os sinalizadores de compartilhamento e de acesso, respectivamente, da solicitação que está causando a interrupção do oplock. Para obter mais informações, consulte a seção Comentários.

AccessMode

Se o sinalizador REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED estiver definido e o nível de OPLOCK_LEVEL_CACHE_HANDLE estiver sendo perdido em uma quebra de oplock, conterá o modo de acesso da solicitação que está causando a interrupção.

ShareMode

Se o sinalizador REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED estiver definido e o nível de OPLOCK_LEVEL_CACHE_HANDLE estiver sendo perdido em uma quebra de oplock, conterá o modo de compartilhamento da solicitação que está causando a interrupção.

Comentários

O sinalizador REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED indica que os campos ShareMode e AccessMode contêm os sinalizadores de compartilhamento e de acesso, respectivamente, da solicitação que está causando a interrupção do oplock. Essas informações podem ser fornecidas em intervalos em que o nível de OPLOCK_LEVEL_CACHE_HANDLE está sendo perdido e podem ser úteis para os chamadores que podem fechar identificadores cujos modos de compartilhamento e acesso entram em conflito com o identificador que está causando a interrupção. Isso pode permitir que eles mantenham pelo menos algum estado de cache de identificador. Observe que nem todas as quebras em que o nível de OPLOCK_LEVEL_CACHE_HANDLE está sendo perdido terão esse sinalizador definido. O principal caso em que esse sinalizador será definido é se a interrupção for resultado de uma operação de criação que precisa que o OPLOCK_LEVEL_CACHE_HANDLE oplock seja interrompido para evitar falhas com ERROR_SHARING_VIOLATION.

Requisitos

   
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Cabeçalho winioctl.h (inclua Windows.h)

Confira também

FSCTL_REQUEST_OPLOCK

Semântica oplock

REQUEST_OPLOCK_INPUT_BUFFER