Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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_NONEValor: 0x00000000 Nenhuma notificação. |
PRJ_NOTIFY_SUPPRESS_NOTIFICATIONSValor: 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_OPENEDValor: 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_CREATEDValor: 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_OVERWRITTENValor: 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_DELETEValor: 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_RENAMEValor: 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_HARDLINKValor: 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_RENAMEDValor: 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_CREATEDValor: 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_MODIFICATIONValor: 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_MODIFIEDValor: 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_DELETEDValor: 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_FULLValor: 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_MASKValor: 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 ainda não o iniciou chamando PrjStartVirtualizing.
- O provedor interrompeu a instância chamando PrjStopVirtualizing.
- O processo do provedor foi encerrado
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 |