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_OPBATCH_ACK_CLOSE_PENDING
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
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 |