Compartilhar via


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.

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.

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
S_OK
O provedor processou com êxito a notificação.
HRESULT_FROM_WIN32(ERROR_IO_PENDING)
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