Função MmDoesFileHaveUserWritableReferences (ntifs.h)
A função MmDoesFileHaveUserWritableReferences determina se um arquivo associado a uma transação tem seções mapeadas pelo usuário presentes.
Sintaxe
ULONG MmDoesFileHaveUserWritableReferences(
[in] PSECTION_OBJECT_POINTERS SectionPointer
);
Parâmetros
[in] SectionPointer
Ponteiro para uma estrutura de SECTION_OBJECT_POINTERS que contém os ponteiros do objeto de seção do objeto de arquivo. Esse parâmetro é necessário e não pode ser NULL.
Valor de retorno
MmDoesFileHaveUserWritableReferences retorna um dos valores a seguir.
Valor de retorno | Significado |
---|---|
0 | O objeto de arquivo não tem seções mapeadas pelo usuário. É seguro continuar com a transação. |
1 | O objeto de arquivo tem seções mapeadas pelo usuário. A transação deve ser revertida. |
Observações
Para sistemas de arquivos transacionais, você pode usar essa função para determinar se uma determinada transação está fazendo referência a um objeto de arquivo que pode ser alterado. Nesse caso, a transação deve ser revertida porque atomicidade não podem ser garantidas.
Antes de chamar MmDoesFileHaveUserWritableReferences, os sistemas de arquivos transacionais devem verificar e interceptar a criação de objetos de arquivo que especificam o acesso de gravação. Especificamente, antes de iniciar uma transação, os sistemas de arquivos transacionais devem garantir que não haja objetos de arquivo graváveis que existam atualmente para o arquivo fornecido na transação. Embora a transação esteja em andamento, os sistemas de arquivos transacionais devem falhar nas solicitações para criar objetos de arquivo com acesso de gravação para os arquivos transacionados.
Essa função pode ser usada para detectar se há exibições graváveis para um objeto de arquivo mesmo quando todos os identificadores de arquivo e identificadores de seção do objeto de arquivo foram fechados.
Para obter mais informações sobre transações, consulte Kernel Transaction Manager.
Para obter mais informações sobre objetos de arquivo, consulte FILE_OBJECT.