Função FsRtlUpperOplockFsctrl (ntifs.h)
A rotina FsRtlUpperOplockFsctrl processa solicitações e confirmações oportunistas de bloqueio (oplock) 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 Flags tem as seguintes opções:
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. |
Retornar valor
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 de FsRtlOplockFsctrlEx. STATUS_INVALID_PARAMETER é um código de erro. |
STATUS_OPLOCK_NOT_GRANTED | O oplock não pôde ser concedido. 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 êxito. |
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 |
---|---|
Cliente mínimo com suporte | Windows 8.1 |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <= APC_LEVEL |