Função FsRtlUpperOplockFsctrl (ntifs.h)
O FsRtlUpperOplockFsctrl processos de rotina de solicitações de bloqueio oportunista (oplock) e confirmações para sistemas de arquivos secundários ou em camadas. O sistema de arquivos superior envia o estado do oplock mantido no sistema de arquivos inferior. FsRtlUpperOplockFsctrl determinará se deseja conceder ou negar o oplock do sistema de arquivos superior.
Sintaxe
NTSTATUS FsRtlUpperOplockFsctrl(
[in] POPLOCK Oplock,
[in] PIRP Irp,
[in] ULONG OpenCount,
[in] ULONG LowerOplockState,
[in] ULONG Flags
);
Parâmetros
[in] Oplock
Um ponteiro oplock oplock opaco para o arquivo. Esse ponteiro deve ter sido inicializado por uma chamada anterior para FsRtlInitializeOplock.
[in] Irp
Um ponteiro para o IRP para a operação de E/S.
[in] OpenCount
Número de identificadores de usuário para o arquivo, se um oplock exclusivo estiver sendo solicitado. Definir um valor diferente de zero para uma solicitação oplock de nível 2, R ou RH indica que há bloqueios de intervalo de bytes no arquivo. Para obter mais informações sobre tipos oplock, consulte Tipos de Oplocks.
[in] LowerOplockState
O valor do nível de oplock inferior mantido pelo sistema de arquivos superior. Esta é uma combinação OR bit a bit do seguinte:
Valor | Significado |
---|---|
OPLOCK_LEVEL_CACHE_READ | Indica um tipo de leitura de oplock (R). |
OPLOCK_LEVEL_CACHE_WRITE | Indica um tipo de gravação oplock (W). |
OPLOCK_LEVEL_CACHE_HANDLE | Indica um tipo de identificador de oplock (H). |
[in] Flags
Uma máscara de bits para as operações oplock associadas. Um sistema de arquivos ou driver de filtro define bits para especificar o comportamento de FsRtlUpperOplockFsctrl. O parâmetro sinalizadores de
Valor | Significado |
---|---|
OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) | O sistema de arquivos verificou que todas as chaves oplock em qualquer identificador aberto no momento correspondem. Ao especificar esse sinalizador, você permite que o pacote oplock conceda um oplock de nível RW ou RWH quando houver mais de um identificador aberto para o arquivo. |
Valor de retorno
FsRtlUpperOplockFsctrl retorna um dos seguintes valores NTSTATUS:
Código de retorno | Descrição |
---|---|
STATUS_SUCCESS | Para uma solicitação de IRP_MJ_CREATE, STATUS_SUCCESS indica que o bloqueio oportunista de filtro solicitado (oplock) foi concedido. Para uma operação FSCTL, o significado de STATUS_SUCCESS depende do código FSCTL. Para obter mais informações, consulte a seção Comentários em FsRtlOplockFsctrlEx. |
STATUS_CANCELLED | A operação de E/S foi cancelada. STATUS_CANCELLED é um código de erro. |
STATUS_INVALID_PARAMETER | O código FSCTL para a operação de E/S não era uma solicitação oplock de valores válida. Os tipos de solicitação válidos são listados na seção Comentários do FsRtlOplockFsctrlEx. STATUS_INVALID_PARAMETER é um código de erro. |
STATUS_OPLOCK_NOT_GRANTED | Não foi possível conceder o oplock. O nível do oplock do sistema de arquivos superior solicitado não é válido para o oplock concedido para o sistema de arquivos inferior. STATUS_OPLOCK_NOT_GRANTED é um código de erro. |
STATUS_PENDING | Usado somente para operações FSCTL. O significado de STATUS_PENDING depende do código FSCTL. Para obter mais informações, consulte a seção Comentários em FsRtlOplockFsctrlEx. STATUS_PENDING é um código de sucesso. |
STATUS_CANNOT_GRANT_REQUESTED_OPLOCK | Uma confirmação de oplock para um novo oplock não é permitida. O nível do sistema de arquivos superior de bloqueio não é válido para o oplock do sistema de arquivos inferior. |
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 8.1 |
da Plataforma de Destino |
Universal |
cabeçalho | ntifs.h (inclua Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL |
NtosKrnl.exe |
IRQL | IRQL <= APC_LEVEL |