Compartilhar via


PRJ_NOTIFY_TYPES enumeração (projectedfslib.h)

Tipos de notificações que descrevem uma alteração no arquivo ou pasta.

Syntax

typedef enum PRJ_NOTIFY_TYPES {
  PRJ_NOTIFY_NONE = 0x00000000,
  PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS = 0x00000001,
  PRJ_NOTIFY_FILE_OPENED = 0x00000002,
  PRJ_NOTIFY_NEW_FILE_CREATED = 0x00000004,
  PRJ_NOTIFY_FILE_OVERWRITTEN = 0x00000008,
  PRJ_NOTIFY_PRE_DELETE = 0x00000010,
  PRJ_NOTIFY_PRE_RENAME = 0x00000020,
  PRJ_NOTIFY_PRE_SET_HARDLINK = 0x00000040,
  PRJ_NOTIFY_FILE_RENAMED = 0x00000080,
  PRJ_NOTIFY_HARDLINK_CREATED = 0x00000100,
  PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION = 0x00000200,
  PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED = 0x00000400,
  PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED = 0x00000800,
  PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL = 0x00001000,
  PRJ_NOTIFY_USE_EXISTING_MASK = 0xFFFFFFFF
} ;

Constantes

 
PRJ_NOTIFY_NONE
Valor: 0x00000000
Nenhuma notificação.
PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS
Valor: 0x00000001
Se especificado no início da instância de virtualização:

- Isso indica que as notificações não devem ser enviadas para a instância de virtualização ou uma subárvore especificada da instância.

Se especificado em resposta a uma notificação:

- Isso indica que as notificações não devem ser enviadas para o arquivo ou pasta especificado até que todos os identificadores para ele sejam fechados.

Nota Se esse bit aparecer em uma máscara de notificação, ele substituirá todos os outros bits na máscara. Por exemplo, uma máscara válida com esse bit é tratada como contendo apenas PRJ_NOTIFY_SUPPRESS_NOTIFICATIONS.

 
PRJ_NOTIFY_FILE_OPENED
Valor: 0x00000002
Se especificado no início da instância de virtualização:

- Isso indica que o provedor deve ser notificado quando um identificador é criado para um arquivo ou pasta existente.

Se especificado em resposta a uma notificação:

- Isso indica que o provedor deve ser notificado se algum outro identificador for criado para o arquivo ou pasta.
PRJ_NOTIFY_NEW_FILE_CREATED
Valor: 0x00000004
Se especificado no início da instância de virtualização:

– O provedor deve ser notificado quando um novo arquivo ou pasta é criado.

Se especificado em resposta a uma notificação:

- Sem efeito.
PRJ_NOTIFY_FILE_OVERWRITTEN
Valor: 0x00000008
Se especificado no início da instância de virtualização:

- Indica que o provedor deve ser notificado quando um existente quando um arquivo existente é substituído ou substituído.

Se especificado em resposta a uma notificação:

- Indica que o provedor deve ser notificado quando o arquivo ou pasta é substituído ou substituído.
PRJ_NOTIFY_PRE_DELETE
Valor: 0x00000010
Se especificado no início da instância de virtualização:

- Indica que o provedor deve ser notificado quando um arquivo ou pasta está prestes a ser excluído.

Se especificado em resposta a uma notificação:

- Indica que o provedor deve ser notificado quando um arquivo ou pasta está prestes a ser excluído.
PRJ_NOTIFY_PRE_RENAME
Valor: 0x00000020
Se especificado no início da instância de virtualização:

- Indica que o provedor deve ser notificado quando um arquivo ou pasta está prestes a ser renomeado.

Se especificado em resposta a uma notificação:

- Indica que o provedor deve ser notificado quando um arquivo ou pasta está prestes a ser renomeado.
PRJ_NOTIFY_PRE_SET_HARDLINK
Valor: 0x00000040
Se especificado no início da instância de virtualização:

- Indica que o provedor deve ser notificado quando um link rígido está prestes a ser criado para um arquivo.

Se especificado em resposta a uma notificação:

- Indica que o provedor deve ser notificado quando um link rígido está prestes a ser criado para um arquivo.
PRJ_NOTIFY_FILE_RENAMED
Valor: 0x00000080
Se especificado no início da instância de virtualização:

- Indica que o provedor deve ser notificado de que um arquivo ou pasta foi renomeado.

Se especificado em resposta a uma notificação:

- Indica que o provedor deve ser notificado quando um arquivo ou pasta foi renomeado.
PRJ_NOTIFY_HARDLINK_CREATED
Valor: 0x00000100
Se especificado no início da instância de virtualização:

