Fonction FltFsControlFile (fltkernel.h)

La routine FltFsControlFile envoie un code de contrôle directement à un système de fichiers ou à un pilote de filtre de système de fichiers spécifié, ce qui entraîne l’exécution de l’action spécifiée par le pilote correspondant.

Syntaxe

NTSTATUS FLTAPI FltFsControlFile(
  [in]            PFLT_INSTANCE Instance,
  [in]            PFILE_OBJECT  FileObject,
  [in]            ULONG         FsControlCode,
  [in, optional]  PVOID         InputBuffer,
  [in]            ULONG         InputBufferLength,
  [out, optional] PVOID         OutputBuffer,
  [in]            ULONG         OutputBufferLength,
  [out, optional] PULONG        LengthReturned
);

Paramètres

[in] Instance

Pointeur instance opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.

[in] FileObject

Pointeur d’objet file pour le fichier ou le répertoire qui est la cible de cette requête. Ce paramètre est obligatoire et ne peut pas être NULL.

[in] FsControlCode

FSCTL_ codeXXX qui indique l’opération de système de fichiers à effectuer. La valeur de ce paramètre détermine les formats et les longueurs requises des valeurs InputBuffer et OutputBuffer, et détermine les paires de paramètres suivantes (InputBuffer et InputBufferLength, OutputBufferet OutputBufferLength) qui sont requises.

[in, optional] InputBuffer

Pointeur vers une mémoire tampon d’entrée allouée à l’appelant qui contient des informations spécifiques au périphérique à donner au pilote cible. Si le paramètre FsControlCode spécifie une opération qui ne nécessite pas de données d’entrée, ce paramètre est facultatif et peut être NULL.

[in] InputBufferLength

Taille, en octets, de la mémoire tampon sur InputBuffer. Cette valeur est ignorée si InputBuffer a la valeur NULL.

[out, optional] OutputBuffer

Pointeur vers une mémoire tampon de sortie allouée par l’appelant dans laquelle les informations sont retournées à partir du pilote cible. Si le paramètre FsControlCode spécifie une opération qui ne nécessite pas de données de sortie, ce paramètre est facultatif et peut être NULL.

[in] OutputBufferLength

Taille, en octets, de la mémoire tampon sur OutputBuffer. Cette valeur est ignorée si OutputBuffer a la valeur NULL.

[out, optional] LengthReturned

Pointeur vers une variable allouée par l’appelant qui reçoit la taille, en octets, des informations retournées dans la mémoire tampon sur OutputBuffer. Ce paramètre est facultatif et peut être NULL.

Valeur retournée

FltFsControlFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée.

Remarques

Les pilotes minifilter doivent appeler cette routine au lieu de ZwFsControlFile.

Les codes FSCTL suivants sont actuellement documentés pour les pilotes en mode noyau :

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_OPBATCH_ACK_CLOSE_PENDING

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FSCTL_SET_REPARSE_POINT

Pour plus d’informations sur les codes FSCTL_XXX définis par le système, consultez la section Remarques de l’entrée de référence pour DeviceIoControl dans la documentation Microsoft Windows SDK.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Voir aussi

FltDeviceIoControlFile

ZwFsControlFile