PRJ_NOTIFICATION_CB função de retorno de chamada (projectedfslib.h)
Fornece notificações ao provedor sobre operações do sistema de arquivos.
Sintaxe
PRJ_NOTIFICATION_CB PrjNotificationCb;
HRESULT PrjNotificationCb(
[in] const PRJ_CALLBACK_DATA *callbackData,
[in] BOOLEAN isDirectory,
[in] PRJ_NOTIFICATION notification,
[in, optional] PCWSTR destinationFileName,
[in, out] PRJ_NOTIFICATION_PARAMETERS *operationParameters
)
{...}
Parâmetros
[in] callbackData
Informações sobre a operação. Os seguintes membros callbackData são necessários para implementar esse retorno de chamada:
- FilePathName Identifica o caminho do arquivo ou diretório ao qual a notificação pertence.
O provedor só pode acessar esse buffer enquanto o retorno de chamada estiver em execução. Se quiser aguardar a operação e exigir dados desse buffer, ele deverá fazer sua própria cópia dele.
[in] isDirectory
TRUE se o campo FilePathName em callbackData se referir a um diretório; caso contrário, FALSE.
[in] notification
Um valor PRJ_NOTIFICATION especificando a notificação.
[in, optional] destinationFileName
Se a notificação for PRJ_NOTIFICATION_PRE_RENAME ou PRJ_NOTIFICATION_PRE_SET_HARDLINK, isso apontará para uma cadeia de caracteres Unicode terminada em nulo especificando o caminho, em relação à raiz de virtualização, do destino da operação rename ou set-hardlink.
[in, out] operationParameters
Um ponteiro para uma união PRJ_NOTIFICATION_PARAMETERS especificando parâmetros extras para determinados valores de notificação:
PRJ_NOTIFICATION_FILE_OPENED, PRJ_NOTIFICATION_NEW_FILE_CREATED ou PRJ_NOTIFICATION_FILE_OVERWRITTEN
-
Os campos do membro PostCreate são especificados. Esses campos são:
NotificationMask
-
Após o retorno do retorno de chamada PRJ_NOTIFICATION_CB, o provedor pode especificar um novo conjunto de notificações que deseja receber para o arquivo aqui.
Se o provedor definir esse valor como 0, será equivalente a especificar PRJ_NOTIFY_USE_EXISTING_MASK.
-
Após o retorno do retorno de chamada PRJ_NOTIFICATION_CB, o provedor pode especificar um novo conjunto de notificações que deseja receber para o arquivo aqui.
PRJ_NOTIFICATION_FILE_RENAMED
-
Os campos do membro FileRenamed são especificados. Esses campos são:
NotificationMask
-
Após o retorno do retorno de chamada PRJ_NOTIFICATION_CB, o provedor pode especificar um novo conjunto de notificações que deseja receber para o arquivo aqui.
Se o provedor definir esse valor como 0, será equivalente a especificar PRJ_NOTIFY_USE_EXISTING_MASK.
-
Após o retorno do retorno de chamada PRJ_NOTIFICATION_CB, o provedor pode especificar um novo conjunto de notificações que deseja receber para o arquivo aqui.
PRJ_NOTIFICATION_FILE_HANDLE_CLOSED_FILE_DELETED
-
Os campos do membro FileDeletedOnHandleClose são especificados . Esses campos são:
NotificationMask
- Se o provedor registrado para PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_MODIFIED , bem como PRJ_NOTIFY_FILE_HANDLE_CLOSED_FILE_DELETED, esse campo será definido como TRUE se o arquivo tiver sido modificado antes de ser excluído.
Retornar valor
Código de retorno | Descrição |
---|---|
|
O provedor processou com êxito a notificação. |
|
O provedor deseja concluir a operação posteriormente. |
Um código de erro HRESULT apropriado se o provedor falhar na operação. Para notificações de pré-operação (operações com "PRE" em seu nome), se o provedor retornar um código de falha, o ProjFS falhará na operação correspondente com o código de erro fornecido.
Comentários
Esse retorno de chamada é opcional. Se o provedor não fornecer uma implementação desse retorno de chamada, ele não receberá notificações.
O provedor registra as notificações que deseja receber quando chama PrjStartVirtualizing.
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] |
Plataforma de Destino | Windows |
Cabeçalho | projectedfslib.h |