- Indica que o provedor deve ser notificado de que um link rígido foi criado para um arquivo.

Se especificado em resposta a uma notificação:

- Indica que o provedor deve ser notificado de que um link rígido foi criado para o arquivo.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_NO_MODIFICATION
Valor: 0x00000200
Se especificado no início da instância de virtualização:

– O provedor deve ser notificado quando um identificador é fechado em um arquivo/pasta e o identificador de fechamento não é modificado nem excluído.

Se especificado em resposta a uma notificação:

– O provedor deve ser notificado quando os identificadores são fechados para o arquivo/pasta e não houve modificações ou exclusões associadas ao identificador de fechamento.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED
Valor: 0x00000400
Se especificado no início da instância de virtualização:

– O provedor deve ser notificado quando um identificador é fechado em um arquivo/pasta e o identificador de fechamento foi usado para modificá-lo.

Se especificado em resposta a uma notificação:

– O provedor deve ser notificado quando um identificador é fechado no arquivo/pasta e o identificador de fechamento foi usado para modificá-lo.
PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED
Valor: 0x00000800
Se especificado no início da instância de virtualização:

– O provedor deve ser notificado quando um identificador é fechado em um arquivo/pasta e é excluído como parte do fechamento do identificador.

Se especificado em resposta a uma notificação:

– O provedor deve ser notificado quando um identificador é fechado no arquivo/pasta e é excluído como parte do fechamento do identificador.
PRJ_NOTIFY_FILE_PRE_CONVERT_TO_FULL
Valor: 0x00001000
Se especificado no início da instância de virtualização:

– O provedor deve ser notificado quando estiver prestes a converter um espaço reservado em um arquivo completo.

Se especificado em resposta a uma notificação:

- O provedor deve ser notificado quando estiver prestes a converter o espaço reservado em um arquivo completo, supondo que ele seja um espaço reservado e ainda não seja um arquivo completo.
PRJ_NOTIFY_USE_EXISTING_MASK
Valor: 0xFFFFFFFF
Se especificado no início da instância de virtualização:

- Esse valor não é válido no início da instância de virtualização.

Se especificado em resposta a uma notificação:

– Continue a usar o conjunto de notificações existente para este arquivo/pasta.

Comentários

O ProjFS pode enviar notificações de atividade do sistema de arquivos para um provedor. Quando o provedor inicia uma instância de virtualização, ele especifica quais notificações deseja receber. Ele também pode especificar um novo conjunto de notificações para um arquivo quando ele for criado ou renomeado. O provedor deve registrar um PRJ_NOTIFICATION_CB rotina de retorno de chamada de notificação no parâmetro de retornos de chamada de PrjStartVirtualizing para receber notificações.

O ProjFS envia notificações para arquivos e diretórios dentro de uma raiz de virtualização ativa. Ou seja, o ProjFS enviará notificações para a raiz de virtualização e seus descendentes. Links simbólicos e junções dentro da raiz de virtualização não são percorridos ao determinar o que constitui um descendente da raiz de virtualização.

O ProjFS envia notificações somente para o fluxo de dados primário de um arquivo. O ProjFS não envia notificações para operações em fluxos de dados alternativos.

O ProjFS não envia notificações para uma instância de virtualização inativa. Uma instância de virtualização estará inativa se qualquer uma das seguintes opções for verdadeira:

O provedor pode especificar quais notificações deseja receber ao iniciar uma instância de virtualização ou em resposta a uma notificação que permite que uma nova máscara de notificação seja definida.

O provedor especifica um conjunto padrão de notificações que deseja que o ProjFS envie para a instância de virtualização quando iniciar a instância. Esse conjunto de notificações é fornecido no membro NotificationMappings do parâmetro options de PrjStartVirtualizing, que pode especificar máscaras de notificação diferentes para diferentes subárvores da instância de virtualização.

O provedor pode optar por fornecer uma máscara de notificação diferente em resposta a uma notificação de arquivo aberto, criar, substituir/substituir ou renomear. O ProjFS continuará a enviar essas notificações para o arquivo fornecido até que todos os identificadores para o arquivo sejam fechados. Depois disso, ele reverter ao conjunto padrão de notificações. Naturalmente, se o conjunto padrão de notificações não especificar que o ProjFS deve notificar para abrir, criar etc., o provedor não terá a oportunidade de especificar uma máscara diferente para essas operações.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1809 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server [somente aplicativos da área de trabalho]
Cabeçalho projectedfslib.h