Compartilhar via


Verificando o estado oplock de uma operação de IRP_MJ_LOCK_CONTROL

As seguintes condições de interrupção de oplock se aplicam a cada operação de bloqueio de intervalo de bytes no fluxo fornecido.

Condições para um tipo de solicitação de Nível 2

  • Sempre interrompa para Nenhum.

  • Nenhuma confirmação é necessária; a operação prossegue imediatamente.

Condições para um tipo de solicitação de filtro

  • O oplock não está quebrado.

  • Nenhuma confirmação é necessária e a operação prossegue imediatamente.

Condições para tipos de solicitação de Nível 1, Lote, Leitura, Identificador de Leitura, Leitura/Gravação e Identificador de Leitura/Gravação

  • Interrompa IRP_MJ_LOCK_CONTROL quando a operação de bloqueio ocorre em um FILE_OBJECT com uma chave oplock que difere da chave do FILE_OBJECT que possui o oplock. Se o oplock estiver quebrado, quebre para Nenhum.

  • Os requisitos de confirmação variam da seguinte maneira:

    • Solicitação de leitura: nenhuma confirmação é necessária; a operação prossegue imediatamente.

    • Read-Handle e solicitações de Identificador de Leitura/Gravação: embora a confirmação da interrupção seja necessária, a operação continua imediatamente (por exemplo, sem aguardar a confirmação).

    • Solicitações de Nível 1, Lote e Read-Write: uma confirmação deve ser recebida antes que as operações continuem.