Fonction FsRtlKernelFsControlFile (ntifs.h)
La fonction FsRtlKernelFsControlFile génère un IRP FSCTL_XXX explicite, l’envoie dans la pile, attend de façon synchrone qu’il se termine et retourne le résultat. Cette fonction permet à l’appelant d’effectuer cette action par FileObject au lieu de handle.
Syntaxe
NTSTATUS FsRtlKernelFsControlFile(
[in] PFILE_OBJECT FileObject,
[in] ULONG FsControlCode,
[in] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out] PVOID OutputBuffer,
[out] ULONG OutputBufferLength,
[out] PULONG RetOutputBufferSize
);
Paramètres
[in] FileObject
Pointeur vers le FILE_OBJECT sur lequel envoyer l’opération.
[in] FsControlCode
FSCTL_XXX code qui indique l’opération de contrôle du système de fichiers à effectuer. La valeur de ce paramètre détermine les formats et les longueurs requises de InputBuffer et OutputBuffer, ainsi que les paires de paramètres suivantes qui sont requises. 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.
[in] 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 FsControlCode spécifie une opération qui ne nécessite pas de données d’entrée, ce pointeur est facultatif et peut être NULL. Notez que cette mémoire tampon peut être modifiée lors du retour et que l’appelant doit s’y adapter. Cela est dû au fait que cette mémoire tampon peut être utilisée pour contenir les données de sortie.
[in] InputBufferLength
Longueur de l’objet InputBuffer en octets.
[out] 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 FsControlCode spécifie une opération qui ne produit pas de données de sortie, ce pointeur est facultatif et peut être NULL.
[out] OutputBufferLength
Longueur de l’objet OutputBuffer en octets.
[out] RetOutputBufferSize
Reçoit le nombre d’octets réellement écrits (retournés) dans la mémoire tampon de sortie.
Valeur retournée
FsRtlKernelFsControlFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, comme l’une des valeurs suivantes.
Valeur | Signification |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Un échec d’allocation de pool s’est produit. |
STATUS_INVALID_PARAMETER | Un paramètre non valide a été fourni (par exemple, un Objet FileObject non valide). |
Remarques
FsRtlKernelFsControlFile définit l’IRP_MN_KERNEL_CALL code mineur qui lui permet d’effectuer des opérations sans nécessiter de privilèges de gestion du volume pour certaines opérations.
Cette fonction suppose que toutes les mémoires tampons qui lui sont passées sont des mémoires tampons en mode noyau.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ntifs.h |