code de contrôle FSCTL_SET_REPARSE_POINT

Le code de contrôle FSCTL_SET_REPARSE_POINT définit un point d’analyse sur un fichier ou un répertoire.

Pour effectuer cette opération, appelez ZwFsControlFile avec les paramètres suivants.

Les minifiltres doivent utiliser FltTagFile au lieu de FSCTL_SET_REPARSE_POINT pour définir un point d’analyse.

Pour plus d’informations sur les points d’analyse et le code de contrôle FSCTL_SET_REPARSE_POINT, consultez la documentation Microsoft Windows SDK.

Paramètres

  • FileHandle [in] : handle de fichier pour le fichier ou le répertoire sur lequel définir un point d’analyse. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

  • FsControlCode [in] : code de contrôle pour l’opération. Utilisez FSCTL_SET_REPARSE_POINT pour cette opération.

  • InputBuffer [in] : pointeur vers une structure REPARSE_GUID_DATA_BUFFER ou REPARSE_DATA_BUFFER allouée à l’appelant qui contient les données de point d’analyse. Si un point d’analyse existant est en cours de modification, la balise spécifiée dans le membre ReparseTag de cette structure doit correspondre à la balise du point d’analyse à modifier. En outre, si le point d’analyse est un point d’analyse tiers (non-Microsoft), le GUID spécifié dans le membre ReparseGuid de la structure est un REPARSE_GUID_DATA_BUFFER structure doit correspondre au GUID du point d’analyse à modifier.

  • InputBufferLength [in] : taille, en octets, de la mémoire tampon vers laquelle pointe le paramètre InputBuffer . Pour une structure de REPARSE_GUID_DATA_BUFFER, cette valeur doit être au moins REPARSE_GUID_DATA_BUFFER_HEADER_SIZE, plus la taille des données définies par l’utilisateur, et elle doit être inférieure ou égale à MAXIMUM_REPARSE_DATA_BUFFER_SIZE. Pour une structure REPARSE_DATA_BUFFER, cette valeur doit être au moins REPARSE_DATA_BUFFER_HEADER_SIZE, plus la taille des données définies par l’utilisateur, et elle doit être inférieure ou égale à MAXIMUM_REPARSE_DATA_BUFFER_SIZE.

  • OutputBuffer [out] : non utilisé avec cette opération ; défini sur NULL.

  • OutputBufferLength [out] : non utilisé avec cette opération ; défini sur zéro.

Bloc d’état

ZwFsControlFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Code Signification
STATUS_DIRECTORY_NOT_EMPTY Un point d’analyse ne peut pas être défini sur un répertoire vide. Il s’agit d’un code d’erreur.
STATUS_EAS_NOT_SUPPORTED Un point d’analyse ne peut pas être défini sur un fichier si cette demande se trouve dans une transaction. Il s’agit d’un code d’erreur.
STATUS_IO_REPARSE_DATA_INVALID L’une des valeurs de paramètre spécifiées n’était pas valide. Il s’agit d’un code d’erreur.
STATUS_IO_REPARSE_TAG_MISMATCH La balise d’analyse spécifiée par l’appelant ne correspondait pas à la balise du point d’analyse à modifier. Il s’agit d’un code d’erreur.
STATUS_NOT_A_REPARSE_POINT Le fichier ou répertoire n’est pas un point d’analyse. Il s’agit d’un code d’erreur.
STATUS_REPARSE_ATTRIBUTE_CONFLICT Le point d’analyse est un point d’analyse tiers, et le GUID d’analyse spécifié par l’appelant ne correspond pas au GUID du point d’analyse à modifier. Il s’agit d’un code d’erreur.

Configuration requise

Type d’exigence Condition requise
En-tête Ntifs.h (inclure Ntifs.h ou Fltkernel.h)

Voir aussi

FLT_PARAMETERS pour IRP_MJ_FILE_SYSTEM_CONTROL

FltTagFile

FltUntagFile

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile