Partager via


code de contrôle FSCTL_GET_REPARSE_POINT

Le code de contrôle FSCTL_GET_REPARSE_POINT récupère les données de point d’analyse associées au fichier ou répertoire spécifié.

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

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

Paramètres

  • FileObject [in] : FltFsControlFile uniquement. Pointeur d’objet de fichier pour le fichier ou le répertoire à partir duquel récupérer les données de point d’analyse. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

  • FileHandle [in] : ZwFsControlFile uniquement. Handle de fichier pour le fichier ou le répertoire à partir duquel récupérer les données de 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_GET_REPARSE_POINT pour cette opération.

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

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

  • OutputBuffer [out] : pointeur vers une structure REPARSE_GUID_DATA_BUFFER ou REPARSE_DATA_BUFFER allouée par l’appelant qui reçoit les données de point d’analyse.

  • OutputBufferLength [out] : taille, en octets, de la mémoire tampon vers laquelle pointe le paramètre OutputBuffer . Le nombre d’octets est calculé comme suit :

    Structure OutputBufferLength
    REPARSE_GUID_DATA_BUFFER Doit être au moins REPARSE_GUID_DATA_BUFFER_HEADER_SIZE plus la taille des données attendues définies par l’utilisateur ; et doivent être inférieurs ou égaux à MAXIMUM_REPARSE_DATA_BUFFER_SIZE.
    REPARSE_DATA_BUFFER Doit être au moins REPARSE_DATA_BUFFER_HEADER_SIZE plus la taille des données attendues définies par l’utilisateur ; et doivent être inférieurs ou égaux à MAXIMUM_REPARSE_DATA_BUFFER_SIZE.

Bloc d’état

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

Code Signification
STATUS_BUFFER_OVERFLOW La mémoire tampon vers laquelle pointe le paramètre OutputBuffer est suffisamment grande pour contenir la partie fixe de la structure REPARSE_GUID_DATA_BUFFER ou REPARSE_DATA_BUFFER, mais pas les données définies par l’utilisateur. Dans ce cas, seuls les octets OutputBufferLength sont retournés dans la mémoire tampon OutputBuffer . Le paramètre LengthReturned to FltFsControlFile reçoit la longueur réelle, en octets, des données retournées. Il s’agit d’un code d’avertissement.
STATUS_BUFFER_TOO_SMALL La mémoire tampon vers laquelle pointe OutputBuffer est inférieure sizeof(REPARSE_GUID_DATA_BUFFER) à et n’est pas assez grande pour contenir les données de point d’analyse. Le paramètre LengthReturned to FltFsControlFile (ou le membre Information du paramètre IoStatus à ZwFsControlFile) reçoit la taille de mémoire tampon requise. Dans ce cas, aucune donnée de point d’analyse n’est retournée. 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_NOT_A_REPARSE_POINT Le fichier ou répertoire n’est pas un point d’analyse. 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_CALLBACK_DATA

FLT_PARAMETERS pour IRP_MJ_FILE_SYSTEM_CONTROL

FLT_TAG_DATA_BUFFER

FltFsControlFile

FltTagFile

FltUntagFile

FSCTL_DELETE_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile