Compartilhar via


enumeração PRJ_NOTIFICATION (projectedfslib.h)

Um valor de notificação especificado ao enviar o retorno de chamada PRJ_NOTIFICATION_CB.

Syntax

typedef enum PRJ_NOTIFICATION {
  PRJ_NOTIFICATION_FILE_OPENED = 0x00000002,
  PRJ_NOTIFICATION_NEW_FILE_CREATED = 0x00000004,
  PRJ_NOTIFICATION_FILE_OVERWRITTEN = 0x00000008,
  PRJ_NOTIFICATION_PRE_DELETE = 0x00000010,
  PRJ_NOTIFICATION_PRE_RENAME = 0x00000020,
  PRJ_NOTIFICATION_PRE_SET_HARDLINK = 0x00000040,
  PRJ_NOTIFICATION_FILE_RENAMED = 0x00000080,
  PRJ_NOTIFICATION_HARDLINK_CREATED = 0x00000100,
  PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_NO_MODIFICATION = 0x00000200,
  PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED = 0x00000400,
  PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED = 0x00000800,
  PRJ_NOTIFICATION_FILE_PRE_CONVERT_TO_FULL = 0x00001000
} ;

Constantes

 
PRJ_NOTIFICATION_FILE_OPENED
Valor: 0x00000002
– Indica que um identificador foi criado para um arquivo ou pasta existente.
– O provedor pode especificar uma nova máscara de notificação para esse arquivo ou pasta ao responder à notificação.
PRJ_NOTIFICATION_NEW_FILE_CREATED
Valor: 0x00000004
- Um novo arquivo ou pasta foi criado.
– O provedor pode especificar uma nova máscara de notificação para esse arquivo ou pasta ao responder à notificação.
PRJ_NOTIFICATION_FILE_OVERWRITTEN
Valor: 0x00000008
- Um arquivo existente foi substituído ou substituído.
– O provedor pode especificar uma nova máscara de notificação para esse arquivo ou pasta ao responder à notificação.
PRJ_NOTIFICATION_PRE_DELETE
Valor: 0x00000010
- Um arquivo ou pasta está prestes a ser excluído.
– Se o provedor retornar um código HRESULT de erro do retorno de chamada, a exclusão não entrará em vigor.
PRJ_NOTIFICATION_PRE_RENAME
Valor: 0x00000020
- Um arquivo ou pasta está prestes a ser renomeado.
– Se o provedor retornar um código HRESULT de erro do retorno de chamada, a renomeação não entrará em vigor.
– Se o parâmetro callbackData-FilePathName> de PRJ_NOTIFICATION_CB for uma cadeia de caracteres vazia, isso indicará que a renomeação está movendo o arquivo/diretório de fora da instância de virtualização. Nesse caso, essa notificação sempre será enviada se o provedor tiver registrado um retorno de chamada PRJ_NOTIFICATION_CB , mesmo que o provedor não tenha especificado esse bit ao registrar a subárvore que contém o caminho de destino. No entanto, se o provedor especificado PRJ_NOTIFICATION_SUPPRESS_NOTIFICATIONS ao registrar a subárvore que contém o caminho de destino, a notificação será suprimida.
– Se o parâmetro destinationFileName de PRJ_NOTIFICATION_CB for uma cadeia de caracteres vazia, isso indica que a renomeação está movendo o arquivo/pasta para fora da instância de virtualização.
– Se os parâmetros callbackData-FilePathName> e destinationFileName de PRJ_NOTIFICATION_CB forem cadeias de caracteres não vazias, isso indicará que a renomeação está dentro da instância de virtualização. Se o provedor especificou máscaras de notificação diferentes para os caminhos de origem e destino no membro NotificationMappings do parâmetro options de PrjStartVirtualizing, essa notificação será enviada se o provedor tiver especificado esse bit ao registrar os caminhos de origem ou destino.
PRJ_NOTIFICATION_PRE_SET_HARDLINK
Valor: 0x00000040
- Um link rígido está prestes a ser criado para o arquivo.
– Se o provedor retornar um código HRESULT de erro do retorno de chamada, a operação de link rígido não entrará em vigor.
- Se o parâmetro callbackData-FilePathName> de PRJ_NOTIFICATION_CB for uma cadeia de caracteres vazia, isso indicará que o nome do link rígido será criado dentro da instância de virtualização, ou seja, um novo link rígido está sendo criado dentro da instância de virtualização para um arquivo que existe fora da instância de virtualização. Nesse caso, essa notificação sempre será enviada se o provedor tiver registrado um retorno de chamada PRJ_NOTIFICATION_CB , mesmo que o provedor não tenha especificado esse bit ao registrar a subárvore em que o novo nome de link rígido estará. No entanto, se o provedor especificado PRJ_NOTIFICATION_SUPPRESS_NOTIFICATIONS ao registrar a subárvore que contém o caminho de destino, a notificação será suprimida.
- Se o parâmetro destinationFileName de PRJ_NOTIFICATION_CB for uma cadeia de caracteres vazia, isso indicará que o nome do link rígido será criado fora da instância de virtualização, ou seja, um novo link rígido está sendo criado fora da instância de virtualização para um arquivo que existe dentro da instância de virtualização.
– Se os parâmetros callbackData-FilePathName> e destinationFileName de PRJ_NOTIFICATION_CB forem cadeias de caracteres não vazias, isso indicará que o novo link rígido será criado dentro da instância de virtualização para um arquivo que existe dentro da instância de virtualização. Se o provedor especificou máscaras de notificação diferentes para os caminhos de origem e destino no membro NotificationMappings do parâmetro options de PrjStartVirtualizing, essa notificação será enviada se o provedor tiver especificado esse bit ao registrar os caminhos de origem ou destino.
PRJ_NOTIFICATION_FILE_RENAMED
Valor: 0x00000080
- Indica que um arquivo/pasta foi renomeado. O arquivo/pasta pode ter sido movido para a instância de virtualização.
– Se o parâmetro callbackData-FilePathName> de PRJ_NOTIFICATION_CB for uma cadeia de caracteres vazia, isso indicará que a renomeação moveu o arquivo/diretório de fora da instância de virtualização. Nesse caso, o ProjFS sempre enviará essa notificação se o provedor tiver registrado um retorno de chamada PRJ_NOTIFICATION_CB, mesmo que o provedor não tenha especificado esse bit ao registrar a subárvore que contém o caminho de destino.
– Se o parâmetro destinationFileName de PRJ_NOTIFICATION_CB for uma cadeia de caracteres vazia, isso indica que a renomeação moveu o arquivo/diretório para fora da instância de virtualização.
– Se os parâmetros callbackData-FilePathName> e destinationFileName de PRJ_NOTIFICATION_CB forem cadeias de caracteres não vazias, isso indicará que a renomeação estava dentro da instância de virtualização. Se o provedor especificou máscaras de notificação diferentes para os caminhos de origem e destino no membro NotificationMappings do parâmetro options de PrjStartVirtualizing, o ProjFS enviará essa notificação se o provedor especificar esse bit ao registrar os caminhos de origem ou destino.
– O provedor pode especificar uma nova máscara de notificação para esse arquivo/diretório ao responder à notificação.
PRJ_NOTIFICATION_HARDLINK_CREATED
Valor: 0x00000100
– Indica que um link rígido foi criado para o arquivo.
- Se o parâmetro callbackData-FilePathName> de PRJ_NOTIFICATION_CB for uma cadeia de caracteres vazia, isso indicará que o nome do link rígido foi criado dentro da instância de virtualização, ou seja, um novo link rígido foi criado dentro da instância de virtualização para um arquivo que existe fora da instância de virtualização. Nesse caso, o ProjFS sempre enviará essa notificação se o provedor tiver registrado um retorno de chamada PRJ_NOTIFICATION_CB, mesmo que o provedor não tenha especificado esse bit ao registrar a subárvore em que o novo nome de link rígido estará.
– Se o parâmetro destinationFileName de PRJ_NOTIFICATION_CB for uma cadeia de caracteres vazia, isso indicará que o nome do link rígido foi criado fora da instância de virtualização, ou seja, um novo link rígido foi criado fora da instância de virtualização para um arquivo que existe dentro da instância de virtualização.
– Se os parâmetros callbackData-FilePathName> e destinationFileName de PRJ_NOTIFICATION_CB forem cadeias de caracteres não vazias, isso indicará que um novo link rígido foi criado dentro da instância de virtualização para um arquivo que existe dentro da instância de virtualização. Se o provedor especificou máscaras de notificação diferentes para os caminhos de origem e destino no membro NotificationMappings do parâmetro options de PrjStartVirtualizing, o ProjFS enviará essa notificação se o provedor especificar esse bit ao registrar os caminhos de origem ou destino.
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_NO_MODIFICATION
Valor: 0x00000200
– Um identificador foi fechado no arquivo/pasta e o conteúdo do arquivo não foi modificado enquanto o identificador estava aberto e o arquivo/pasta não foi excluído
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED
Valor: 0x00000400
- Um identificador foi fechado no arquivo e que o conteúdo do arquivo foi modificado enquanto o identificador estava aberto.
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED
Valor: 0x00000800
– Um identificador foi fechado no arquivo/pasta e foi excluído como parte do fechamento do identificador.
– Se o provedor também se registrou para receber PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_MODIFIED notificações e o arquivo foi modificado usando o identificador cujo fechamento resultou na exclusão do arquivo, o parâmetro operationParameters-FileDeletedOnHandleClose.IsFileModified> de PRJ_NOTIFICATION_CB será TRUE. Isso se aplica somente a arquivos, não a diretórios
PRJ_NOTIFICATION_FILE_PRE_CONVERT_TO_FULL
Valor: 0x00001000
- O arquivo está prestes a ser expandido de um espaço reservado para um arquivo completo, ou seja, seu conteúdo provavelmente será modificado.
– Se o provedor retornar um código HRESULT de erro do retorno de chamada, o arquivo não será expandido para um arquivo completo e a E/S que disparou a conversão falhará.
– Se houver várias E/Ss de corrida que expandiriam o mesmo arquivo, o provedor receberá esse valor de notificação apenas uma vez para o arquivo.

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