Compartilhar via


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

As seguintes condições de interrupção de oplock se aplicam quando um fluxo está sendo lido. Se um leitor transacionado TxF executar a leitura, essa marcar não será feita, pois um leitor transacionado exclui um gravador (ou seja, um gravador que contém um oplock não pode estar presente).

Condições para tipos de solicitação de Nível 2, Filtro, Leitura e Read-Handle

  • 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/Gravação e Identificador de Leitura/Gravação

  • Interrompa IRP_MJ_READ quando a operação de leitura 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:

    • As solicitações de nível 1 e lote quebram para o Nível 2.

    • Read-Write solicitações quebram para Leitura.

    • As solicitações de identificador de leitura/gravação quebram para o Identificador de Leitura.

  • Uma confirmação deve ser recebida antes que a operação continue.