Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O seguinte só se aplica quando um fluxo existente de um arquivo está sendo aberto (ou seja, fluxos recém-criados não podem ter oplocks pré-existentes neles).
Observação Ao processar IRP_MJ_CREATE para qualquer oplock, se o acesso desejado contiver nada além de FILE_READ_ATTRIBUTES, FILE_WRITE_ATTRIBUTES ou SYNCHRONIZE, o oplock não será quebrado, a menos que FILE_RESERVE_OPFILTER seja especificado. Especificar FILE_RESERVE_OPFILTER sempre resulta em uma interrupção de oplock se a criação for bem-sucedida. Por uma questão de brevidade e simplicidade, a tabela seguinte omite o precedente, uma vez que se aplica a todos os oplocks.
| Tipo de Pedido | Condições |
|---|---|
|
Nível 1 |
Interrompido em IRP_MJ_CREATE quando:
|
|
Se o oplock estiver desfeito:
|
|
|
Nível 2 |
Interrompido em IRP_MJ_CREATE quando:
|
|
Se o oplock estiver quebrado:
|
|
|
Lote |
Interrompido em IRP_MJ_CREATE quando:
|
|
Se o oplock estiver quebrado:
|
|
|
Filtro |
Quebrado em IRP_MJ_CREATE quando:
|
|
Se o oplock estiver quebrado:
|
|
|
Ler |
Quebrado em IRP_MJ_CREATE quando:
|
|
Se o oplock estiver quebrado:
|
|
|
Read-Handle |
Interrompido no IRP_MJ_CREATE quando:
|
|
Se o oplock estiver quebrado:
|
|
|
Leitura-Gravação |
Interrompido em IRP_MJ_CREATE quando:
|
|
Se o oplock estiver quebrado:
|
|
|
Ler-Escrever-Manipular |
Quebrado em IRP_MJ_CREATE quando:
|
|
Se o oplock estiver quebrado:
|
O sistema de arquivos executa verificações adicionais para oplocks em lote e filtro (em vez do pacote oplock em si) ao processar uma operação de IRP_MJ_CREATE, o que afeta se o sistema de arquivos solicita que o pacote oplock execute o processamento de quebra de oplock. Este é um caso em que as operações em um fluxo de dados podem afetar os oplocks em outros fluxos de dados do mesmo arquivo (ou seja, os dois últimos itens de lista da lista de critérios a seguir). Se um ou mais dos seguintes critérios forem atendidos, o sistema de arquivos enviará uma solicitação ao pacote oplock para executar o processamento de quebra de oplock:
Solicite uma pausa se esta for uma consulta de rede aberta e uma transação KTM estiver presente. Caso contrário, não solicite uma pausa na consulta de rede aberta.
Se uma operação SUBSTITUIR, SOBRESCREVER ou OVERWRITE_IF for executada num fluxo de dados alternativo e FILE_SHARE_DELETE não for especificado e existir um bloqueio de lote ou filtro no fluxo de dados primário, solicite uma interrupção do bloqueio de lote ou filtro no fluxo de dados primário.
Se uma operação SUPERSEDER, SOBRESCREVER ou SOBRESCREVER_SE for executada no fluxo de dados primário e tiver sido solicitado acesso para ELIMINAR, e houver bloqueios de Lote ou Filtro em qualquer fluxo de dados alternativo, solicite a interrupção dos bloqueios de Lote ou Filtro em todos os fluxos de dados alternativos que os possuam.
Quando o sistema de arquivos decide solicitar que o pacote oplock execute o processamento de quebra de oplock, as regras estabelecidas na tabela anterior se aplicam.
A verificação para quebrar oplocks de lote e filtro ocorre antes que as verificações de acesso de compartilhamento sejam realizadas. Isso significa que o bloqueio de lote ou filtro foi interrompido mesmo se a solicitação de abertura acabar falhando devido a uma violação de compartilhamento.